请实现鼠标点击任意标签,alert该标签的名称(注意兼容性)
function elementName(evt){ evt = evt|| window.event; var selected = evt.target || evt.srcElement; alert(selected.tagName); }
写一个获取非行间样式的函数
function getStyle(obj, attr) { return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, false)[attr]; // 火狐 }
设置透明度
function setOpacity(elem, value) { elem.filters ? elem.style.filter = 'alpha(opacity=' + value + ')' : elem.style.opacity = value / 100; }
获得当前视口距离页面顶部的像素
function getScrollTop(){ return document.documentElement.scrollTop || window.pageYOffset || document.body.scrollTop }
获得当前视口距离页面左边的像素
function getScrollLeft() { return document.documentElement.scrollLeft || window.pageXOffset || document.body.scrollLeft }
tips:scrollBy(x , y)实现了基于当前位置的相对滑动,而scrollTo( x, y)则是实现了“绝对滑动”
IE6判定
if(!-[1,]) { //IE6 在IE6中[-1,].toString()为“1,”,‘-’会进行类型转换(转成数字类型),-"1," 为NaN,所以返回!false } else{ //非IE6 非IE6中[-1,].toString()为“1”,‘-’会进行类型转换(转成数字类型),-"1" 为-1,所以返回!true }
判定IE浏览器
if(window.VBArray){ //因为VB是微软发明的,其他浏览器无VBArray,至少可判定IE 6/7/8/9/10 } else { }
获取键盘按下的键值
document.onkeypress=function(e){ e = e || window.event; e.keyCode || e.which // 常规浏览器 || IE }
阻止事件冒泡
function stopProp(event) { event = event || window.event event.stopPropagation ? event.stopPropagation() : event.cancelBubble = true; // 常规浏览器 || IE }
tips:这里不可使用 e.cancelBubble?e.cancelBubble = true : e.stopPropagation() ,因为 e.cancelBubble 是一个属性(而非方法),其默认值为 false
阻止浏览器默认行为,如:按标签链接跳转
function preDef(event) { event = event || window.event event.preventDefault ? e.preventDefault() : e.returnValue = false // 常规浏览器 | IE }
添加事件监听
// 懒加载 function addEvent(ele, eventName, func, isCapture) { if(ele.attachEvent){ ele.attachEvent('on' + eventName, func) addEvent = function(ele, eventName, func) { ele.attachEvent('on' + eventName, func) } } else { ele.addEventListener(eventName, func, !!isCapture) addEvent = function(ele, func, !!isCapture){ ele.addEventListener(eventName, func, !!isCapture) } } }
window.addEvent = (function() { if(window.attachEvent){ return function(ele, eventName, func){ ele.attachEvent('on' + eventName, func) } } else { return function(ele, eventName, func, isCapture){ ele.addEventListener(eventName, func, isCapture || false) } } })();
删除事件监听
//删除事件 window.removeEvent = (function() { if(window.detach){ return function(ele, eventName, func){ ele.detach('on' + eventName, func) } } return function(ele, eventName, func, isCapture){ ele.removeEventListener(eventName, func) } })()