最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js實現(xiàn)的鼠標滾輪滾動切換頁面效果(類似360默認頁面滾動切換效果)

 更新時間:2016年01月27日 11:35:29   作者:m1870164  
這篇文章主要介紹了js實現(xiàn)的鼠標滾輪滾動切換頁面效果,類似360默認頁面滾動切換效果.涉及JavaScript響應(yīng)鼠標事件動態(tài)變換頁面元素的相關(guān)技巧,需要的朋友可以參考下

本文實例講述了js實現(xiàn)的鼠標滾輪滾動切換頁面效果的方法。分享給大家供大家參考,具體如下:

運行效果截圖如下:

具體代碼如下:

<!DOCTYPE html>
<html>
 <head>
  <title>wheel</title>
  <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
  <script type="text/javascript" >
   var currentShowPageIndex = 0;
   var animateTimeout = null;
   var isWheelAnimating = false;
   var isWheelUp = function(event) {
    event = event || window.event;
    var up = true;
    if(event.wheelDelta){//IE/Opera/Chrome
     up = event.wheelDelta / 120 == 1 ? true : false;
    }else{//Firefox
     up = event.detail / 3 == 1 ? true : false;
    }
    return up;
   }
   var changeBar = function(prevIndex, index) {
    var barUl = document.getElementById('barUl');
    var barLiList = barUl.getElementsByTagName('li');
    barLiList[prevIndex].className = "";
    barLiList[index].className = "active"; 
   }
   var changePage = function(pageIndex) {
    var showPageUl = document.getElementById('wheelUl');
    changeBar(currentShowPageIndex, pageIndex);
    currentShowPageIndex = pageIndex;
    var left = -(currentShowPageIndex) * 1000;
    showPageUl.style.marginLeft = left + "px";
    return;
   }
   var animate = function(obj, mode, from, to){
    if(animateTimeout) {
     clearTimeout(animateTimeout);
    }
    if(mode == "left") {
     if(from > to) {
      from = from - 50;
      obj.style.marginLeft = (from) + "px";
      setTimeout(function(){
       animate(obj, mode, from, to);
      }, 30);
     } else {
        isWheelAnimating = false;
       }
     return;
    } 
    if(from < to) {
     from = from + 50;
     obj.style.marginLeft = (from) + "px";
     setTimeout(function(){
      animate(obj, mode, from, to);
     }, 30);
    } else {
       isWheelAnimating = false;
      }
   }
   var mouseWheel = function(event) { 
    if(isWheelAnimating) {
      return;
    }
    isWheelAnimating = true;
    var wheelUp = isWheelUp(event);
    var showPageUl = document.getElementById('wheelUl');
    var showPageUlWidth = parseInt(showPageUl.offsetWidth);
    var showPageLiList = showPageUl.getElementsByTagName('li');
    var showPageLiListLength = showPageLiList.length;
    var wheelWrapperLeft = parseInt(document.getElementById('wheelWrapper').offsetLeft);
    if(wheelUp && currentShowPageIndex < showPageLiListLength - 1) {
     changeBar(currentShowPageIndex, currentShowPageIndex + 1);
     currentShowPageIndex ++;
     var left = -(currentShowPageIndex) * 1000;
     //animate(showPageUl, "right", -(currentShowPageIndex - 1) * 1000, -(currentShowPageIndex - 1) * 1000);
     var from = -(currentShowPageIndex - 1) * 1000;
     var to = -(currentShowPageIndex) * 1000;
     animate(showPageUl, "left", from, to);
     return;
    }
    if(!wheelUp && currentShowPageIndex > 0) {
     changeBar(currentShowPageIndex, currentShowPageIndex - 1);
     currentShowPageIndex --;
     var from = -(currentShowPageIndex + 1) * 1000;
     var to = -(currentShowPageIndex) * 1000;
     animate(showPageUl, "right", from, to);
     return;
    } 
    isWheelAnimating = false;
   };
   if(document.addEventListener){
    document.addEventListener('DOMMouseScroll',function(event) { mouseWheel(event); },false);
   }
   document.onmousewheel = function(event) { mouseWheel(event); }
   window.onload = function(){
    var barUl = document.getElementById('barUl');
    var barLiList = barUl.getElementsByTagName('li');
    for(var i=0,length=barLiList.length; i<length; i++) {
     (function(index){
      barLiList[index].onclick = function(){
       changePage(index);
      };
     })(i);
    }
   }
  </script>
  <style type="text/css" >
   body { background:#494949; margin:0; }
   ul { list-style:none; margin:0; padding:0; }
   li { float:left;}
   #wheelWrapper {
    width:1000px; height:550px; margin:0 auto; 
    position:fixed; left:50%; margin-left:-505px;
    bottom:50px; overflow:hidden;
   }
   #wheelUl {
    width:5050px; height:500px;
   }
   #barUl {
    clear:both; margin:0 auto; width:550px;
    margin-top:20px; line-height:25px;
   }
   #barUl>li {
    width:100px; background:orange;
    height:25px; margin-right:10px;
    border-radius:5px; text-align:center;
    -webkit-border-radius:5px;
    -moz-border-radius:5px;
   }
   #barUl>li:hover {
    background:#C36C12;
   }
   #barUl>li[class=active] {
    background:#C36C12;
   }
   #wheelUl>li { width:1000px; }
   .wheel {
    width:994px; height:500px; background:#FAAA3C;
    border-radius:10px;
    -webkit-border-radius:10px;
    -moz-border-radius:10px;
    margin:0 auto;
    line-height:300px;
    font-size:100px;
    text-align:center;
   }
   .radius {
    border-radius:3px;
    -webkit-border-radius:3px;
    -moz-border-radius:3px;
   }
   h1 { text-align:center; color:#fff; }
  </style>
 </head>
 <body id="body">
  <h1 >ie8+,chrome,ff提供支持</h1>
  <div id="wrapper">
   <div id="wheelWrapper">
    <ul id="wheelUl" >
     <li >
      <div class="wheel">
       1_page1
      </div>
     </li>
     <li >
      <div class="wheel">
       2_page2
      </div>
     </li>
     <li >
      <div class="wheel">
       3_page3
      </div>
     </li>
     <li >
      <div class="wheel">
       4_page4
      </div>
     </li>
     <li >
      <div class="wheel">
       5_page5
      </div>
     </li>
    </ul>
    <ul id="barUl">
     <li class="active">
      1
     </li>
     <li>
      2
     </li>
     <li>
      3
     </li>
     <li>
      4
     </li>
     <li>
      5
     </li>
    </ul>
   </div>
  </div>
 </body>
</html>

更多關(guān)于jQuery特效相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《jQuery常見經(jīng)典特效匯總》及《jQuery動畫與特效用法總結(jié)

希望本文所述對大家jQuery程序設(shè)計有所幫助。

相關(guān)文章

  • uni.getLocation和wx.getLocation方法調(diào)用無效也不返回失敗的解決方案

    uni.getLocation和wx.getLocation方法調(diào)用無效也不返回失敗的解決方案

    這篇文章主要給大家介紹了關(guān)于uni.getLocation和wx.getLocation方法調(diào)用無效也不返回失敗的解決方案,文中通過實例代碼以及圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2023-04-04
  • JavaScript利用油猴腳本實現(xiàn)去水印功能

    JavaScript利用油猴腳本實現(xiàn)去水印功能

    這篇文章主要為大家詳細介紹了JavaScript如何利用油猴腳本實現(xiàn)去水印功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-03-03
  • 下載文件個別瀏覽器文件名亂碼解決辦法

    下載文件個別瀏覽器文件名亂碼解決辦法

    下載文件個別瀏覽器文件名亂碼解決辦法,需要的朋友可以參考一下
    2013-03-03
  • 淺談JavaScript 的執(zhí)行順序

    淺談JavaScript 的執(zhí)行順序

    JavaScript是一種描述型腳本語言,它不同于java或C#等編譯性語言,它不需要進行編譯成中間語言,而是由瀏覽器進行動態(tài)地解析與執(zhí)行。如果你不能理解javaScript語言的運行機制,或者簡單地說,你不能掌握javascript的執(zhí)行順序,那你就猶如伯樂駕馭不了千里馬
    2015-08-08
  • 原生js實現(xiàn)網(wǎng)易輪播圖效果

    原生js實現(xiàn)網(wǎng)易輪播圖效果

    這篇文章主要為大家詳細介紹了原生js實現(xiàn)網(wǎng)易輪播圖效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-10-10
  • 再談Javascript中的異步以及如何異步

    再談Javascript中的異步以及如何異步

    大家都知道js是單線程的,執(zhí)行起來是順序的,在順序的業(yè)務(wù)邏輯中當然沒有問題,如果遇到可以并發(fā)執(zhí)行的業(yè)務(wù)邏輯,再排隊就很低級了!所以這里我們再來簡單的談?wù)凧S中的異步以及如何異步。
    2016-08-08
  • JS數(shù)組降維的實現(xiàn)Array.prototype.concat.apply([], arr)

    JS數(shù)組降維的實現(xiàn)Array.prototype.concat.apply([], arr)

    這篇文章主要介紹了JS數(shù)組降維的實現(xiàn)Array.prototype.concat.apply([], arr),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04
  • JS獲取短信驗證碼倒計時的實現(xiàn)代碼

    JS獲取短信驗證碼倒計時的實現(xiàn)代碼

    這篇文章主要介紹了JS獲取短信驗證碼倒計時的實現(xiàn)代碼,需要的朋友可以參考下
    2017-05-05
  • 淺談PDF.js使用心得

    淺談PDF.js使用心得

    本篇文章主要介紹了淺談PDF.js使用心得,pdf.js 是一個技術(shù)原型主要用于在 HTML5 平臺上展示 PDF 文檔,無需任何本地技術(shù)支持。非常具有實用價值,需要的朋友可以參考下
    2018-06-06
  • javascript實現(xiàn)列表切換效果

    javascript實現(xiàn)列表切換效果

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)列表切換效果的相關(guān)資料,需要的朋友可以參考下
    2016-05-05

最新評論

贵溪市| 容城县| 达日县| 南木林县| 大丰市| 连江县| 古浪县| 石城县| 黄浦区| 朝阳市| 泗洪县| 凉山| 山东省| 华坪县| 涟水县| 阳信县| 进贤县| 秀山| 新兴县| 宁都县| 改则县| 政和县| 巴南区| 肃宁县| 铜陵市| 台中县| 潜山县| 安阳市| 阿克苏市| 佛山市| 兴仁县| 贡觉县| 鞍山市| 怀远县| 达日县| 莫力| 阿瓦提县| 子长县| 沈阳市| 翁牛特旗| 东乌珠穆沁旗|