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 获取json数据实现代码
Apr 27 Javascript
javascript 简单抽屉效果的实现代码
Mar 09 Javascript
jQuery timers计时器简单应用说明
Oct 28 Javascript
Jquery.addClass始终无效原因分析
Sep 08 Javascript
怎么选择Javascript框架(Javascript Framework)
Nov 22 Javascript
js滚动条平滑移动示例代码
Mar 29 Javascript
全面了解javascript三元运算符
Jun 27 Javascript
jQuery通过改变input的type属性实现密码显示隐藏切换功能
Feb 08 Javascript
完美实现js焦点轮播效果(一)
Mar 07 Javascript
移动端网页开发调试神器Eruda的介绍与使用技巧
Oct 30 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
Nov 21 Javascript
JS非行间样式获取函数的实例代码
Jun 05 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
第十二节--类的自动加载
2006/11/16 PHP
PHP面向对象三大特点学习(充分理解抽象、封装、继承、多态)
2012/05/07 PHP
解析php curl_setopt 函数的相关应用及介绍
2013/06/17 PHP
PHP实现登录注册之BootStrap表单功能
2017/09/03 PHP
PHP实现断点续传乱序合并文件的方法
2018/09/06 PHP
ThinkPHP3.2框架自带分页功能实现方法示例
2019/05/13 PHP
在laravel框架中使用model层的方法
2019/10/08 PHP
php生成HTML文件的类方法
2019/10/11 PHP
jquery制作居中遮罩层效果分享
2014/02/21 Javascript
父页面显示遮罩层弹出半透明状态的dialog
2014/03/04 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
javascript实现图像循环明暗变化的方法
2015/02/25 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
微信小程序 教程之模块化
2016/10/17 Javascript
基于react组件之间的参数传递(详解)
2017/09/05 Javascript
Javascript实现时间倒计时功能
2018/11/17 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
JavaScript使用表单元素验证表单的示例代码
2019/08/20 Javascript
jquery自定义组件实例详解
2020/12/31 jQuery
python获得文件创建时间和修改时间的方法
2015/06/30 Python
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
Python中序列的修改、散列与切片详解
2017/08/27 Python
python计算两个地址之间的距离方法
2018/06/09 Python
对django xadmin自定义菜单的实例详解
2019/01/03 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
Python实现图像的垂直投影示例
2020/01/17 Python
python 实现分组求和与分组累加求和代码
2020/05/18 Python
python ETL工具 pyetl
2020/06/07 Python
python3中布局背景颜色代码分析
2020/12/01 Python
HTML5 新表单类型示例代码
2018/03/20 HTML / CSS
东方通信股份有限公司VC面试题
2014/08/27 面试题
应用心理学个人求职信范文
2013/12/11 职场文书
大学生村官演讲稿
2014/04/25 职场文书
自愿离婚协议书范文2014
2014/10/12 职场文书
行政助理岗位职责
2015/02/10 职场文书