• 判断页面时向上滚动还是向下滚动


    <!DOCTYPE> 
    <html> 
    <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
      <meta name = "viewport" content = "width = device-width, initial-scale = 1.0, maximum-scale = 1.0, user-scalable = 0" />
    </head> 
    <body> 
        <p id="scroll" style="position: fixed;top: 0;left: 0;right:0;border: 1px red solid;"></p>
        <div style=" 100%;height: 2000px;border: 1px black solid;margin-top: 50px;"></div>
        <script type="text/javascript">
            var scrollTop=0,topValue=getScrollTop();  
            document.onscroll=function(e){  
                scrollTop = getScrollTop();
                if(scrollTop<=topValue){
                    document.getElementById("scroll").innerHTML='向上滚动';
                }  
                else{
                    document.getElementById("scroll").innerHTML='向下滚动';
                }  
                setTimeout(function(){topValue=scrollTop;},0);         
            }; 
            function getScrollTop()
            {
                var scrollTop=0;
                if(document.documentElement&&document.documentElement.scrollTop)
                {
                    scrollTop=document.documentElement.scrollTop;
                }
                else if(document.body)
                {
                    scrollTop=document.body.scrollTop;
                }
                return scrollTop;
            }
        </script>
    </body> 
    </html> 

     仅限于pc端

    <!DOCTYPE> 
    <html> 
    <head> 
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
      <meta name = "viewport" content = "width = device-width, initial-scale = 1.0, maximum-scale = 1.0, user-scalable = 0" />
    </head> 
    <body> 
        <p id="scroll" style="position: fixed;top: 0;left: 0;right:0;border: 1px red solid;"></p>
        <div style=" 100%;height: 2000px;border: 1px black solid;margin-top: 50px;"></div>
        <script type="text/javascript">
            var agent = navigator.userAgent;
            if (/.*Firefox.*/.test(agent)) {
                document.addEventListener("DOMMouseScroll", function(e) {
                    e = e || window.event;
                    var detail = e.detail;
                    if (detail > 0) {
                        console.log("鼠标向下滚动");
                    } else {
                        console.warn("鼠标向上滚动");
                    }
                });
            } else {
                document.onmousewheel = function(e) {
                    e = e || window.event;
                    var wheelDelta = e.wheelDelta;
                    if (wheelDelta > 0) {
                        console.log("鼠标向上滚动");
                    } else {
                        console.warn("鼠标向下滚动");
                    }
                }
            }
        </script>
    </body> 
    </html> 
    <!doctype html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-touch-fullscreen" content="yes" />
        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1" />
        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <link rel="stylesheet" type="text/css" href="css/font/iconfont.css">
    </head>
    <body>
        <div class="scroller-wrap" style="100%;height: 1900px;border: 1px red solid;">
    
        </div>
        <script>
            var isStopScroolTimer=null;
            var topValue=null;
            //获取滚动高度
            function getScrollTop()
            {
                var scrollTop=0;
                if(document.documentElement&&document.documentElement.scrollTop)
                {
                    scrollTop=document.documentElement.scrollTop;
                }
                else if(document.body)
                {
                    scrollTop=document.body.scrollTop;
                }
                return scrollTop;
            }
            document.onscroll=function(){   
                if(isStopScroolTimer == null) {
                    isStopScroolTimer = setInterval("isStopScrool()", 100);  
                } 
            };
            function isStopScrool() {  
                // 判断此刻到顶部的距离是否和1秒前的距离相等  
                if(getScrollTop() == topValue) {   
                    console.log('滑动结束'+'滑动高度:'+getScrollTop());
                    clearInterval(isStopScroolTimer);
                    isStopScroolTimer=null;
                } else if(getScrollTop() > topValue){
                    console.log("向上滚动");
                    topValue = getScrollTop();
                }else if(getScrollTop() < topValue){
                    console.log("向下滚动");
                    topValue = getScrollTop();
                }else{
                   topValue = getScrollTop();
               }
           } 
       </script>
    </body>
    </html>
    <!doctype html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-touch-fullscreen" content="yes" />
        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1" />
        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <link rel="stylesheet" type="text/css" href="css/font/iconfont.css">
    </head>
    <body>
        <div class="scroller-wrap" style="100%;height: 1900px;border: 1px red solid;">
    
        </div>
    <script>  
        var startx, starty;  
        //获得角度  
        function getAngle(angx, angy) {  
            return Math.atan2(angy, angx) * 180 / Math.PI;  
        };  
       
        //根据起点终点返回方向 1向上 2向下 3向左 4向右 0未滑动  
        function getDirection(startx, starty, endx, endy) {  
            var angx = endx - startx;  
            var angy = endy - starty;  
            var result = 0;  
       
            //如果滑动距离太短  
            if (Math.abs(angx) < 2 && Math.abs(angy) < 2) {  
                return result;  
            }  
       
            var angle = getAngle(angx, angy);  
            if (angle >= -135 && angle <= -45) {  
                result = 1;  
            } else if (angle > 45 && angle < 135) {  
                result = 2;  
            } else if ((angle >= 135 && angle <= 180) || (angle >= -180 && angle < -135)) {  
                result = 3;  
            } else if (angle >= -45 && angle <= 45) {  
                result = 4;  
            }  
       
            return result;  
        }  
        //手指接触屏幕  
        document.addEventListener("touchstart", function(e) {  
            startx = e.touches[0].pageX;  
            starty = e.touches[0].pageY;  
        }, false);  
        //手指离开屏幕  
        document.addEventListener("touchend", function(e) {  
            var endx, endy;  
            endx = e.changedTouches[0].pageX;  
            endy = e.changedTouches[0].pageY;  
            var direction = getDirection(startx, starty, endx, endy);  
            switch (direction) {  
                case 0:  
                    alert("未滑动!");  
                    break;  
                case 1:  
                    alert("向上!")  
                    break;  
                case 2:  
                    alert("向下!")  
                    break;  
                case 3:  
                    alert("向左!")  
                    break;  
                case 4:  
                    alert("向右!")  
                    break;  
                default:  
            }  
        }, false);  
      
    </script>  
    </body>
    </html>
    <!doctype html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <meta name="apple-touch-fullscreen" content="yes" />
        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1" />
        <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
        <meta name="apple-mobile-web-app-capable" content="yes" />
        <link rel="stylesheet" type="text/css" href="css/font/iconfont.css">
    </head>
    <body>
        <div class="scroller-wrap" style="100%;height: 1900px;border: 1px red solid;">
    
        </div>
        <script>  
            var starty;  
    
        //手指接触屏幕  
        document.addEventListener("touchstart", function(e) {  
            starty = e.touches[0].pageY;  
        }, false);  
        //手指离开屏幕  
        document.addEventListener("touchend", function(e) {  
            var endx, endy;  
            endy = e.changedTouches[0].pageY;  
            if(endy>starty){
                console.log("向上滑动");
            }else if(endy<starty){
                console.log("向下滑动");
            }
        }, false);   
    </script>  
    </body>
    </html>
  • 相关阅读:
    Android教程 -07 Activity的任务栈和启动模式
    ViewPager封装工具类: 轻松实现APP导航或APP中的广告栏
    hdu 5900 区间dp
    状压dp入门
    poj 3280
    hdu 4745 two Rabits
    食了智,过来水一发
    poj 2142 the Balance
    hdu 6188 Duizi and Shunzi
    hdu 6186 CS Course
  • 原文地址:https://www.cnblogs.com/theWayToAce/p/7144477.html
Copyright © 2020-2023  润新知