湖南政协门户

JavaScript Document

本文档提供了一个名为addEvent的JavaScript函数和一个名为getPageScroll的JavaScript函数。这两个函数可以用于处理事件绑定、页面滚动等操作。

addEvent(obj, evtType, func, cap)

这个函数用于将指定的事件类型(evtType)绑定到目标对象(obj)上。它还接受一个可选的布尔参数cap,用于设置事件的捕获或冒泡模式。如果captrue,则事件将触发冒泡;否则,事件将仅在目标对象内触发。

函数首先检查目标对象是否支持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;
}