JS教程:判断滚轮滚动方向在各个浏览器中的表现

/*Firefox注册事件*/
if(document.addEventListener){
document.addEventListener("DOMMouseScroll",scrollFunc,false);
}

Safari与Chrome属于同一类型,可使用HTML DOM方式添加事件

window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome

其中除Firefox外其余均可使用HTML DOM方式添加事件,因此添加事件使用以下方式

/*注册事件*/
if(document.addEventListener){
document.addEventListener("DOMMouseScroll",scrollFunc,false);
}//W3C
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome

detail与wheelDelta

判断滚轮向上或向下在浏览器中也要考虑兼容性,现在五大浏览器(IE、Opera、Safari、Firefox、Chrome)中Firefox使用detail,其余四类使用wheelDelta;两者只在取值上不一致,代表含义一致,detail与wheelDelta只各取两个值,detail只取±3,wheelDelta只取±120,其中正数表示为向上,负数表示向下。

<p><label for="wheelDelta">滚动值:</label>(IE/Opera)<input type="text" id="wheelDelta" /></p>
<p><label for="detail">滚动值:(Firefox)</label><input type="text" id="detail" /></p>
<script type="text/javascript">
var oTxt=document.getElementById("txt");
/***********************
* 函数:判断滚轮滚动方向
* 作者:walkingp
* 参数:event
* 返回:滚轮方向 1:向上 -1:向下
*************************/
var scrollFunc=function(e){
var direct=0;
e=e window.event;

var t1=document.getElementById("wheelDelta");
var t2=document.getElementById("detail");
if(e.wheelDelta){//IE/Opera/Chrome
t1.value=e.wheelDelta;
}else if(e.detail){//Firefox
t2.value=e.detail;
}
ScrollText(direct);
}
/*注册事件*/
if(document.addEventListener){
document.addEventListener("DOMMouseScroll",scrollFunc,false);
}//W3C
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari
</script>

点击预览效果

Chrome

Firefox

IE(8)

IE(6)

Opera

Safari

时间: 2024-10-09 22:45:01

JS教程:判断滚轮滚动方向在各个浏览器中的表现的相关文章

JS如何判断包括IE11在内的IE浏览器

原文:JS如何判断包括IE11在内的IE浏览器 今天碰到一个奇怪的问题,有一个页面,想指定用IE浏览器打开,在VS开发环境没有问题,但部署到服务器上,即使是用IE打开页面,还是提示"仅支持IE",真是晕啊!! 判断是否IE浏览器用的是window.navigator.userAgent,跟踪这个信息,发现在开发环境,识别为IE10,但访问服务器则识别为IE11,但IE11的userAgent里是没有MSIE标志的,原因就是这个了. 把判断IE浏览器的方法改成如下就可以了. functi

js如何判断用户是否是用微信浏览器_javascript技巧

上周接到个需求,需求是这样的:用户扫一扫二维码会产生一个链接,该链接会向后端发送个请求,返回一个 apk 的下载地址,用户点击下载按钮可以下载此 apk.然后就发生了问题,经过测试,发现用微信扫一扫打开的页面点击下载按钮下载不了 apk,后百度之,原来是微信内置浏览器屏蔽了下载链接,后面和需求方沟通,需求改为如果用户是用微信内置浏览器打开的,则提示用户换一个浏览器打开页面,否则下载不了 apk.那么该如何判断用户是否是用微信浏览器呢? 我们知道 js 可以通过 window.navigator.

Javascript实例教程:childNodes在浏览器中的表现

文章简介:IE和FireFox中的childNodes区别!!  Javascript中,相信大家都试过用getElementsByTagName和childNodes来实现对节点的遍历.但是getElementsByTagName对复杂的DOM结构遍历明显不如用childNodes,因为childNodes能更好的处理DOM的层 次结构,建议在需要进行了遍历时首先使用childNodes!!但是不幸的是,在IE和FireFox中childNodes有点细微的差别: <head> <sc

JS判断当前页面是否在微信浏览器打开的方法_javascript技巧

本文实例讲述了JS判断当前页面是否在微信浏览器打开的方法.分享给大家供大家参考,具体如下: 最近做很多HTML5的项目,很多页面会通过微信微博等SNS分享出去.在分享页面上提供公司APP的下载.但是在很多应用的浏览器中,点击下载链接无法下载应用.那么针对这些浏览器我们需要给用户提示从safari或者系统自带的浏览器打开分享页面.通过js就可以判断当前页面是在什么浏览器打开的. 以下是一段示例代码,注释中表明了通过JS如何判断是否在微信浏览器打开,是否在QQ空间浏览器,是否在新浪微博打开.当然可以

代码-【求助】如何用JS判断页面滚动到特定的div,从而实现背景的更换

问题描述 [求助]如何用JS判断页面滚动到特定的div,从而实现背景的更换 像这个网页http://mailchimp.com/2012/,当滚动条到下一篇文章的时候背景就更换了. 我自己的想法是--每个文章块给予一个id号,当这一文章块过了窗口上方的时候开始更换背景. 我不知道百度什么关键词比较能找到这方式,所以来这里请教各位大大. 我找到了一个貌似可以实现的代码:click me,以下是我改过后的代码,是没滚动400px就改变背景图.但是我想实现的不是滚动某个高度改变背景图,而是**到某个d

js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)_javascript技巧

本文实例讲述了js实现的鼠标滚轮滚动切换页面效果的方法.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html> <html> <head> <title>wheel</title> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /> <script type=

JS+CSS3模拟溢出滚动效果_javascript技巧

移动开发的时候,我们经常会遇到滑动事件,众所周知手机端滑动主要依靠touch事件.最近接连遇到两个页面都有类似overflow:auto的效果,一般情况下通过css设置是可以实现的(虽说丑了点儿),,但是一旦overflow:auto的元素响应touch事件时就会有诸多不便,例如fullpage中某一元素自滑动,我们可以通过normalScrollElements来使元素滑动的时候不滑动到下一屏,但是在元素滑动到最底部的时候也就不能响应下一屏事件,上滑也是一样,这时候就需要touch事件来响应,

兼容ie和火狐的js无缝八向滚动特效代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

js捕获鼠标滚轮事件代码

 本文为大家介绍下如何使用js捕获鼠标滚轮事件,原理很简单,感兴趣的朋友可以参考下 之前看到一个人人网高级前端面试的笔试题    要求手写代码,其中有个题是做一个图片展示    类似百度图片最下面小缩略图那个展示栏    然后要求有个鼠标滚轮滚动变大变小的要求    这个我还真不知道怎么做,在网上找了找资料    发现可以捕获onmousewheel的事件    然后根据event.wheelDelta值的正负来判断是前滚还是后滚    随便写了个小例子,顺便捕获下键盘的按键,不太美观没有换行