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 相关文章推荐
childNodes.length与children.length的区别
May 14 Javascript
js post方式传递提交的实现代码
May 31 Javascript
js操作二级联动实现代码
Jul 27 Javascript
JQuery中$之选择器用法介绍
Apr 05 Javascript
超级好用的jQuery圆角插件 Corner速成
Aug 31 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
Nov 17 Javascript
AngularJS 面试题集锦
Sep 06 Javascript
jQuery扩展实现text提示还能输入多少字节的方法
Nov 28 Javascript
JavaScript中闭包的详解
Apr 01 Javascript
JavaScript实现二维坐标点排序效果
Jul 18 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
Aug 21 Javascript
微信小程序实现简单购物车功能
Dec 30 Javascript
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
codeigniter显示所有脚本执行时间的方法
2015/03/21 PHP
php中array_unshift()修改数组key注意事项分析
2016/05/16 PHP
jquery 跨域访问问题解决方法(笔记)
2011/06/08 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
JavaScript内存管理介绍
2015/03/13 Javascript
Js实现自定义右键行为
2015/03/26 Javascript
JS使用oumousemove和oumouseout动态改变图片显示的方法
2015/03/31 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
jquery动画效果学习笔记(8种效果)
2015/11/13 Javascript
jQuery Mobile弹出窗、弹出层知识汇总
2016/01/05 Javascript
jQuery自定义滚动条完整实例
2016/01/08 Javascript
JS中页面与页面之间超链接跳转中文乱码问题的解决办法
2016/12/15 Javascript
Javascript之深入浅出prototype
2017/02/06 Javascript
详解Angular 4.x Injector
2017/05/04 Javascript
浅谈mint-ui loadmore组件注意的问题
2017/11/08 Javascript
vue jsx 使用指南及vue.js 使用jsx语法的方法
2017/11/11 Javascript
一步步教会你微信小程序的登录鉴权
2018/04/09 Javascript
一篇文章,教你学会Vue CLI 插件开发
2019/04/17 Javascript
js实现继承的方法及优缺点总结
2019/05/08 Javascript
小程序websocket心跳库(websocket-heartbeat-miniprogram)
2020/02/23 Javascript
详谈Python基础之内置函数和递归
2017/06/21 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
python3人脸识别的两种方法
2019/04/25 Python
Python 中的 import 机制之实现远程导入模块
2019/10/29 Python
canvas与html5实现视频截图功能示例
2016/12/15 HTML / CSS
鞋子女王塔玛拉·梅隆同名奢侈品牌:Tamara Mellon
2017/11/22 全球购物
法学毕业生自荐信
2013/11/13 职场文书
关于期中考试的反思
2014/02/02 职场文书
党建工作经验交流材料
2014/05/25 职场文书
岗位说明书标准范本
2014/07/30 职场文书
2014年统战工作总结
2014/12/09 职场文书
公积金具结保证书
2015/05/11 职场文书
感恩教师主题班会
2015/08/12 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL