ie的横向滚动条要随着鼠标滚轮滑动而移动,但网上找不到jquery或js的方法,纵向滚动条已经被我隐藏了
1个回答
展开全部
下面的代码暂不兼容 Webkit(Chrome, Safari),等我再琢磨一下、、、
Javascript 和 jQuery 方法都写了,你只需要更改变量 scroll_width 的值,就是每次移动的长度。
CSS
html {overflow-y: hidden;}
HTML
<div style="width: 5000px;">test</div>
jQuery
$(function() {
// 设置每次滚动长度,单位 px
var scroll_width = 100;
var scroll_events = "mousewheel DOMMouseScroll MozMousePixelScroll";
$(document).on(scroll_events, function(e) {
var delta = e.originalEvent.wheelDelta || e.originalEvent.detail;
// 滑轮向下滚动,滚动条向右移动,scrollleft+
if(delta > 0) {
$("html").scrollLeft($("html").scrollLeft() + scroll_width);
}
// 滑轮向上滚动,滚动条向座移动,scrollleft-
else {
$("html").scrollLeft($("html").scrollLeft() - scroll_width);
}
});
});
Javascript
window.onload = function() {
// 监听鼠标滑轮
var mousewheelevt = (/Firefox/i.test(navigator.userAgent))
? "DOMMouseScroll" : "mousewheel";
if(document.attachEvent) {
document.attachEvent("on" + mousewheelevt, function(e){
mousewheel_event(e.wheelDelta);
});
}
else if(document.addEventListener) {
document.addEventListener(mousewheelevt, function(e){
mousewheel_event(e.detail);
}, false);
}
// 设置每次滚动长度,单位 px
var scroll_width = 100;
function mousewheel_event(delta) {
// 滑轮向下滚动,滚动条向右移动,scrollleft+
if(delta > 0) {
document.getElementsByTagName("html")[0].scrollLeft
+= scroll_width;
}
// 滑轮向上滚动,滚动条向座移动,scrollleft-
else {
document.getElementsByTagName("html")[0].scrollLeft
-= scroll_width;
}
}
};
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询