zoukankan      html  css  js  c++  java
  • JS实现让滚轮控制网页头部显示与隐藏

    在很多网站中都有鼠标网上滚动头部就会滑出,继续往下滚动就会隐藏,下面看看实现方法

    scroll();
    function scroll(){// 入口方法  这个方法是获取事件的兼容,获取delta  --表示滚动条走向
            var ele = document.documentElement || document.body;
            var eventType = 'mousewheel';
            // 火狐是DOMMouseScroll事件
            if (document.mozHidden  !== undefined) {
                 eventType = 'DOMMouseScroll';
            }
            function getData(event){
                var e = event || window.event;
                //为了兼容火狐
                //为了兼容火狐
                var delta = e.wheelDelta?e.wheelDelta:e.detail;//wheelDelta 非火狐-120:向下  120:向上   /detail火狐 3:向下  -3 :向上
                bScrolls(delta);  
            }
            myAddEvent(ele,eventType,getData);
        }
    function myAddEvent(ele,sEvent,getData){ //这个方法是兼容绑定事件/监听事件
            if(ele.addEventListener && !ele.attachEvent){//非IE
                ele.addEventListener(sEvent,getData); 
            }else{//IE
                if(document.attachEvent && !document.addEventListener){ //IE8以下
                    ele.attachEvent('on'+sEvent,getData); 
                }else{ //IE8以上下
                    ele.addEventListener(sEvent,getData); 
                }
            }
        }
    function bScrolls(delta){//执行操作
            var p = document.documentElement.scrollTop || document.body.scrollTop;//当前滚动条的高度
            if(p > 100){//如果滚动条的高度大于你设置的高度,就开始判断滚动条的走向
                $('.header').addClass('scroll');
                if(delta < -3 || delta == 3){//向下滚动
                    $('.header').removeClass('top');
                }
                else if(delta > 3 || delta == -3){//上滚
                    $('.header').addClass('top');
                }
            }else{
                $('.header').removeClass('scroll');
            }
        }

    这样用鼠标滚轮可以操控头部显示与隐藏,但是拖动滚动条确是没反应

    在谷歌火狐中也可以监听onscroll 他可以实现用鼠标拉滚动条也会有这样的效果,在IE中不行必须要使用滚轮事件,

    而且用onscroll事件监听,获取不到wheelDelta值,所以判断滚动条走向就要自己定义变量,去判断滚动条走向,代码如下

    function scrolls(){
        var p=0,t=0;
        var windHeight = $(window).height();
        $(window).scroll(function(){            
            p = $(this).scrollTop();
         if(t<=p){//下滚 //显示操作 } else{//上滚 //隐藏操作 } t = p; }); }

    此方法仅供参考

  • 相关阅读:
    [hdu 2089]简单数位dp
    [fzu 2271]不改变任意两点最短路至多删的边数
    [bzoj 1143]最长反链二分图最大匹配
    [codeforces gym Matrix God]随机矩阵乘法
    [hdu 2298] 物理推导+二分答案
    url编码有个bug,不能直接用decodeURIComponent,如果遇到前面的$会报错。
    设置cookie的保存时间 下一篇
    js操作获取和设置cookie
    简单使用location.hash的方法 ,怎么做,有什么用? 简单的js路由页面方法。
    三个月之内开发项目最好用第三方库
  • 原文地址:https://www.cnblogs.com/bruce-gou/p/5607370.html
Copyright © 2011-2022 走看看