原声js鼠标滚一次一屏

编程入门 行业动态 更新时间:2024-10-08 02:25:22

原声js<a href=https://www.elefans.com/category/jswz/34/1769042.html style=鼠标滚一次一屏"/>

原声js鼠标滚一次一屏

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>原生js实现一次滚动一屏</title><style>html,body{height: 100%;}body{margin: 0;}div{height: 100%;}</style>
</head>
<body><div style="background-color: #1b6d85"><div>这是第1屏</div></div><div style="background-color: #5cb85c"><div>这是第2屏</div></div><div style="background-color: #8a6d3b"><div>这是第3屏</div></div><div style="background-color: #337ab7"><div>这是第4屏</div></div><div style="background-color: #66512c"><div>这是第5屏</div></div>
</body>
<script>document.addEventListener("DOMContentLoaded",function () {var body = document.body;var html = document.documentElement;var itv,height = document.body.offsetHeight;var page = scrollTop() / height | 0;addEventListener("resize",onresize,false);onresize();//鼠标滚轮事件document.body.addEventListener("onwheel" in document ? "wheel" : "mousewheel",function (e) {clearTimeout(itv);itv = setTimeout(function () {//判断滚轮滚的方向var delta = e.wheelDelta / 120 || -e.deltaY / 3;page -= delta;var max = (document.body.scrollHeight / height | 0) -1;if (page < 0){return page = 0;}if (page > max){return page = max;}move();},100);e.preventDefault();});//当窗体发生变化时还是保证每次滚动滚一屏function  onresize() {height = body.offsetHeight;move();};function  move() {var value = height * page;var diff = scrollTop() - value;(function callee() {diff = diff / 1.2 | 0;scrollTop(value + diff);if (diff){itv = setTimeout(callee,16);}})();};function scrollTop(v) {if (v == null){return Math.max(body.scrollTop,html.scrollTop);}else{body.scrollTop = html.scrollTop = v;}}})
</script>
</html>

更多推荐

原声js鼠标滚一次一屏

本文发布于:2024-02-05 15:57:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1745484.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:鼠标   原声   js

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!