首頁  >  文章  >  web前端  >  Js控制滑輪左右滑動實例_javascript技巧

Js控制滑輪左右滑動實例_javascript技巧

WBOY
WBOY原創
2016-05-16 16:14:121565瀏覽

今天弄了一個東西,頁面本來是橫向,所以底部有橫向滾動條,豎著就沒有滾動條了,現在要求是滑鼠滑輪要左右滾動,這就需要寫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&#63;e.wheelDelta: -e.detail*40;//判断上下方向
var move_s=delD>0&#63;-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瀏覽器下只有滑鼠放到那個灰色內才能滑動,這個問題我一直沒有解決掉,如果那個高手解決可以留言告訴我,謝謝了。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn