1. 程式人生 > >右下角小火箭,返回頂部-onscroll,scrollTo

右下角小火箭,返回頂部-onscroll,scrollTo

右下角小火箭,返回頂部—onscroll,scrollTo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        .goTop{
            position: fixed;
            right
: 100px
; bottom: 100px; display: none; }
</style> </head> <body> <div class="goTop" id="rockToTop"> <img src="images/top.jpg" alt=""> </div> <div class="content"> 開始了!<br> <p>我是內容</p
>
<p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p> <p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p> <p>我是內容</p><p>我是內容</p
>
<p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p> <p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p> <p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p> <p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p> <p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p> <p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p> <p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p> <p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p><p>我是內容</p> </div> <script src="my.js" type="text/javascript"></script> <script> function show(id){ id.style.display="block"; } function hide(id){ id.style.display="none"; } var rockToTop = document.getElementById('rockToTop'); window.onscroll = function(){ scroll().top > 0 ? show(rockToTop) : hide(rockToTop); // 如果大於0 就顯示 否則隱藏 leader = scroll().top; } var leader = 0 , target = 0, timer = null; rockToTop.onclick = function() { target = 0; // 點選完畢之後 奔向0 去的 不寫也可以 timer = setInterval(function() { leader = leader + (target - leader ) / 10; window.scrollTo(0,leader); // 去往頁面中的某個位置 console.log(leader+" "+target); if(leader == target) { clearInterval(timer); } },20); } </script> </body> </html>

my.js

function show(obj) { obj.style.display = "block";}
function hide(obj) { obj.style.display = "none";}
function scroll() {
    if(window.pageYOffset != null)  //  ie9+ 和其他瀏覽器
    {
        return {
            left: window.pageXOffset,
            top: window.pageYOffset
        }
    }
    else if(document.compatMode == "CSS1Compat")  // 宣告的了 DTD
    // 檢測是不是怪異模式的瀏覽器 -- 就是沒有 宣告<!DOCTYPE html>
    {
        return {
            left: document.documentElement.scrollLeft,
            top: document.documentElement.scrollTop
        }
    }
    return { //  剩下的肯定是怪異模式的
        left: document.body.scrollLeft,
        top: document.body.scrollTop
    }