千家信息网

jQuery怎么实现图片切换动画效果

发表于:2024-10-23 作者:千家信息网编辑
千家信息网最后更新 2024年10月23日,今天小编给大家分享一下jQuery怎么实现图片切换动画效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我
千家信息网最后更新 2024年10月23日jQuery怎么实现图片切换动画效果

今天小编给大家分享一下jQuery怎么实现图片切换动画效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

效果图:

直接上代码:

////// // 2017-2-27 // ////// $(function(){  var num = 0;  var divStr = '#imageShowSmallAnchor'; // 移动 div  var s  = 300;  $('.imgNum').click(function(){   var _this  = $(this);   var status = _this.attr('data-status');   var total_num = _this.parent().find('ul li').length;   var numSPic = 4;//最多显示的小图的个数   var src;         if(status == 'left'){    if(num <= 0){     num = total_num-1;    }else{     num--;    }   }else{    if(num >= total_num-1){     num = 0;    }else{     num++;    }   }   // 4 一次做多显示四张小图 $("#div").stop(false, true);//让当前动画直接到达末状态 ,继续下一个动画   // 第一种情况 当小图数量小于5时, 直接进行右移。   if (total_num <= numSPic) {$(divStr).stop(true,false).animate(    {left:num*106+39+"px"},s);   } else{    ////////    // 图片左移 //    ////////    if (status == 'left') {     if (num < total_num - numSPic) {      _this.parent().find('ul li').eq(num).show();     } else{      // 特殊情況 左移时,从第一张图切换到最后一张图时      // if判断 当前是否显示最后张图,如果不是最后一张图 则当变成右移时,无需刷新小图的显示状态。      // 左移时,需要将李 全部隐藏后, 再将最后的 numSPice 张图显示出来,      if (num == total_num - 1) {       _this.parent().find('ul li').hide();       for (var x = total_num-1; x >= total_num - numSPic; x--) {        _this.parent().find('ul li').eq(x).show();       }      }     }    } else{     ////////     // 图片右移 //     ////////     if (num >= numSPic) {      _this.parent().find('ul li').eq(num-numSPic).hide();     } else{      // 特殊情況 右移时,从最后一张图切换到第一张图时      // 判断 是否是第一张图, 如果不是则再变成左移时,无需刷新小图的显示状态      if (num == 0) {       for (var x = 0; x < numSPic; x ++) {        _this.parent().find('ul li').eq(x).show();       }      }     }    }    // 快速点击切换时吗,动画出现滞后和反复问题,    // 让当前动画直接到达末状态 ,继续下一个动画 $('#div').stop(false, ture); $('#div').stop().animate(); 集合使用效果更佳。    $(divStr).stop(false, true);    ////////    // 样式左移 //    ////////    if (status == 'left') {     // 39 定位divStr 的left距离 父级元素的像素距离     // 等样式移动到最右边时,样式位置固定     // $(divStr).position().left 获取定位元素 left值。     if ($(divStr).position().left <= 39 ) {      $(divStr).stop().animate({left:"39px"});      // 当从第一张切换到最后一张时,样式应在最右边。      if (num==total_num-1) {       $(divStr).stop().animate({left:3 * 106 + 39 + "px"},s);      }     } else{      $(divStr).stop().animate({left:"-=106px"},s);     }    } else{     ////////     // 样式右移 //     ////////     if ($(divStr).position().left >= 357) {      $(divStr).stop().animate({left:"357px"});      // 当从最后一张切换到第一张时,样式应在最左边。      if (num==0) {       $(divStr).stop().animate({left:"39px"},s);      }     } else{      $(divStr).stop().animate({left:"+=106px"},s);     }    }   }   src = _this.parent().find('ul li').eq(num).find('img').attr('src');   _this.parents('.xq-imgSW').find('.imgSW-top li img').attr('src',src);  });    // 点击小图切换 大图 和小图上的样式。  $('.imgSW-bt li').click(function(){   var _this = $(this);   var src;   num = _this.index();   // parseInt(10/3); 整除   // 获取点击的位置,来计算 样式的位置。   var X = parseInt(_this.position().left/106);    $(divStr).stop().animate({left:X*106+39+"px"},s);   src = _this.find('img').attr('src');   _this.parents('.xq-imgSW').find('.imgSW-top li img').attr('src',src);  }); });

HTML 界面代码:

  • 户型1
  • 户型2
  • 户型3
  • 户型4
  • 户型5
  • 户型6
  • 户型7
  • 户型8

是定位上去的

另外:
快速点击是会出现动画延迟现象,影响体验,处理动画延迟jQuery stop()语法:

$("#div").stop();//停止当前动画,继续下一个动画 $("#div").stop(true);//清除元素的所有动画  $("#div").stop(false, true);//让当前动画直接到达末状态 ,继续下一个动画$("#div").stop(true, true);//清除元素的所有动画,让当前动画直接到达末状态

在jq中有用到并有注释。
// 让当前动画直接到达末状态 ,继续下一个动画 $('#div').stop(false, ture); $('#div').stop().animate(); 集合使用效果更佳。

以上就是"jQuery怎么实现图片切换动画效果"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

0