jQuery图片切换动画特效


Posted in Javascript onNovember 02, 2016

由于博主我懒,所以页面画的比较粗糙,但是没关系,因为我主要讲的是如何实现图片动画切换。

思路:想必大家都逛过淘宝或者其他的一些网站,一般都会有图片动画切换的效果,那是怎样实现的呢?博主我呢,技术不是很好,弄了一个简单的例子!

首先一般图片上会有两个图片按钮,一个左切换的按钮一个右切换的按钮,当我们单击左切换按钮时,原来的图片就会向右移动XX像素,然后它左边的图片就会显示到框里,而原来的图片被隐藏了,单击右切换按钮的原理跟左按钮相似。但如果一直点同一个按钮的话,本来这个图片切换框只有3张图片的话,到最后一张的时候我们要做一个判断,让它移动回第一张或者最后一张。思路分析完了,下面看下我们的代码:

1、html代码

<div id="divBox">
  <div id="imgBox">
    <div class="img"><img src="0.jpg"/></div>
    <div class="img"><img src="1.jpg"/></div>
    <div class="img"><img src="3.jpg"/></div>
  </div>
</div>
<div id="bth">
  <button id="zou">左</button>
  <button id="you">右</button>
</div>

divBox是一个显示图片的框

imgBox是包住所有图片的DIV,我们实现效果也是移动这个DIV就可以了

bth放了两个button按钮用来切换图片

效果图:

 jQuery图片切换动画特效

2、CSS代码

#divBox{
  height:315px;
  width:750px;
  position:absolute;
  border:#000000 1px solid;
  overflow:hidden;}

  #imgBox{
  position:absolute;
  width:2550px;}
  
  .img{
  float:left;}
  
  #bth{
  margin-left:800px;}

#divBox设置图片显示框的宽高,绝对位置,边框,还一个重要的属性是overflow,溢出隐藏,当这个DIV里的内容超出这个DIV的大小时,溢出的部分会被隐藏掉。

#imgBox设置绝对位置和宽度,这个宽度取决于你所有图片宽度的总和,我这里是2550px,有三张图片,每张图片宽为750px;如果这里不给宽度的话里面的小DIV无法左浮动。

.img设置左浮动,让所有图片向左浮动,保持在一条水平线上。

#bth 设置外边距,因为上面的div设置了绝对位置所以这个div会被盖住看不见了,所以把这个div挪出来。

 效果图:

jQuery图片切换动画特效

3、脚本代码

$(function(){
    //定义一个变量保存距离左边的位置
    var leftNum=0;
    $("#zou").click(function(){
      if(leftNum==0){
        //移动到最后一张图片
        $("#imgBox").animate({left:leftNum=-1500},500);
      }else{
        $("#imgBox").animate({left:leftNum=leftNum+750},500);
      }
      
    });
    
    $("#you").click(function(){
      if(leftNum==-1500){
        //移动到第一张图片
        $("#imgBox").animate({left:leftNum=0},500);
      }else{
        $("#imgBox").animate({left:leftNum=leftNum-750},500);
      }
      
    });
  });

提示:记得导入jQuery包

脚本代码我写了两个单击事件,定义了一个保存距离左边位置的属性leftNum

首先看一下我们的左切换按钮单击事件:当我们单击按钮时,首先判断leftNum是否为0,如果为0,那么就是第一张图片,第一张图片左边已经没图片了怎么办,所以我们让他跳到最后一张图片,我们调用animate方法实现动画效果,这里我写的是left:left=-1500,为什么是-1500呢,left等于0时是第一张图片,left等于-750的时候是第二张图片,left等于-1500时就是第三张图片,所以最后一张图片的位置=-(图片宽度)X(图片总数)-1。如果leftNum不为0时,我们就在原来的基础上加750px。

右切换按钮的原理和左切换按钮相似,我就不解释那么多了。

 4、小结:

看懂的小伙伴们可以自己去实践一下,毕竟实践出真理。

如果想做的更好看的同学,可以私信我,毕竟还有先功能我没讲,比如弄几个圆点在图片上面,当我们点击圆点时就动画切换到相对应的图片上,还可以设置图片轮播效果,每隔多少秒切换一次图片。

还有就是按钮的话,大家也可以弄的漂亮一些,可以在图片左边和右边加一个图片的按钮,这样和更美观

jQuery图片切换动画特效

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript不同页面传值的改进版
Sep 30 Javascript
JavaScript 面向对象的 私有成员和公开成员
May 13 Javascript
深入理解JavaScript系列(15) 函数(Functions)
Apr 12 Javascript
JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍
May 19 Javascript
关于express与koa的使用对比详解
Jan 25 Javascript
详解如何用babel转换es6的class语法
Apr 03 Javascript
js的对象与函数详解
Jan 21 Javascript
layer弹出层自适应高度,垂直水平居中的实现
Sep 16 Javascript
原生js+css调节音量滑块
Jan 15 Javascript
vue组件传值的实现方式小结【三种方式】
Feb 05 Javascript
jQuery实现简单聊天室
Feb 08 jQuery
js实现移动端图片滑块验证功能
Sep 29 Javascript
用jQuery的AJax实现异步访问、异步加载
Nov 02 #Javascript
AngularJS入门教程之MVC架构实例分析
Nov 01 #Javascript
bootstrap table复杂操作代码
Nov 01 #Javascript
bootstrap flask登录页面编写实例
Nov 01 #Javascript
JS弹出窗口的运用与技巧大全
Nov 01 #Javascript
Bootstrap树形菜单插件TreeView.js使用方法详解
Nov 01 #Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
Nov 01 #Javascript
You might like
PHP字符过滤函数去除字符串最后一个逗号(rtrim)
2013/03/26 PHP
用PHP实现弹出消息提示框的两种方法
2013/12/17 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
php使用指定编码导出mysql数据到csv文件的方法
2015/03/31 PHP
使用JavaScript创建新样式表和新样式规则
2016/06/14 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
PHP CURL使用详解
2019/03/21 PHP
如何用javascript控制上传文件的大小
2006/10/26 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
jQuery源码分析-03构造jQuery对象-源码结构和核心函数
2011/11/14 Javascript
javascript中的缓动效果实现程序
2012/12/29 Javascript
20行代码实现的一个CSS覆盖率测试脚本
2013/07/07 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
javascript中全局对象的isNaN()方法使用介绍
2013/12/19 Javascript
JS+HTML5实现图片在线预览功能
2017/07/22 Javascript
vue2导航根据路由传值,而改变导航内容的实例
2017/11/10 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
Vue+Webpack完美整合富文本编辑器TinyMce的方法
2018/11/30 Javascript
jQuery+css实现的点击图片放大缩小预览功能示例【图片预览 查看大图】
2020/05/29 jQuery
node.js通过Sequelize 连接MySQL的方法
2020/12/28 Javascript
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
用python实现的去除win下文本文件头部BOM的代码
2013/02/10 Python
使用Python压缩和解压缩zip文件的教程
2015/05/06 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
详解Django的model查询操作与查询性能优化
2018/10/16 Python
Python工程师必考的6个经典面试题
2020/06/28 Python
HTML5打开本地app应用的方法
2016/03/31 HTML / CSS
英国手机零售商:Carphone Warehouse
2018/06/06 全球购物
全球最大的生存食品、水和装备专用在线市场:BePrepared.com
2020/01/02 全球购物
Collection和Collections的区别
2016/05/02 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
2013/11/04 面试题
教师党员思想汇报
2014/01/06 职场文书
给市场的环保建议书
2014/05/14 职场文书
手术室护士个人总结
2015/02/13 职场文书
2015年秋学期教研工作总结
2015/10/14 职场文书
导游词之金鞭溪风景区
2019/09/12 职场文书