用鼠标滚轮控制页面滚动动画

我的意思是滚动时会轻松。

回答:

var $pages = $(“.page”),

    tot = $pages.length,

c = 0, pagePos = 0, down = 0, listen = true;

$('html, body').on('DOMMouseScroll mousewheel', function(e) {

e.preventDefault();

if(!listen)return;

listen = false;

down = e.originalEvent.detail > 0 || e.originalEvent.wheelDelta < 0;

c = Math.min(Math.max(0, down ? ++c : --c), tot-1);

pagePos = $pages.eq(c).offset().top;

$(this).stop().animate({scrollTop: pagePos}, 650, function(){

listen = true;

});

});

*{margin:0;}

.page{min-height:100vh;}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="page" style="background:#0bf">PAGE 1</div>

<div class="page" style="background:#fb0">PAGE 2</div>

<div class="page" style="background:#0fb">PAGE 3</div>

<div class="page" style="background:#b0f">PAGE 4</div>

使用.position().top;,如果你的.pages为像一个滚动的DIV内$("#pagesParent")(而不是$('html,

body')


对于 您可能希望针对浏览器的标签栏高度调整值(最好还是完全避免这种情况)。你有主意

以上是 用鼠标滚轮控制页面滚动动画 的全部内容, 来源链接: utcz.com/qa/429020.html

回到顶部