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 相关文章推荐
通过继承IHttpHandle实现JS插件的组织与管理
Jul 13 Javascript
基于jQuery的仿flash的广告轮播
Nov 05 Javascript
IE6/7/8/9不支持exec的简写方式
May 25 Javascript
Jquery带搜索框的下拉菜单
May 06 Javascript
jquery+javascript编写国籍控件
Feb 12 Javascript
Angular路由简单学习
Dec 26 Javascript
使用vue.js实现checkbox的全选和多个的删除功能
Feb 17 Javascript
Vue实现路由跳转和嵌套
Jun 20 Javascript
js注册时输入合法性验证方法
Oct 21 Javascript
ReactNative 之FlatList使用及踩坑封装总结
Nov 29 Javascript
使用classList来实现两个按钮样式的切换方法
Jan 24 Javascript
12个提高JavaScript技能的概念(小结)
May 09 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中使用Oracle数据库(3)
2006/10/09 PHP
使用Discuz关键词服务器实现PHP中文分词
2014/03/11 PHP
微信公众号开发客服接口实例代码
2016/10/21 PHP
PHP编程求最大公约数与最小公倍数的方法示例
2017/05/29 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
isArray()函数(JavaScript中对象类型判断的几种方法)
2009/11/26 Javascript
关于JavaScript中var声明变量作用域的推断
2010/12/16 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
理解javascript中Map代替循环
2016/02/26 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
jQuery按需加载轮播图(web前端性能优化)
2017/02/17 Javascript
js常用的继承--组合式继承
2017/03/06 Javascript
JS和jQuery通过this获取html标签中的属性值(实例代码)
2017/09/11 jQuery
js中getter和setter用法实例分析
2018/08/14 Javascript
小试小程序云开发(小结)
2019/06/06 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
jQuery 动态粒子效果示例代码
2020/07/07 jQuery
Python多线程同步Lock、RLock、Semaphore、Event实例
2014/11/21 Python
Python基本socket通信控制操作示例
2019/01/30 Python
Python+AutoIt实现界面工具开发过程详解
2019/08/07 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
Python如何实现定时器功能
2020/05/28 Python
Python Tornado核心及相关原理详解
2020/06/24 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
python生成xml时规定dtd实例方法
2020/09/21 Python
Anaconda使用IDLE的实现示例
2020/09/23 Python
Cotton On美国网站:澳洲时装连锁品牌
2016/10/25 全球购物
印尼太阳百货公司网站:Matahari
2018/02/04 全球购物
德国、奥地利和瑞士最大的旅行和度假门户网站:HolidayCheck
2019/11/14 全球购物
盛大笔试题
2016/11/05 面试题
init进程的作用
2012/04/12 面试题
测试驱动开发的主要步骤是什么
2014/12/10 面试题
小学生学习雷锋倡议书
2014/05/15 职场文书
2019关于实习生工作安排及待遇的管理方案!
2019/07/16 职场文书
教师实习自我鉴定总结
2019/08/20 职场文书