mthoutai

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

因为全项目不是自己写的,仅仅是帮别人写js滚轮代码,并且别人项目也还未上线。所以仅仅贴出自己写的那段部分代码,

效果:鼠标滚轮滚动时。网頁屏幕一屏一屏的上下切换

(下面代码在本地电脑的IE,chrome与FireFox这三个浏览器已经測试而且已经成功)

    var sum=0;
    var oTxt=document.getElementById("txt");
    var scrollFunc=function(e){

    var direct=0;
    var men = $(".menu_m").find(".menu").find("li");
    men.each(function (j) {
            if($(this).attr("class")=="m_selected"){
                sum=j;
            }
    });
    e=e || window.event;
    if(e.wheelDelta){//IE/Opera/Chrome
        if(navigator.appName=='Netscape'){
            // Chorme滚一次有两次的效果,所以加0.5
            if(e.wheelDelta>0){
                
                sum=parseFloat(sum-0.5);
                
            }
            else{
                
                sum=parseFloat(sum)+0.5;

            }
        }else{
            if(e.wheelDelta>0)
                sum=parseFloat(sum-1);
            else
                sum=parseFloat(sum+1);
        }
    }else if(e.detail){//Firefox
		//firefox向上向下的值不和上面的一样,可打印出看看
        if(e.detail>0)
                sum=parseFloat(sum+1);
            else
                sum=parseFloat(sum-1);
    }
		//sum出来的。以下就是你想做的事情,我这里是写与当前项目有所以相关联的屏目跳转,但记的要加return false; 要不然,在google和ie中时会出现,滚多了
        var sizes= $(".menu_m").find(".menu").find("li").size();
        if(sum>=0&&parseFloat(sum)<=parseFloat(sizes)-1){
            men.each(function (j) {
                $(this).removeClass("m_selected")
             });
              $(".menu_m").find(".menu li:eq("+sum+")").find("span").click();
              return false;
          }


}
/*注冊事件*/
if(document.addEventListener){
    document.addEventListener('DOMMouseScroll',scrollFunc,false);
}//W3C
window.onmousewheel=document.onmousewheel=scrollFunc;//IE/Opera/Chrome/Safari

posted on 2017-05-26 08:25  mthoutai  阅读(497)  评论(0编辑  收藏  举报