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

基于javascript實現(xiàn)圖片滑動效果

 更新時間:2016年05月07日 19:47:26   作者:笨笨豬1995  
這篇文章主要為大家詳細介紹了基于javascript實現(xiàn)圖片滑動效果的相關(guān)資料,具有一定的參考價值,感興趣的朋友可以參考一下

今天看了別人寫的圖片滑動,看起來很酷,讀源碼時,似乎有些困難,就模仿著寫了一個,實現(xiàn)的效果與原網(wǎng)頁相同,不過自己的js代碼,邏輯簡單,有待改進。
ps:前兩天寫了旋轉(zhuǎn)木馬,那個兼容性不好,今天寫這個網(wǎng)頁的時候,也是按照這個思路,在谷歌瀏覽器上運行很好,火狐很多功能不能實現(xiàn),由于wrap——panel使用了絕對定位,就將translate平移改為了left。改動后,各個瀏覽器運行的效果不錯。

具體代碼如下

html代碼(沒寫注釋)

<div class="container"> 
    <h1>Parallax Slider</h1> 
    <div class="wrap"> 
      <div class="bg-img"> 
        <div id="bg_1" class="bg bg-1" style="left: 0px;"></div> 
        <div id="bg_2" class="bg bg-2" style="left: 0px;"></div> 
        <div id="bg_3" class="bg bg-3" style="left: 0px;"></div> 
      </div> 
      <div id="wrap_panel" class="wrap-panel" style="left: 0px;"> 
        <div class="panel panel-1"> 
          <img id="img_1" src="images/1.jpg"> 
        </div> 
        <div class="panel panel-2"> 
          <img src="images/2.jpg"> 
        </div> 
        <div class="panel panel-3"> 
          <img src="images/3.jpg"> 
        </div> 
        <div class="panel panel-4"> 
          <img src="images/4.jpg"> 
        </div> 
        <div class="panel panel-5"> 
          <img src="images/5.jpg"> 
        </div> 
        <div class="panel panel-6"> 
          <img src="images/6.jpg"> 
        </div> 
      </div> 
      <div class="navigation-button"> 
        <span id="perv_btn" class="perv-button"></span> 
        <span id="next_btn" class="next-button"></span> 
      </div> 
      <div id="show_small" class="show-small"> 
        <ul> 
          <li><img src="images/thumbs/1.jpg"></li> 
          <li><img src="images/thumbs/2.jpg"></li> 
          <li><img src="images/thumbs/3.jpg"></li> 
          <li><img src="images/thumbs/4.jpg"></li> 
          <li><img src="images/thumbs/5.jpg"></li> 
          <li><img src="images/thumbs/6.jpg"></li> 
        </ul> 
      </div> 
    </div> 
  </div> 

css代碼(自己對應(yīng)著看):

* { margin: 0; padding: 0; } 
  html, body, .container { width: 100%; height: 100%; font-family: 'Microsoft Yahei'; } 
  .container { background-color: #222; overflow-x: hidden; } 
  .container h1 { font-size: 50px; color: #ccc; text-align: center; font-weight: bolder; height: 120px; line-height: 120px; } 
  .wrap { position: relative; width: 600%; height: 400px; border-top: 10px solid #333; border-bottom: 10px solid #333; margin-top: 20px; } 
  .bg { position: absolute; width: 100%; height: 100%; left: 0; top: 0; -webkit-transition: all 1s;-moz-transition: all 1s;-ms-transition: all 1s;-o-transition: all 1s;transition: all 1s; } 
  .bg-1 { background: url(images/bg1.png); } 
  .bg-2 { background: url(images/bg2.png); } 
  .bg-3 { background: url(images/bg3.png); } 
  .wrap-panel { position: absolute; width: 100%; height: 100%; -webkit-transition: all 1s; -moz-transition: all 1s; -ms-transition: all 1s; -o-transition: all 1s; transition: all 1s; } 
  .panel { width: 16.66%; height: 100%; float: left; } 
  .panel img { display: block; margin: 0 auto; margin-top: 35px; border-radius: 10px; border: 10px solid rgba(143, 143, 143, 0.6); } 
  .navigation-button span:hover { opacity: 0.8 } 
  .perv-button, .next-button { position: absolute; width: 30px; height: 60px; background-color: #344133; border-radius: 10px; cursor: pointer; opacity: 0.4; } 
  .perv-button { background: #000 url(images/prev.png) center center no-repeat; } 
  .next-button { background: #000 url(images/next.png) center center no-repeat; } 
  .show-small { position: absolute; width: 680px; bottom: 20px; } 
  .show-small ul { list-style: none; } 
  .show-small ul li { float: left; margin: 0 10px; border: 5px solid #fff; opacity: 0.7; cursor: pointer;-webkit-transition: all .3s; -moz-transition: all .3s; -ms-transition: all .3s;-o-transition: all .3s; transition: all .3s; } 
  .show-small ul li:hover { margin-top: -15px; } 

js代碼(小demo):

window.onload = function() { 
      // 得到元素 
      var getDOM = function (id){ 
        return typeof id==="string"?document.getElementById(id):id; 
      } 
 
      // 得到對象 
      var img = getDOM('img_1'); 
      var prev = getDOM("perv_btn"); 
      var next = getDOM("next_btn"); 
      var wrap_panel = getDOM('wrap_panel'); 
      var bg_1 = getDOM("bg_1"); 
      var bg_2 = getDOM("bg_2"); 
      var bg_3 = getDOM("bg_3"); 
      var show_small = getDOM("show_small"); 
      var list = show_small.getElementsByTagName("li"); 
      var wwidth; 
 
       // 為元素綁定事件 
      var addEvent = function(id,event,fn) { 
       var el = getDOM(id) || document; 
       if(el.addEventListener){ 
        el.addEventListener(event,fn,false); 
       }else if(el.attachEvent){ 
        el.attachEvent('on' + event,fn); 
       } 
      } 
      function init() { 
         
        // 對按鈕進行定位 
        // 向前按鈕的左邊距離=圖片的左距離+邊框 
        prev.style.left = img.offsetLeft + 10 + 'px'; 
        // 向前按鈕的上邊距離=圖片的上距離+圖片高度的一半-按鈕高度的一半 
        prev.style.top = img.offsetTop + img.clientHeight/2 - prev.clientHeight/2 + 'px'; 
        next.style.left = img.offsetLeft + img.clientWidth + 10 - next.clientWidth + 'px'; 
        next.style.top =prev.style.top; 
 
        // 對小圖片的容器進行定位 
        wwidth = document.documentElement.clientWidth || document.body.clientWidth; 
        show_small.style.left = (wwidth - show_small.clientWidth)/2 + 'px'; 
      } 
 
      // 小圖片的處理 
      function small_img() { 
        // 對圖片進行旋轉(zhuǎn)處理 
        for (var i = 0;i< list.length; i++) { 
          // 旋轉(zhuǎn)方向 
          var direction = Math.pow(-1,parseInt(Math.random()*10)); 
          list[i].style = "transform:rotate(" + (Math.random()*20*direction) + "deg)"; 
        } 
        list[0].style.opacity = 1; 
      } 
 
      function only_one(el,num) { 
        for (var i = 0; i < el.length; i++) { 
          el[i].style.opacity = 0.7; 
        } 
        // console.log(num); 
        el[num].style.opacity = 1; 
      } 
 
      // 瀏覽器縮放時 
      window.onresize = function() { 
        init(); 
      } 
     
      // 執(zhí)行函數(shù) 
      init(); 
      small_img(); 
      addEvent(prev,'click',function() { 
        // 改變wrap-panel的left 
        var oldPos = parseInt(wrap_panel.style.left); 
         
        if(oldPos == 0) {   
 
          // 背景平移 圖片容器平移 
          bg_1.style.left=bg_2.style.left=bg_3.style.left=wrap_panel.style.left = -wwidth*(list.length-1) +'px'; 
 
          // 更改對應(yīng)小圖片透明度 
          only_one(list,list.length-1); 
        } else { 
 
          // 背景平移 圖片容器平移 
          wrap_panel.style.left = (oldPos + wwidth) +'px'; 
          bg_1.style.left= (oldPos + wwidth - parseInt(-(oldPos/wwidth + 1))*100) +'px'; 
          bg_2.style.left= (oldPos + wwidth - parseInt(-(oldPos/wwidth + 1))*300) +'px'; 
          bg_3.style.left= (oldPos + wwidth - parseInt(-(oldPos/wwidth + 1))*500) +'px'; 
 
          // 更改對應(yīng)小圖片透明度 
          only_one(list,parseInt(-(oldPos/wwidth + 1))); 
        } 
      }); 
      addEvent(next,'click',function() { 
        // 改變wrap-panel的left 
        var oldPos = parseInt(wrap_panel.style.left);         
 
        if(oldPos == -wwidth*(list.length-1)) {    
 
          // 背景平移 圖片容器平移 
          bg_1.style.left=bg_2.style.left=bg_3.style.left=wrap_panel.style.left = '0px'; 
 
          // 更改對應(yīng)小圖片透明度 
          only_one(list,0); 
        } else { 
          // 背景平移 圖片容器平移 
          wrap_panel.style.left = (oldPos - wwidth) +'px'; 
          bg_1.style.left= (oldPos - wwidth + parseInt(-(oldPos/wwidth + 1))*100) +'px'; 
          bg_2.style.left= (oldPos - wwidth + parseInt(-(oldPos/wwidth + 1))*300) +'px'; 
          bg_3.style.left= (oldPos - wwidth + parseInt(-(oldPos/wwidth + 1))*500) +'px'; 
 
          // 更改對應(yīng)小圖片透明度 
          only_one(list,parseInt(-(oldPos/wwidth - 1))); 
        } 
      }); 
    }

以上就是本文的全部內(nèi)容,希望對大家學(xué)習(xí)javascript程序設(shè)計有所幫助。

相關(guān)文章

  • javascript實現(xiàn)自定義滾動條效果

    javascript實現(xiàn)自定義滾動條效果

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)自定義滾動條效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • JavaScript中事件冒泡機制示例詳析

    JavaScript中事件冒泡機制示例詳析

    這篇文章主要給大家介紹了關(guān)于JavaScript中事件冒泡機制的相關(guān)資料,文中詳析介紹了什么是冒泡、冒泡捕獲需要以及冒泡和捕獲的具體區(qū)別,需要的的朋友可以參考下
    2021-06-06
  • JavaScript中的依賴注入詳解

    JavaScript中的依賴注入詳解

    這篇文章主要介紹了JavaScript中的依賴注入詳解,本文講解了requirejs/AMD方法、反射(reflection)方法等內(nèi)容,需要的朋友可以參考下
    2015-03-03
  • js 獲取服務(wù)器控件值的代碼

    js 獲取服務(wù)器控件值的代碼

    js 獲取服務(wù)器控件值的代碼
    2010-03-03
  • uniapp發(fā)送formdata表單請求2種方法(全網(wǎng)最簡單方法)

    uniapp發(fā)送formdata表單請求2種方法(全網(wǎng)最簡單方法)

    這篇文章主要給大家介紹了關(guān)于uniapp發(fā)送formdata表單請求2種方法的相關(guān)資料,本文介紹的方法應(yīng)該是全網(wǎng)最簡單方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • js獲取客戶端操作系統(tǒng)類型的方法【測試可用】

    js獲取客戶端操作系統(tǒng)類型的方法【測試可用】

    這篇文章主要介紹了js獲取客戶端操作系統(tǒng)類型的方法,可有效的判斷常見操作系統(tǒng)的類型,包括Windows、MacOS、Unix及Linux等,涉及javascript頁面navigator.userAgent屬性操作技巧,需要的朋友可以參考下
    2016-05-05
  • Javascript string 擴展庫代碼

    Javascript string 擴展庫代碼

    Javascript原生的String處理函數(shù)顯得很不夠豐富
    2010-04-04
  • 微信小程序如何實現(xiàn)點擊圖片放大功能

    微信小程序如何實現(xiàn)點擊圖片放大功能

    這篇文章主要介紹了微信小程序如何實現(xiàn)點擊圖片放大功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • tweenjs緩動算法的使用實例分析

    tweenjs緩動算法的使用實例分析

    這篇文章主要介紹了tweenjs緩動算法的使用,結(jié)合實例形式分析了Tween.js插件的原理與使用技巧,需要的朋友可以參考下
    2019-08-08
  • JavaScript樹結(jié)構(gòu)深度優(yōu)先算法

    JavaScript樹結(jié)構(gòu)深度優(yōu)先算法

    這篇文章主要介紹了JavaScript樹結(jié)構(gòu)深度優(yōu)先算法,樹結(jié)構(gòu)可以說是前端中最常見的數(shù)據(jù)結(jié)構(gòu)之一,比如說DOM樹、級聯(lián)選擇、樹形組件,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下
    2022-07-07

最新評論

宁夏| 抚远县| 喜德县| 阳山县| 宁化县| 台湾省| 城步| 兴文县| 柳州市| 龙州县| 荥经县| 荥经县| 贵州省| 陆丰市| 乐山市| 三门峡市| 滦南县| 股票| 兴文县| 静乐县| 安新县| 剑河县| 宁德市| 岫岩| 石棉县| 贺兰县| 喜德县| 齐齐哈尔市| 罗城| 崇明县| 库车县| 新乐市| 蒙自县| 称多县| 涞水县| 延寿县| 成武县| 日土县| 澄城县| 巫山县| 常熟市|