jQuery图片切换动画效果
发布时间 - 2026-01-10 23:18:57 点击率:次最近在写前端页面,作为只写过两个月前端的人来说,感觉用jq什么的写出来自己想要的效果真的是太棒了,刚好今天花了一下午完成了一个图片切换的特效:

效果图:
jq 代码,都是自己写出来的,弄了一下午完成的,初学者,整理以后留着用。
直接上代码:
//////
// 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 界面代码:
<div class="xq-imgSW">
<div class="imgSW-top">
<ul>
<li><img src="images/xq-img1.png" alt=""></li>
</ul>
</div>
<div class="clear"></div>
<div class="imgSW-bt">
<input class="imgSW-zuo imgNum" type="button" data-status="left">
<div id="imageShowSmallAnchor"></div>
<ul>
<li class="imgSW-xz"><img class="imgex" src="images/xq-img-s1.png" style="width:90px;height:60px;" alt="">
<div class="imgSW-bot">户型1</div>
</li>
<li><img src="images/xq-img-s2.png" style="width:90px;height:60px;" alt="">
<div class="imgSW-bot">户型2</div>
</li>
<li><img src="images/xq-img-s3.png" style="width:90px;height:60px;" alt="">
<div class="imgSW-bot">户型3</div>
</li>
<li><img src="images/xq-img-s4.png" style="width:90px;height:60px;" alt="">
<div class="imgSW-bot">户型4</div>
</li>
<li><img src="images/xq-img-s4.png" style="width:90px;height:60px;" alt="">
<div class="imgSW-bot">户型5</div>
</li>
<li><img src="images/xq-img-s4.png" style="width:90px;height:60px;" alt="">
<div class="imgSW-bot">户型6</div>
</li>
<li><img src="images/xq-img-s4.png" style="width:90px;height:60px;" alt="">
<div class="imgSW-bot">户型7</div>
</li>
<li><img src="images/xq-img-s4.png" style="width:90px;height:60px;" alt="">
<div class="imgSW-bot">户型8</div>
</li>
</ul>
<input class="imgSW-you imgNum" data-status="right" type="button">
</div>
</div>
<div id="imageShowSmallAnchor"></div> 是定位上去的
另外:
快速点击是会出现动画延迟现象,影响体验,处理动画延迟jQuery stop()语法:
$("#div").stop();//停止当前动画,继续下一个动画
$("#div").stop(true);//清除元素的所有动画
$("#div").stop(false, true);//让当前动画直接到达末状态 ,继续下一个动画
$("#div").stop(true, true);//清除元素的所有动画,让当前动画直接到达末状态
在jq中有用到并有注释。
// 让当前动画直接到达末状态 ,继续下一个动画 $('#div').stop(false, ture); $('#div').stop().animate(); 集合使用效果更佳。
作为前端新手,记录下,以后可能会用到。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# jQuery图片切换动画
# jQuery图片切换
# jQuery图片切换效果
# jQuery动画延迟
# 基于Jquery的简单图片切换效果
# jQuery 一个图片切换的插件
# 一个基于jquery的图片切换效果
# jQuery简单实现banner图片切换
# JQuery页面图片切换和新闻列表滚动效果的具体实现
# 基于jquery实现左右按钮点击的图片切换效果
# jquery仿QQ商城带左右按钮控制焦点图片切换滚动效果
# jQuery插件Slider Revolution实现响应动画滑动图片切换效果
# jQuery图片切换插件jquery.cycle.js使用示例
# jQuery插件slick实现响应式移动端幻灯片图片切换特效
# 小图
# 一张图
# 切换到
# 如果不是
# 应在
# 第一张
# 更佳
# 的人
# 的是
# 都是
# 下午
# 最多
# 中有
# 花了
# 并有
# 再将
# 个月
# 到第
# 第一种
# 写过
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
如何快速搭建个人网站并优化SEO?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】
如何利用DOS批处理实现定时关机操作详解
高防服务器租用指南:配置选择与快速部署攻略
laravel怎么通过契约(Contracts)编程_laravel契约(Contracts)编程方法
nginx修改上传文件大小限制的方法
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Laravel如何集成Inertia.js与Vue/React?(安装配置)
Laravel用户密码怎么加密_Laravel Hash门面使用教程
php结合redis实现高并发下的抢购、秒杀功能的实例
千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Gemini手机端怎么发图片_Gemini手机端发图方法【步骤】
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
jQuery validate插件功能与用法详解
如何在IIS中配置站点IP、端口及主机头?
如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环
如何在建站主机中优化服务器配置?
大同网页,大同瑞慈医院官网?
Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验
如何快速查询网址的建站时间与历史轨迹?
JavaScript如何实现路由_前端路由原理是什么
Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
Laravel如何生成API文档?(Swagger/OpenAPI教程)
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
Python3.6正式版新特性预览
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
如何快速搭建高效WAP手机网站吸引移动用户?
如何快速搭建安全的FTP站点?
网站制作壁纸教程视频,电脑壁纸网站?
Laravel用户认证怎么做_Laravel Breeze脚手架快速实现登录注册功能
公司门户网站制作流程,华为官网怎么做?
高端云建站费用究竟需要多少预算?
javascript中闭包概念与用法深入理解
Laravel如何使用Scope本地作用域_Laravel模型常用查询逻辑封装技巧【手册】
制作旅游网站html,怎样注册旅游网站?
Google浏览器为什么这么卡 Google浏览器提速优化设置步骤【方法】
Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】
javascript读取文本节点方法小结
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
Laravel如何自定义错误页面(404, 500)?(代码示例)
Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制
矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?
iOS验证手机号的正则表达式
手机网站制作平台,手机靓号代理商怎么制作属于自己的手机靓号网站?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
小米17系列还有一款新机?主打6.9英寸大直屏和旗舰级影像
详解jQuery中的事件

