实现关键,
1.监听鼠标滚轮事件(这里用到了JQ的mousewheel插件,也可以用原生监听wheel事件),判断上滚动或者下滚动。
$(function(){
var $screen = $( .pages_con );
var $pages = $( .pages );
var $len = $pages.length;
var $h = $(window).height();
var timer = null;
var $nowscreen = 0;
$pages.css({ height :$h});
function pagescroll(event,dat){
clearTimeout(timer);
timer = setTimeout(function(){
if(dat==-1)
{
$nowscreen++;
}
else
{
$nowscreen–;
}
if($nowscreen<0)
{
$nowscreen=0;
}
if($nowscreen>$len-1)
{
$nowscreen=$len-1;
}
$screen.animate({ top :-$h*$nowscreen},800);
}
})
2.防抖 (笔记本触摸板也能兼容)
// 防抖并且立即执行
function debounce(func, wait, immediate) {
let timer;
return function() {
let context = this,
args = arguments;
if (timer) clearTimeout(timer);
if (immediate) {
let callNow = !timer;
timer = setTimeout(() => {
timer = null;
}, wait);
if (callNow) func.apply(context, args);
} else {
timer = setTimeout(() => {
func.apply
}, wait)
}
}
}
$(window).mousewheel(debounce(pagescroll,300,true)) true使得触摸板双指上滑/下滑立即执行,再进行防抖计时器,false则会先进行计时器再执行手指事件。


















暂无评论内容