一种用javascript实现的比较兼容的回到顶部demo + 阻止事件冒泡

回到页面顶部demo

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        body {
            height: 2000px;
        }
        #up {
            position: fixed;
            bottom: 0;
            right: 0;
            width: 100px;
            height: 100px;
            background: #c1c1c1;
        }
    </style>
</head>
<body>
    <div id="up"></div>

    <script>
        
        window.onload = function (){
            var oDiv = document.getElementById("up");
            var timer = null;
            var bySys = true;

            //如何检测用户拖动了滚动条
            window.onscroll = function (){
                if (!bySys) {
                    clearInterval(timer);
                }
                bySys = false;
            }
            oDiv.onclick = function (){
                timer = setInterval(function() {
                    var scrollTop = document.documentElement.scrollTop ||
                            document.body.scrollTop;
                    var iSpeed = Math.floor(-scrollTop/8);
                    
                    if (scrollTop === 0) {
                        clearInterval(timer);
                    }
                    bySys = true;
                    document.body.scrollTop = scrollTop + iSpeed;
                    document.documentElement.scrollTop = scrollTop + iSpeed;
                }, 30);
            }
        }
    </script>
</body>
</html>

阻止事件冒泡

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style>
        #box {
            width: 100px;
            height: 200px;
            background: #000;
            display: none;

        }
    </style>
</head>
<body>
    <input type="button" value="显示" id="btn">
    <div id="box"></div>

    <script>
        var oBtn = document.getElementById("btn");
        var oBox = document.getElementById("box");
        oBtn.onclick = function (ev){
            var oEvent = ev || event;
            oBox.style.display = 'block';
            oEvent.cancelBubble = true; // 阻止事件冒泡
        }
        document.onclick = function (){
            oBox.style.display = 'none';
        }
    </script>
</body>
</html>

 

posted @ 2015-07-15 21:17  钟山  阅读(203)  评论(0编辑  收藏  举报