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 相关文章推荐
js 强制弹出窗口代码研究-又一款代码
Mar 20 Javascript
利用jQuery操作对象数组的实现代码
Apr 27 Javascript
7个让JavaScript变得更好的注意事项
Jan 28 Javascript
javascript的replace方法结合正则使用实例总结
Jun 16 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
Aug 10 Javascript
js实现九宫格拼图小游戏
Feb 13 Javascript
利用js判断手机是否安装某个app的多种方案
Feb 13 Javascript
基于zTree树形菜单的使用实例
Dec 25 Javascript
Vue指令之 v-cloak、v-text、v-html实例详解
Aug 08 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
Mar 12 Javascript
详解Webpack抽离第三方类库以及common解决方案
Mar 30 Javascript
js实现时间日期校验
May 26 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
当海贼王变成JOJO风
2020/03/02 日漫
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
PHP去掉从word直接粘贴过来的没有用格式的函数
2012/10/29 PHP
php微信高级接口群发 多客服
2016/06/23 PHP
示例详解Laravel的注册重构
2016/08/14 PHP
javascript 拖动表格行实现代码
2011/05/05 Javascript
通过onmouseover选项卡实现img图片的变化
2014/02/12 Javascript
JS清空多文本框、文本域示例代码
2014/02/24 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
jquery实现的省市区三级联动
2015/04/02 Javascript
JS实现三级折叠菜单特效,其它级可自动收缩
2015/08/06 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
Vue2.0实现将页面中表格数据导出excel的实例
2017/08/09 Javascript
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
纯JS实现的读取excel文件内容功能示例【支持所有浏览器】
2018/06/23 Javascript
小程序实现页面顶部选项卡效果
2018/11/06 Javascript
vue配置多代理服务接口地址操作
2020/09/08 Javascript
python通过pil将图片转换成黑白效果的方法
2015/03/16 Python
Python 查看文件的编码格式方法
2017/12/21 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
详解如何减少python内存的消耗
2019/08/09 Python
python实现简单成绩录入系统
2019/09/19 Python
python解压zip包中文乱码解决方法
2020/11/27 Python
python gui开发——制作抖音无水印视频下载工具(附源码)
2021/02/07 Python
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
I.T中国官网:精选时尚设计师单品网购平台
2018/03/26 全球购物
英国婚礼商城:Wedding Mall
2019/11/02 全球购物
韩国商务邀请函
2014/01/14 职场文书
社区食品安全实施方案
2014/03/28 职场文书
初中三好学生自我鉴定
2014/04/07 职场文书
文明礼貌演讲稿
2014/05/12 职场文书
护理学专业求职信
2014/06/29 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
《文化苦旅》读后感:阅读,让人诗意地栖居在大地上
2019/12/24 职场文书
图解上海144收音机
2021/04/22 无线电