登录  /  注册
首页 > web前端 > js教程 > 正文

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

小云云
发布: 2017-12-31 09:33:05
原创
1649人浏览过

''推拉门''动效也可以称作"手风琴"效果,大多数效果实现的思路基本是一样的,下面介绍两种方法,一种是通过改变图片的偏移位置实现移动,另一种是通过遍历背景图片后改变图片的宽度实现变换。本文两种方法实现''推拉门''动画效果也可以称作是手风琴效果,具体实现方法大家通过本文一起学习吧,希望能版助到大家。

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

html+css代码

  <p>
    </p>
登录后复制
登录后复制
                 
  •       
  •       
  •       
  •       
  •     
  

jQuery实现

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

  <p>
    </p>
登录后复制
登录后复制
          
  • ![](images/slidepic8.jpg)
  •       
  • ![](images/slidepic3.jpg)
  •       
  • ![](images/slidepic4.jpg)
  •       
  • ![](images/slidepic5.jpg)
  •       
  • ![](images/slidepic7.jpg)
  •     
  

jQuery实现

<script></script><script>
  $(function(){
    //1获取所有的图片 设置初始的收缩状态left:i*200
    var lis = $(&#39;li&#39;);
    for(var i = 0; i < lis.length; i++){
      lis.eq(i).css({left:i*200 + &#39;px&#39; });
    }
    //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 + &#39;px&#39;},300);
      }
      //2.2鼠标滑入后,当前图片的后面图片偏移位置扩大到 500+j*100位置
      for(var j = index + 1; j < lis.length; j++){
        lis.eq(j).stop().animate({left: 500+j*100 + &#39;px&#39;},300);
      }
    },function(){ //2.3鼠标滑出后,所有图片恢复到原来的位置 i*200
      for(var i = 0; i < lis.length; i++){
        lis.eq(i).stop().animate({left: i*200 + &#39;px&#39;},300);
      }
    });
  })
</script>
登录后复制

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

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

相关推荐:

实例详解基于jQuery实现图片推拉门动画效果

实例详解jQuery和HTML5实现WebGL高性能烟花绽放动画效果

Dreamweaver怎么制作一个开场动画效果的网页

以上就是jQuery实现图片推拉门动画效果的两种方法分享的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号