湖南政协门户
JavaScript Document
本文档提供了一个名为addEvent
的JavaScript函数和一个名为getPageScroll
的JavaScript函数。这两个函数可以用于处理事件绑定、页面滚动等操作。
addEvent(obj, evtType, func, cap)
这个函数用于将指定的事件类型(evtType
)绑定到目标对象(obj
)上。它还接受一个可选的布尔参数cap
,用于设置事件的捕获或冒泡模式。如果cap
为true
,则事件将触发冒泡;否则,事件将仅在目标对象内触发。
函数首先检查目标对象是否支持addEventListener
方法,如果支持,则使用该方法进行事件绑定。如果不支持,但支持attachEvent
方法(主要针对旧版本的IE浏览器),则使用该方法进行事件绑定,并根据cap
参数设置捕获模式。如果都不支持,则返回false
,表示事件绑定失败。
function addEvent(obj, evtType, func, cap) {
cap = cap || false;
if (obj.addEventListener) {
obj.addEventListener(evtType, func, cap);
return true;
} else if (obj.attachEvent) {
if (cap) {
obj.setCapture();
} else {
return obj.attachEvent("on" + evtType, func);
}
} else {
return false;
}
}
getPageScroll()
这个函数用于获取当前页面的水平滚动距离。它首先检查self.pageXOffset
属性是否存在,该属性通常在现代浏览器中可用。如果存在,则将其值赋给xScroll
变量。如果不存在,但document.documentElement.scrollLeft
属性存在(主要针对旧版本的IE浏览器),则将其值赋给xScroll
变量。最后,返回计算得到的水平滚动距离。
function getPageScroll() {
var xScroll, yScroll;
if (self.pageXOffset) {
xScroll = self.pageXOffset;
} else if (document.documentElement && document.documentElement.scrollLeft) {
xScroll = document.documentElement.scrollLeft;
} else if (document.body.scrollLeft) {
xScroll = document.body.scrollLeft;
} else if (document.scrollLeft) {
xScroll = document.scrollLeft;
} else {
xScroll = 0;
}
return xScroll;
}