关于浏览器滚动的兼容性问题以及事件绑定

Posted hros

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于浏览器滚动的兼容性问题以及事件绑定相关的知识,希望对你有一定的参考价值。

废话不多说,看下面

DOMMouseScroll  这个是FF的早期方法,现在版本的FF依然可以使用(亲测)

onmousewheel   这个是Chrome、IE的兼容方法,手动划重点!并且这个方法IE版本全兼容

onwheel      这个方法Chrome、FF兼容,但是IE全不兼容

 

所以以上方法怎么用应该不必多说了吧

不过有一个注意点我还是要讲一下

关于DOMMouseScroll这个方法必须使用addEventListener绑定方法来绑定

如果你不知到addEventListener方法是什么你可以继续往下看

------------------------------------------------------------------------------------------------------

如果你只是想要知道浏览器的滚动事件方法,那么下面其实你是没有必要看的

------------------------------------------------------------------------------------------------------

不过我们还是要说一下绑定事件需要注意的一些地方

绑定事件有三种方法:

1.使用"句柄"绑定(名字高大尚,内容很简单)

所谓的"句柄绑定"就是直接在需要绑定的事件后面添加函数,往下看就明白了

假如我们给DOM元素绑定一个点击(click)事件,我们就可以这么写

DOM.onclick = function () {};

很简单的一种方法,但是很常用,兼容性很好IE、Chrome、FF都支持(古老的IE5都支持)

 

2.使用"addEventListener"方法绑定

DOM.addEventListener("click", function () {}, false);

注意对比我用红色标注的地方,"句柄绑定" 和 "addEventListener"表面上的区别就是一个有"on",一个没有的区别

其实他们还有更加细致的区别,不过本章我们就不太多讲了,等到下下篇再讲(因为下篇我们讲浏览器如何阻止默认事件,有兴趣的话可以看一下)

其实这个方法的第三个参数比较有意思,很多人都是在最后写一个false,但是不知道这个代表什么意思,所以这个false又是什么意思呢?可不可以用true呢?用true和用false又有什么区别呢?

我们会在以后的文章中仔细讲解,先透露一下,这个参数是和事件冒泡和事件捕获有关系的,有兴趣的可以先去了解一下

 

3.使用"attachEvent"方法绑定

DOM.attachEvent("onclick", function () {});

大家可以自行对比这个方法和上面两个方法的区别,这个方法和第二个方法有点像,但是区别还是很明显的,我们本章也不详细讲解,以后再说

其实这个方法放到这里还是有原因的,什么原因你能猜到吗

 

 

原因就是这个方法特别有局限性,这个方法是IE8以下的一个方法,IE9以上就不再对这个方法兼容了( 把自己的方法抛弃了... )

所以这个方法使用的比较少,即使你要兼容IE8以下版本的浏览器,你完全可以使用第一个"句柄绑定"的方法

虽然说这个方法比较有局限,但是我们还是会在之后的文章中细致的讲解的

 

到此,本篇完,感谢你能在我这么啰嗦的情况下看完,不容易啊,再次感谢

 

 

下一篇预告:如何阻止浏览器的默认事件(重点是如何阻止Chrome默认事件)

 

本篇全部原创

 

以上是关于关于浏览器滚动的兼容性问题以及事件绑定的主要内容,如果未能解决你的问题,请参考以下文章

easyui的datagrid的翻页控件的事件,有没有啥对应的翻页函数,或者翻页控件绑定的函数

鼠标滚动事件

关于绑定和解绑的兼容代码

js绑定事件方法:addEventListener的兼容问题

关于js鼠标事件综合各大浏览器能获取到坐标的属性总共以下五种

关于js鼠标事件综合各大浏览器能获取到坐标的属性总共以下五种