首頁 > web前端 > js教程 > 主體

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

黄舟
發布: 2017-03-17 14:58:10
原創
1937 人瀏覽過

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

#滑動門效果:

基於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中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!