国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

用原生js做個簡單的滑動效果的回到頂部

2019-11-20 14:02:30
字體:
供稿:網(wǎng)友

很多網(wǎng)頁在下方都會放置一個“返回頂部”按鈕,尤其是頁面底部沒有導(dǎo)航的網(wǎng)頁,這樣可以幫助訪客重新找到導(dǎo)航或者重溫一遍廣告(想得真美)。隨著近幾年來 JavaScript 的應(yīng)用日漸廣泛,滑動效果無處不在,于是我也跟跟風(fēng),將返回頂部功能做成了滑動效果。后來為了更貼合物理特征, 改造做成了減速的滑動效果。

首先說一下原理吧,我們會獲取滾動條到頁面頂部的距離,然后上移一定的距離;再獲取滾動條到頁面頂部的距離,上移一定的距離(比上一次小一點);以此類推 ...

<script type="text/javascript"> /** * 回到頁面頂部 * @param acceleration 加速度 * @param time 時間間隔 (毫秒) **/function goTop(acceleration, time) { acceleration = acceleration || 0.1; time = time || 16; var x1 = 0; var y1 = 0; var x2 = 0; var y2 = 0; var x3 = 0; var y3 = 0; if (document.documentElement) { x1 = document.documentElement.scrollLeft || 0; y1 = document.documentElement.scrollTop || 0; } if (document.body) { x2 = document.body.scrollLeft || 0; y2 = document.body.scrollTop || 0; } var x3 = window.scrollX || 0; var y3 = window.scrollY || 0; // 滾動條到頁面頂部的水平距離 var x = Math.max(x1, Math.max(x2, x3)); // 滾動條到頁面頂部的垂直距離 var y = Math.max(y1, Math.max(y2, y3)); // 滾動距離 = 目前距離 / 速度, 因為距離原來越小, 速度是大于 1 的數(shù), 所以滾動距離會越來越小 var speed = 1 + acceleration; window.scrollTo(Math.floor(x / speed), Math.floor(y / speed)); // 如果距離不為零, 繼續(xù)調(diào)用迭代本函數(shù) if(x > 0 || y > 0) { var invokeFunction = "goTop(" + acceleration + ", " + time + ")"; window.setTimeout(invokeFunction, time); } } </script>

document.documentElement.scrollTop, document.body.scrollTop, window.scrollY 其實都是一樣的,但它們只在某些瀏覽器中起作用。至于那哪個在哪些瀏覽器起作用可以自己調(diào)試一下。

如何使用?

復(fù)制代碼 代碼如下:

<a href="#" onclick="goTop();return false;">TOP</a>

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿坝县| 台中市| 丽江市| 泽库县| 华安县| 攀枝花市| 莱西市| 内乡县| 武宁县| 中阳县| 嘉义县| 霍林郭勒市| 安徽省| 富蕴县| 安义县| 深泽县| 芦溪县| 梧州市| 望都县| 金堂县| 延安市| 永清县| 门源| 旅游| 湾仔区| 双江| 林芝县| 怀集县| 宝兴县| 衡山县| 密山市| 孟村| 志丹县| 溧阳市| 西贡区| 吉林市| 巩义市| 正阳县| 财经| 介休市| 大安市|