js实现单张图片平移切换效果


Posted in Javascript onOctober 11, 2017

本文参考了JQuery实现图片切换(自动切换+手动切换)

由于个人不需要手动切换功能,因此把那部分的内容删了,主要是增加了无缝切换的效果。

原理也很简单,大概是一张图移动到左边以后,从底部移回最右,等待下一次循环。

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <script src="js/jquery-1.10.1.min.js"></script>
</head>
<body> 
 <div class="wrapper"> 
  <h1>jquer实现图片切换</h1> 
  <div id="focus"> 
   <ul> 
    <!-- 这里有三个z-index的设置 -->
     <li><div class="switch_pic" style="z-index: 3;background: url('imgs/01.jpg') center center;background-size: cover;"></div></li> 
     <li><div class="switch_pic" style="z-index: 2;background: url('imgs/02.jpg') center center;background-size: cover;"></div></li> 
     <li><div class="switch_pic" style="z-index: 1;background: url('imgs/03.jpg') center center;background-size: cover;"></div></li> 
     <li><div class="switch_pic" style="background: url('imgs/04.jpg') center center;background-size: cover;"></div></li>
     <li><div class="switch_pic" style="background: url('imgs/meiko2.jpg') center center;background-size: cover;"></div></li>
     <li><div class="switch_pic" style="background: url('imgs/meiko7.jpg') center center;background-size: cover;"></div></li>
   </ul> 
   </div> 
  </div> 
  <script type="text/javascript">
  $(function() { 
  var sWidth = $("#focus").width(); 
  var len = $("#focus ul li").length; 
  var index = 0; 
  var picTimer; 
  var $pics = $("#focus ul li").find('.switch_pic');//获取所有图片

   showPics(index); //网页打开立即执行一次动画
   picTimer = setInterval(function() { 
    index++; 
    if(index == len) {index = 0;} 
    showPics(index); 
   },3000);//3000毫秒的间隔

  //显示图片函数,根据接收的index值显示相应的内容 
  function showPics(index) { //普通切换 
   var nowLeft = -sWidth; //每次移动固定量

   var $pic = $pics.eq(index);//获取当前要移出的图片
   var $nexPic = $pics.eq((index+1)%len);//当前要移入的图片
   var $nexnexPic = $pics.eq((index+2)%len);//下一个要移入的图片
   $nexPic.css("left",sWidth);//下一个图片移动到最右

   //当前要移出的图片开始左移,模式设为平滑"linear",速度和间隔一样
   $pic.animate({"left":nowLeft},3000,"linear",function(){
    // 当前图片完全移出后,重新设置z-index
    $pic.css("z-index",1);
    $nexPic.css("z-index",3);
    $nexnexPic.css("z-index",2);
   });
   //当前要移入的图片同时左移
   $nexPic.animate({"left":0},3000,"linear");
  } 
 }); 
</script>
<style type="text/css">
 *{margin:0;padding:0;} 
 body{font-size:12px;color:#222;font-family:Verdana,Arial,Helvetica,sans-serif;background:#f0f0f0;} 
 .clearfix:after{content: ".";display: block;height: 0;clear: both;visibility: hidden;} 
 .clearfix{zoom:1;} 
 ul,li{list-style:none;} 
 img{border:0;} 
 .wrapper{width:800px;margin:0 auto;padding-bottom:50px;} 
 h1{height:50px;line-height:50px;font-size:22px;font-weight:normal;font-family:"Microsoft YaHei",SimHei;margin-bottom:20px;} 

 #focus{width:450px;height:350px;overflow:hidden;position:relative;} 
 #focus ul{height:380px;position:absolute;} 
 #focus ul li{float:left;width:450px;height:350px;overflow:hidden;position:absolute;background:#000;} 
 #focus ul li div{position:absolute;overflow:hidden;width: 450px;height: 350px;} 
</style>
</body>

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

Javascript 相关文章推荐
Javascript 表单之间的数据传递代码
Dec 04 Javascript
JS 精确统计网站访问量的实例代码
Jul 05 Javascript
js跨域访问示例(客户端/服务端)
May 19 Javascript
PHP+mysql+Highcharts生成饼状图
May 04 Javascript
浅析node连接数据库(express+mysql)
Nov 30 Javascript
微信小程序实现给嵌套template模板传递数据的方式总结
Dec 18 Javascript
在vue中使用echarts图表实例代码详解
Oct 22 Javascript
JS实现的雪花飘落特效示例
Dec 03 Javascript
jQuery实现简单日历效果
Jul 05 jQuery
javascript实现图片轮换动作方法
Aug 07 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
Aug 25 Javascript
Vue实现Header渐隐渐现效果的实例代码
Nov 05 Javascript
jQuery自动或手动图片切换效果
Oct 11 #jQuery
简单实现vue验证码60秒倒计时功能
Oct 11 #Javascript
mui框架移动开发初体验详解
Oct 11 #Javascript
Scala解析Json字符串的实例详解
Oct 11 #Javascript
jQuery使用bind函数实现绑定多个事件的方法
Oct 11 #jQuery
详解vue mint-ui源码解析之loadmore组件
Oct 11 #Javascript
JS随机排序数组实现方法分析
Oct 11 #Javascript
You might like
PHP实现多服务器session共享之NFS共享的方法
2007/03/16 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
php使用socket post数据到其它web服务器的方法
2015/06/02 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
2016/11/09 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
jquery下将选择的checkbox的id组成字符串的方法
2010/11/28 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
bootstrap table 服务器端分页例子分享
2015/02/10 Javascript
jQuery UI插件自定义confirm确认框的方法
2015/03/20 Javascript
javascript函数式编程实例分析
2015/04/25 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
Vue插件写、用详解(附demo)
2017/03/20 Javascript
a标签调用js的方法总结
2019/09/05 Javascript
微信小程序实现轨迹回放的示例代码
2019/12/13 Javascript
JS中的继承操作实例总结
2020/06/06 Javascript
支付宝小程序实现省市区三级联动
2020/06/21 Javascript
jQuery实现本地存储
2020/12/22 jQuery
[41:08]2014 DOTA2国际邀请赛中国区预选赛 HGT VS NE
2014/05/22 DOTA
Python中的元类编程入门指引
2015/04/15 Python
python实现杨辉三角思路
2017/07/14 Python
Python数据结构与算法之链表定义与用法实例详解【单链表、循环链表】
2017/09/28 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
Python-ElasticSearch搜索查询的讲解
2019/02/25 Python
Python __slots__的使用方法
2020/11/15 Python
阿迪达斯奥地利官方商城:adidas.at
2016/10/16 全球购物
瑞典的玛丽小姐:Miss Mary of Sweden
2019/02/13 全球购物
什么是Oracle的后台进程background processes?都有哪些后台进程?
2012/04/26 面试题
幼儿园保育员责任书
2014/07/22 职场文书
个人三严三实对照检查材料思想汇报
2014/09/22 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
给老师的一封感谢信
2015/01/20 职场文书
Redis集群的关闭与重启操作
2021/07/07 Redis
mysql中varchar类型的日期进行比较、排序等操作的实现
2021/11/17 MySQL