国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于jQuery實(shí)現(xiàn)圖片推拉門動畫效果的兩種方法

2019-11-19 15:39:58
字體:
供稿:網(wǎng)友

''推拉門''動效也可以稱作"手風(fēng)琴"效果,大多數(shù)效果實(shí)現(xiàn)的思路基本是一樣的,下面介紹兩種方法,一種是通過改變圖片的偏移位置實(shí)現(xiàn)移動,另一種是通過遍歷背景圖片后改變圖片的寬度實(shí)現(xiàn)變換。

實(shí)現(xiàn)方法一:改變圖片寬度

html+css代碼

<body>  <div class="box">    <ul>      <!-- <li>![](images/slidepic2.jpg)</li> -->      <li></li>      <li></li>      <li></li>      <li></li>      <li></li>    </ul>  </div></body><style>    *{      padding: 0;      margin: 0;    }    .box{      /*收縮狀態(tài):縮放時每個圖片的大小240px 所以總大小1200px*/      /*展開狀態(tài):當(dāng)前圖片寬度800px 其他圖片寬度100px*/      width: 1200px;      height: 500px;      border:1px solid red;      margin: 50px auto;    }    .box ul{      list-style: none;      width: 1210px;    }    /*設(shè)置每一張圖片的大小和float: left*/    .box ul li{      width: 240px;      height: 500px;      /*background: url(images/slidepic2.jpg);*/      float: left;    }  </style>

jQuery實(shí)現(xiàn)

<script src = 'jquery-3.2.1.js'></script><script>  $(function(){    //1遍歷每一張li 獲取每個元素設(shè)置對應(yīng)的圖片    var lis = $('li');    lis.each(function(index, element){      //通過設(shè)置背景圖片名稱改變圖片的顯示      var imgName = "images/slidepic" + (index + 2) +".jpg ";      $(element).css('background', "url('"+ imgName +"')")    });    //2.展開狀態(tài)    //鼠標(biāo)滑入改變對應(yīng)圖片寬度800 其他圖片(兄弟)改為100    lis.mouseenter(function(){      // console.log(this); 當(dāng)前的li DOM元素      //當(dāng)前的圖片的寬度變?yōu)?00      $(this).stop().animate({width: 800});      //其他圖片的寬度變?yōu)?00      $(this).siblings('li').stop().animate({width: 100});    });    //3鼠標(biāo)滑出是全部顯示為收縮狀態(tài)    lis.mouseout(function(){      lis.stop().animate({width: 240});    });  })</script>

jQuery精簡后代碼

//精簡代碼$(function(){  $('li').each(function(index, element){    $(element).css('backgroud',"url('images/slidepic"+(index + 2)+.jpg')");  }).mouseenter(function(){    $(this).stop().animate({width: 800}).siblings().stop().aniamte(width: 100});  }).mouseout(function(){    $('li').stop().animate({width: 240});  });})

實(shí)現(xiàn)方法二:改變圖片的偏移值

html+css代碼

<body>  <div class="picList">    <ul>      <li>![](images/slidepic8.jpg)</li>      <li>![](images/slidepic3.jpg)</li>      <li>![](images/slidepic4.jpg)</li>      <li>![](images/slidepic5.jpg)</li>      <li>![](images/slidepic7.jpg)</li>    </ul>  </div></body><style>    *{      background-color: #aaa;      padding: 0;      margin: 0;    }    ul{list-style: none;}    .picList{      width: 1000px;      height: 400px;      /*border:1px solid #eee;*/      margin:100px auto;      position: relative;      overflow: hidden;    }    /*設(shè)置定位屬性 所有圖片覆蓋在起始位置*/    .picList ul li{      position: absolute;      width: 1000px;      height: 400px;      top: 0;    }    img{      width: 100%;      height: 400px;      cursor: pointer;    }</style>

jQuery實(shí)現(xiàn)

<script src = 'jquery-3.2.1.js'></script><script >  $(function(){    //1獲取所有的圖片 設(shè)置初始的收縮狀態(tài)left:i*200    var lis = $('li');    for(var i = 0; i < lis.length; i++){      lis.eq(i).css({left:i*200 + 'px' });    }    //2.設(shè)置hover內(nèi)置函數(shù),實(shí)現(xiàn)鼠標(biāo)滑入展開滑出收縮效果    lis.hover(function(){      var index = $(this).index(); //DOM對象轉(zhuǎn)換jQuery對象      //2.1鼠標(biāo)滑入后,當(dāng)前圖片的前面圖片偏移位置減小到 j*100位置      for(var j = 0; j <= index; j++){        lis.eq(j).stop().animate({left: j*100 + 'px'},300);      }      //2.2鼠標(biāo)滑入后,當(dāng)前圖片的后面圖片偏移位置擴(kuò)大到 500+j*100位置      for(var j = index + 1; j < lis.length; j++){        lis.eq(j).stop().animate({left: 500+j*100 + 'px'},300);      }    },function(){ //2.3鼠標(biāo)滑出后,所有圖片恢復(fù)到原來的位置 i*200      for(var i = 0; i < lis.length; i++){        lis.eq(i).stop().animate({left: i*200 + 'px'},300);      }    });  })</script>

注意:方法一在實(shí)現(xiàn)的過程中,注意寬度和圖片命名的設(shè)置。

提示:這里使用的是jQuery代碼實(shí)現(xiàn),javaScript代碼也是一樣的可以實(shí)現(xiàn),只是修改下遍歷過程和內(nèi)置函數(shù)方法,另外再重寫動畫函數(shù)(前面的筆記有封裝好的animate函數(shù),可以直接引入使用)。

總結(jié)

以上所述是小編給大家介紹的基于jQuery實(shí)現(xiàn)圖片推拉門動畫效果的兩種方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳信县| 五指山市| 应城市| 英吉沙县| 珠海市| 南澳县| 舟曲县| 九江县| 交城县| 土默特右旗| 高青县| 紫金县| 茶陵县| 股票| 安康市| 宣武区| 越西县| 绥棱县| 渝中区| 辉南县| 崇左市| 丰原市| 阜宁县| 阳信县| 义乌市| 南江县| 刚察县| 城固县| 清新县| 德格县| 仁化县| 吴桥县| 游戏| 江安县| 茌平县| 察哈| 南靖县| 平昌县| 息烽县| 开远市| 玉山县|