用鼠标滚轮控制页面滚动动画
我的意思是滚动时会轻松。
回答:
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;
,如果你的.page
s为像一个滚动的DIV内$("#pagesParent")
(而不是$('html,
body'))
对于 您可能希望针对浏览器的标签栏高度调整值(最好还是完全避免这种情况)。你有主意
以上是 用鼠标滚轮控制页面滚动动画 的全部内容, 来源链接: utcz.com/qa/429020.html