生活随笔
收集整理的這篇文章主要介紹了
JS实现滚动监听以及滑动到顶部
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
效果圖:
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, user-scalable=no" /><meta http-equiv="X-UA-Compatible" content="ie=edge" /><title>JS實現滾動監聽以及滑動到頂部
</title><script src="https://cdn.bootcss.com/eruda/1.4.3/eruda.min.js"></script><script>eruda.init();</script></head><body><style>body {margin: 0;background-color: rgba(0, 0, 255, 0.1);height: 200vh;}.uptop {position: fixed;bottom: -50px;right: 10px;width: 50px;z-index: 99;background: rgba(0, 0, 0, 0.2);text-align: center;-webkit-transition: all 0.5s;-moz-transition: all 0.5s;-ms-transition: all 0.5s;-o-transition: all 0.5s;transition: all 0.5s;}.uptop img {width: 80%;cursor: pointer;}</style><div class="uptop" id="uptop"><img src="img/up_to_top.png" id="to-top" /></div><script>var idcast = {tap: function(dom, callback) {if (!dom || typeof dom != "object") {return;}var startX, startY, time, moveX, moveY, distanceX, distanceY;dom.addEventListener("touchstart", function(e) {if (e.targetTouches.length > 1) {return;}startX = e.targetTouches[0].clientX;startY = e.targetTouches[0].clientY;time = Date.now();});dom.addEventListener("touchend", function(e) {if (e.changedTouches.length > 1) {return;}if (Date.now() - time > 150) {console.log("長按操作");return;}moveX = e.changedTouches[0].clientX;moveY = e.changedTouches[0].clientY;distanceX = moveX - startX;distanceY = moveY - startY;if (Math.abs(distanceX) < 6 && Math.abs(distanceY) < 6) {callback && callback(e);console.log("移動端點擊單擊事件--tap事件");} else {console.log("滑動操作");}});}};window.onscroll = function() {var t = document.documentElement.scrollTop || document.body.scrollTop; var uptop = document.getElementById("uptop"); if (t >= 300) {uptop.style.bottom = 30 + "px"; } else {uptop.style.bottom = -50 + "px"; }};var top = document.getElementById("to-top"); var timer = null;idcast.tap(top, function(e) {timer = setInterval(function() {var ct =document.documentElement.scrollTop || document.body.scrollTop; ct -= 10;if (ct > 0) {window.scrollTo(0, ct); } else {window.scrollTo(0, 0); clearInterval(timer); }}, 10); });</script></body>
</html>
總結
以上是生活随笔為你收集整理的JS实现滚动监听以及滑动到顶部的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。