首頁 >web前端 >js教程 >基於JavaScript實現滑動門效果的程式碼實例介紹(圖文)

基於JavaScript實現滑動門效果的程式碼實例介紹(圖文)

黄舟
黄舟原創
2017-03-17 14:58:101961瀏覽

本文實例為大家分享了滑動門效果的具體程式碼,供大家參考,具體內容如下

#滑動門效果:

基於JavaScript實現滑動門效果的程式碼實例介紹(圖文)

原理:

共四道門,初始情況下,第一道門打開,其他三道門關閉,如第一個圖所示。
假設圖片的寬度是120px,其他三道門露出的寬度是80px。
初始狀態下,
第二道門左邊的距離是120px,
第三道門左邊的距離是200px,
第四道門左邊的距離是280px。
當第二道門打開時,
第二道門左邊的距離是80px,為(120-40)px
#第三道和第四道門左邊的距離不變。
當第三道門打開時,
第二道門左邊的距離是80px,
第三道門左邊的距離是160px。 (200-40)px
第四道門不變

基於JavaScript實現滑動門效果的程式碼實例介紹(圖文)

因此每道門打開,是圖片的寬度減去露出的寬度,就是需要向左移動的距離。第三道門打開,第二道門需要先做移動,然後第三道門移動。每道門移動的距離都是圖片的寬度減去露出來的寬度。

程式:

<script type="text/javascript">
 window.onload = function() {
  var container = document.getElementById("container");
  var imgs = container.getElementsByTagName("img");//获取图像
  var imgWidth = imgs[0].offsetWidth;//图片的宽度
  var exposeWidth = 200;//露出的宽度
  var containerWidth = imgWidth + exposeWidth * (imgs.length - 1); //外部盒子的总宽度
  container.style.width = containerWidth + "px";

  function Initial() {
   for(var i = 1; i < imgs.length; i++) {
    imgs[i].style.left = imgWidth + exposeWidth * (i - 1) + "px";
   }
  }
  Initial();  
  var translateWidth = imgWidth - exposeWidth;//移动的距离
  for(var i = 0; i < imgs.length; i++) {
   (function(i) {
    imgs[i].onmouseover = function() {
     Initial(); //鼠标经过图片时,首先设置到初始状态
     for (var j=1;j<=i;j++) { //之前的图片都移动相同的距离
      imgs[j].style.left=parseInt(imgs[j].style.left)-translateWidth+"px";
     }
    }
   })(i);
  }

 }
</script>

以上是基於JavaScript實現滑動門效果的程式碼實例介紹(圖文)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn