JS實(shí)現(xiàn)回到頁(yè)面頂部動(dòng)畫效果的簡(jiǎn)單實(shí)例
最近在模仿各大網(wǎng)站寫頁(yè)面樣式和交互,發(fā)現(xiàn)好多都有回到頂部的需要,所以寫了一下js,記錄下來(lái)。
發(fā)現(xiàn)還可以添加從快到慢的動(dòng)畫效果和隨時(shí)下拉滾動(dòng)條停止?jié)L動(dòng)的功能, 參考了imooc上相關(guān)課程,最終實(shí)現(xiàn)JS代碼如下:
//頁(yè)面加載后觸發(fā) window.onload = function(){ var btn = document.getElementById('btn'); var timer = null; var isTop = true; //獲取頁(yè)面可視區(qū)高度 var clientHeight = document.documentElement.clientHeight; //滾動(dòng)條滾動(dòng)時(shí)觸發(fā) window.onscroll = function() { //顯示回到頂部按鈕 var osTop = document.documentElement.scrollTop || document.body.scrollTop; if (osTop >= clientHeight) { btn.style.display = "block"; } else { btn.style.display = "none"; }; //回到頂部過(guò)程中用戶滾動(dòng)滾動(dòng)條,停止定時(shí)器 if (!isTop) { clearInterval(timer); }; isTop = false; }; btn.onclick = function() { //設(shè)置定時(shí)器 timer = setInterval(function(){ //獲取滾動(dòng)條距離頂部高度 var osTop = document.documentElement.scrollTop || document.body.scrollTop; var ispeed = Math.floor(-osTop / 7); document.documentElement.scrollTop = document.body.scrollTop = osTop+ispeed; //到達(dá)頂部,清除定時(shí)器 if (osTop == 0) { clearInterval(timer); }; isTop = true; },30); }; };
以上這篇JS實(shí)現(xiàn)回到頁(yè)面頂部動(dòng)畫效果的簡(jiǎn)單實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
簡(jiǎn)單實(shí)現(xiàn)JS對(duì)dom操作封裝
這篇文章主要介紹了簡(jiǎn)單實(shí)現(xiàn)JS對(duì)dom操作封裝,需要的朋友可以參考下2015-12-12JavaScript建立一個(gè)語(yǔ)法高亮輸入框?qū)崿F(xiàn)思路
通常網(wǎng)站自帶的textarea編輯器不能滿足我們的需求比如高亮顯示代碼等,在這篇文章中,我將使用JavaScript庫(kù)ACE來(lái)創(chuàng)建一個(gè)輸入框效果,該腳本允許開發(fā)人員創(chuàng)建支持語(yǔ)法高亮的輸入框,感興趣的你可不要錯(cuò)過(guò)了哈2013-02-02js獲取觸發(fā)事件元素在整個(gè)網(wǎng)頁(yè)中的絕對(duì)坐標(biāo)(示例代碼)
這篇文章主要介紹了js獲取觸發(fā)事件元素在整個(gè)網(wǎng)頁(yè)中的絕對(duì)坐標(biāo)。需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12由淺入深講解Javascript繼承機(jī)制與simple-inheritance源碼分析
Javascript語(yǔ)言對(duì)繼承實(shí)現(xiàn)的并不好,需要工程師自己去實(shí)現(xiàn)一套完整的繼承機(jī)制。下面我們由淺入深的系統(tǒng)掌握使用javascript繼承的技巧,對(duì)javascript繼承相關(guān)知識(shí)感興趣的朋友一起看看吧2015-12-12js監(jiān)聽滾動(dòng)條滾動(dòng)事件使得某個(gè)標(biāo)簽內(nèi)容始終位于同一位置
js如何監(jiān)聽滾動(dòng)條滾動(dòng)事件,使得某個(gè)標(biāo)簽內(nèi)容始終位于同一位置,下面有個(gè)不錯(cuò)的示例,大家可以參考下2014-01-01計(jì)算新浪Weibo消息長(zhǎng)度(還可以輸入119字)
此文為計(jì)算新浪Weibo的消息長(zhǎng)度的方法. 就是在發(fā)言的時(shí)候還可以輸入多少字,具體的實(shí)現(xiàn)如下,感興趣的朋友可以參考下哈,希望對(duì)大家有所幫助2013-07-07創(chuàng)建echart多個(gè)聯(lián)動(dòng)的示例代碼
這篇文章主要介紹了創(chuàng)建echart多個(gè)聯(lián)動(dòng)的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-11-11