Js控制滑轮左右滑动实例
今天弄了⼀个东西,页⾯本来是横向,所以底部有横向滚动条,竖着就没有滚动条了,现在要求是⿏标滑轮要左右滚动,这就需要写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"
"/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />html横向滚动条样式
<title>⽆标题⽂档</title>
</head>
<body>
<div id="test" ></div>
<script language="javascript">
var ElementById('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浏览器下只有⿏标放到那个灰⾊内才能滑动,这个问题我⼀直没有解决掉,如果那个⾼⼿解决可以留⾔告诉我,谢谢了。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论