全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

基于jQuery实现图片推拉门动画效果的两种方法

''推拉门''动效也可以称作"手风琴"效果,大多数效果实现的思路基本是一样的,下面介绍两种方法,一种是通过改变图片的偏移位置实现移动,另一种是通过遍历背景图片后改变图片的宽度实现变换。

实现方法一:改变图片宽度

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{
      /*收缩状态:缩放时每个图片的大小240px 所以总大小1200px*/
      /*展开状态:当前图片宽度800px 其他图片宽度100px*/
      width: 1200px;
      height: 500px;
      border:1px solid red;
      margin: 50px auto;
    }
    .box ul{
      list-style: none;
      width: 1210px;
    }
    /*设置每一张图片的大小和float: left*/
    .box ul li{
      width: 240px;
      height: 500px;
      /*background: url(images/slidepic2.jpg);*/
      float: left;
    }
  </style>

jQuery实现

<script src = 'jquery-3.2.1.js'></script>
<script>
  $(function(){
    //1遍历每一张li 获取每个元素设置对应的图片
    var lis = $('li');
    lis.each(function(index, element){
      //通过设置背景图片名称改变图片的显示
      var imgName = "images/slidepic" + (index + 2) +".jpg ";
      $(element).css('background', "url('"+ imgName +"')")
    });
    //2.展开状态
    //鼠标滑入改变对应图片宽度800 其他图片(兄弟)改为100
    lis.mouseenter(function(){
      // console.log(this); 当前的li DOM元素
      //当前的图片的宽度变为800
      $(this).stop().animate({width: 800});
      //其他图片的宽度变为100
      $(this).siblings('li').stop().animate({width: 100});
    });
    //3鼠标滑出是全部显示为收缩状态
    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});
  });
})

实现方法二:改变图片的偏移值

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;
    }
    /*设置定位属性 所有图片覆盖在起始位置*/
    .picList ul li{
      position: absolute;
      width: 1000px;
      height: 400px;
      top: 0;
    }
    img{
      width: 100%;
      height: 400px;
      cursor: pointer;
    }
</style>

jQuery实现

<script src = 'jquery-3.2.1.js'></script>
<script >
  $(function(){
    //1获取所有的图片 设置初始的收缩状态left:i*200
    var lis = $('li');
    for(var i = 0; i < lis.length; i++){
      lis.eq(i).css({left:i*200 + 'px' });
    }
    //2.设置hover内置函数,实现鼠标滑入展开滑出收缩效果
    lis.hover(function(){
      var index = $(this).index(); //DOM对象转换jQuery对象
      //2.1鼠标滑入后,当前图片的前面图片偏移位置减小到 j*100位置
      for(var j = 0; j <= index; j++){
        lis.eq(j).stop().animate({left: j*100 + 'px'},300);
      }
      //2.2鼠标滑入后,当前图片的后面图片偏移位置扩大到 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鼠标滑出后,所有图片恢复到原来的位置 i*200
      for(var i = 0; i < lis.length; i++){
        lis.eq(i).stop().animate({left: i*200 + 'px'},300);
      }
    });
  })
</script>

注意:方法一在实现的过程中,注意宽度和图片命名的设置。

提示:这里使用的是jQuery代码实现,javaScript代码也是一样的可以实现,只是修改下遍历过程和内置函数方法,另外再重写动画函数(前面的笔记有封装好的animate函数,可以直接引入使用)。

总结

以上所述是小编给大家介绍的基于jQuery实现图片推拉门动画效果的两种方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# jquery  # 推拉门效果  # 手风琴效果  # js实现图片推拉门效果代码实例  # jQuery实现推拉门效果  # 鼠标  # 遍历  # 滑入  # 推拉门  # 两种  # 滑出  # 小编  # 的是  # 在此  # 是一样的  # 给大家  # 可以直接  # 重写  # 可以实现  # 所述  # 给我留言  # 感谢大家  # 装好  # 过程中  # 疑问请 


相关文章: 网站专业制作公司有哪些,做一个公司网站要多少钱?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  建站之星图片链接生成指南:自助建站与智能设计教程  成都网站制作报价公司,成都工业用气开户费用?  Python多线程使用规范_线程安全解析【教程】  建站主机服务器选购指南:轻量应用与VPS配置解析  如何通过建站之星自助学习解决操作问题?  已有域名和空间,如何快速搭建网站?  C++如何编写函数模板?(泛型编程入门)  百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?  微信小程序 input输入框控件详解及实例(多种示例)  css网站制作参考文献有哪些,易聊怎么注册?  建站之星如何快速解决建站难题?  如何快速搭建支持数据库操作的智能建站平台?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  网站制作软件免费下载安装,有哪些免费下载的软件网站?  怀化网站制作公司,怀化新生儿上户网上办理流程?  如何用PHP工具快速搭建高效网站?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  如何零基础开发自助建站系统?完整教程解析  无锡营销型网站制作公司,无锡网选车牌流程?  台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  如何在局域网内绑定自建网站域名?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  网站制作价目表怎么做,珍爱网婚介费用多少?  建站之星价格显示格式升级,你的预算足够吗?  孙琪峥织梦建站教程如何优化数据库安全?  表情包在线制作网站免费,表情包怎么弄?  昆明高端网站制作公司,昆明公租房申请网上登录入口?  如何通过PHP快速构建高效问答网站功能?  制作企业网站建设方案,怎样建设一个公司网站?  内网网站制作软件,内网的网站如何发布到外网?  建站之星安装提示数据库无法连接如何解决?  如何正确下载安装西数主机建站助手?  常州自助建站工具推荐:低成本搭建与模板选择技巧  制作充值网站的软件,做人力招聘为什么要自己交端口钱?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  建站之星上传入口如何快速找到?  整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?  建站之星展会模版如何一键下载生成?  如何在Windows 2008云服务器安全搭建网站?  Android滚轮选择时间控件使用详解  招贴海报怎么做,什么是海报招贴?  建站主机功能解析:服务器选择与快速搭建指南  制作门户网站的参考文献在哪,小说网站怎么建立?  网站制作模板下载什么软件,ppt模板免费下载网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。