项目中,鼠标移到某一元素上,滚动条左右移动,案例中是在bootstrap-table上,结合jquery.mousewheel.js,但思路相通。
module.exports = /*@ngInject*/ function(Restangular,$rootScope) {
'use strict';
return {
link: function(scope, elem, attrs, ctrl) {
//控制表格左右滚动
elem.bind('mousewheel', function(event, delta) {
var step=30;
var dir = delta > 0 ? 'Up' : 'Down';//判断上下滚动
var left=$(".fixed-table-body").scrollLeft();//获取当前滚动条左右进度
$(this).css('cursor','move');
if(dir=='Up'){
left-=step;
}else if(dir=='Down'){
left+=step;
}
$(".fixed-table-body").scrollLeft(left);
});
//禁用外部区域鼠标滚动
var scrollTop = -1; // 鼠标进入到区域后,则存储当前window滚动条的高度
elem.hover(function(){
scrollTop = $(window).scrollTop();
}, function(){
scrollTop = -1;
});
// 鼠标进入到区域后,则强制window滚动条的高度
$(window).scroll(function(){
scrollTop!==-1 && $(this).scrollTop(scrollTop);
})
}
}
}