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 相关文章推荐
excel操作之Add Data to a Spreadsheet Cell
Jun 12 Javascript
JavaScript入门教程(7) History历史对象
Jan 31 Javascript
jquery自动完成插件(autocomplete)应用之PHP版
Dec 15 Javascript
Kibo 用于处理键盘事件的Javascript工具库
Oct 28 Javascript
JavaScript自定义事件介绍
Aug 29 Javascript
jquery validate在ie8下的bug解决方法
Nov 13 Javascript
AngularJS实现表单验证功能
Jan 09 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
利用jQuery异步上传文件的插件用法详解
Jul 19 jQuery
vue项目中引入noVNC远程桌面的方法
Mar 05 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
Jan 18 jQuery
vue+element创建动态的form表单及动态生成表格的行和列
May 20 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
GD输出汉字的函数的分析
2006/10/09 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
header与缓冲区之间的深层次分析
2016/07/30 PHP
无语,javascript居然支持中文(unicode)编程!
2007/04/12 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
JavaScript通过function定义对象并给对象添加toString()方法实例分析
2015/03/23 Javascript
Javascript原型链的原理详解
2016/01/05 Javascript
使用NodeJs 开发微信公众号(三)微信事件交互实例
2016/03/02 NodeJs
如何在Linux上安装Node.js
2016/04/01 Javascript
JS仿百度自动下拉框模糊匹配提示
2016/07/25 Javascript
JS ES6中setTimeout函数的执行上下文示例
2017/04/27 Javascript
使用requirejs模块化开发多页面一个入口js的使用方式
2017/06/14 Javascript
Node.js的Koa实现JWT用户认证方法
2018/05/05 Javascript
layui的layedit富文本赋值方法
2019/09/18 Javascript
浅析webpack-bundle-analyzer在vue-cli3中的使用
2019/10/23 Javascript
js实现内置计时器
2019/12/16 Javascript
微信小程序基于ColorUI构建皮皮虾短视频去水印组件
2020/11/04 Javascript
使用python提取html文件中的特定数据的实现代码
2013/03/24 Python
Python中max函数用法实例分析
2015/07/17 Python
python写入并获取剪切板内容的实例
2018/05/31 Python
python-opencv颜色提取分割方法
2018/12/08 Python
Django组件cookie与session的具体使用
2019/06/05 Python
Python爬取爱奇艺电影信息代码实例
2019/11/26 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
家得宝墨西哥官网:The Home Depot墨西哥
2019/11/18 全球购物
职业培训师职业生涯规划
2014/02/18 职场文书
劲霸男装广告词
2014/03/21 职场文书
2014党委书记四风问题对照检查材料思想汇报
2014/09/22 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
通知书大全
2015/04/27 职场文书
导游词之峨眉山
2019/12/16 职场文书
Python中tkinter的用户登录管理的实现
2021/04/22 Python
关于windows server 2012 DC 环境 重启后蓝屏代码:0xc00002e2的问题
2022/05/25 Servers