Js控制滑轮左右滑动实例


Posted in Javascript onFebruary 13, 2015

今天弄了一个东西,页面本来是横向,所以底部有横向滚动条,竖着就没有滚动条了,现在要求是鼠标滑轮要左右滚动,这就需要写js代码来实现了,写这个的过程中遇到很大麻烦

ie 火狐 chrome 三个浏览器支持的函数完全不一样,真是疯啦。

这里有几个知识点说明一下
监控滑轮的事件
ie:onmousewheel
firfox:DOMMouseScroll
chrome:mousewheel
哎真是无语
滚动的返回值也是不一样的
firfox用detail 返回 +-3
其他的用wheelDelta 返回 +-120
有返回值判断滚动的方向

还有一般浏览器除了chrome判断页面的左移动用document.documentElement.scrollLeft
但是chrome浏览器要用document.body.scrollLeft

好了代码分享如下:

<!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-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
</head>
 
<body>
<div id="test" style="width:3000px; height:500px; background:#666;"></div>
<script language="javascript">
 
var dbody=document.getElementById('test');
//ff用
objAddEvent(document,'DOMMouseScroll', function(e){return mouse_scroll(e);})
 
//非ff chrome 用
objAddEvent(document,'mousewheel', function(e){return mouse_scroll(e);})
 
//chrome用
objAddEvent(dbody,'mousewheel', function(e){return mouse_scroll(e);})
function mouse_scroll(e){
e=e || window.event;
var delD=e.wheelDelta?e.wheelDelta: -e.detail*40;//判断上下方向
var move_s=delD>0?-50:50;
document.documentElement.scrollLeft+=move_s; //非chrome浏览器用这个
//chrome浏览器用这个
if(document.documentElement.scrollLeft==0)document.body.scrollLeft+=move_s;
 
return false;
}
//这个是给对象增加监控方法的函数
function objAddEvent(oEle, sEventName, fnHandler)
{
if(oEle.attachEvent) oEle.attachEvent('on'+sEventName, fnHandler);
else oEle.addEventListener(sEventName, fnHandler, false);
}
 
 
</script>
</body>
</html>

这个代码其实有点问题就是在chrome浏览器下只有鼠标放到那个灰色内才能滑动,这个问题我一直没有解决掉,如果那个高手解决可以留言告诉我,谢谢了。

Javascript 相关文章推荐
JQuery autocomplete 使用手册
Apr 01 Javascript
jQuery 表单验证扩展(四)
Oct 20 Javascript
jquery 学习之二 属性相关
Nov 23 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
JavaScript基础函数整理汇总
Jan 30 Javascript
js判断请求的url是否可访问,支持跨域判断的实现方法
Sep 17 Javascript
基于JavaScript实现自动更新倒计时效果
Dec 19 Javascript
div实现自适应高度的textarea实现angular双向绑定
Jan 08 Javascript
ECMAScript6变量的解构赋值实例详解
Sep 19 Javascript
javascript闭包的使用之按钮切换功能
Aug 30 Javascript
微信小程序签到功能
Oct 31 Javascript
JavaScript实现的弹出遮罩层特效经典示例【基于jQuery】
Jul 10 jQuery
JavaScript函数作用域链分析
Feb 13 #Javascript
JavaScript匿名函数用法分析
Feb 13 #Javascript
js实现进度条的方法
Feb 13 #Javascript
动态加载js的方法汇总
Feb 13 #Javascript
jQuery EasyUI datagrid实现本地分页的方法
Feb 13 #Javascript
jQuery向后台传入json格式数据的方法
Feb 13 #Javascript
浅谈轻量级js模板引擎simplite
Feb 13 #Javascript
You might like
分页显示Oracle数据库记录的类之一
2006/10/09 PHP
利用PHP创建动态图像
2006/10/09 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
PHP实现基本留言板功能原理与步骤详解
2020/03/26 PHP
javaScript - 如何引入js代码
2021/03/09 Javascript
Autocomplete Textbox Example javascript实现自动完成成功
2007/08/17 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
基于JavaScript 数据类型之Boolean类型分析介绍
2013/04/19 Javascript
JS实现一个按钮的方法
2015/02/05 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
使用Bootstrap框架制作查询页面的界面实例代码
2016/05/27 Javascript
javascript代码调试之console.log 用法图文详解
2016/09/30 Javascript
javascript中Date对象的使用总结
2016/11/21 Javascript
JavaScript实现计数器基础方法
2017/10/10 Javascript
js Math数学简单使用操作示例
2020/03/13 Javascript
JS Thunk 函数的含义和用法实例总结
2020/04/08 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
js加减乘除精确运算方法实例代码
2021/01/17 Javascript
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
python 字符串split的用法分享
2013/03/23 Python
linux系统使用python获取内存使用信息脚本分享
2014/01/15 Python
TensorFlow损失函数专题详解
2018/04/26 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
2018/10/26 Python
numpy向空的二维数组中添加元素的方法
2018/11/01 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
python和c语言哪个更适合初学者
2020/06/22 Python
世界上最大的专业美容用品零售商:Sally Beauty
2017/07/02 全球购物
迪士尼英国官方商店:shopDisney UK
2019/09/21 全球购物
企划专员岗位职责
2013/12/09 职场文书
2016春季运动会开幕词
2016/03/04 职场文书
快消品行业营销模式与盈利模式分享
2019/09/27 职场文书
如何在Python中创建二叉树
2021/03/30 Python
CSS3实现的文字弹出特效
2021/04/16 HTML / CSS
详解nginx安装过程并代理下载服务器文件
2022/02/12 Servers