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 相关文章推荐
Ruffy javascript 学习笔记
Nov 30 Javascript
js的表单操作 简单计算器
Dec 29 Javascript
jquery对象和DOM对象的区别介绍
Aug 09 Javascript
jqeury-easyui-layout问题解决方法
Mar 24 Javascript
JavaScript函数模式详解
Nov 07 Javascript
jQuery实现统计输入文字个数的方法
Mar 11 Javascript
Bootstrap每天必学之级联下拉菜单
Mar 27 Javascript
最丑的时钟效果!js canvas时钟制作方法
Aug 15 Javascript
vue-resource调用promise取数据方式详解
Jul 21 Javascript
jQuery实现动态添加节点与遍历节点功能示例
Nov 09 jQuery
浅析node.js的模块加载机制
May 25 Javascript
利用angular自动编译andriod APK的绕坑经历分享
Mar 08 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_MySQL教程-第一天
2007/03/18 PHP
php中switch与ifelse的效率区别及适用情况分析
2015/02/12 PHP
php中将一个对象保存到Session中的方法
2015/03/13 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
javascript 面向对象继承
2009/11/26 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
基于jquery实现一张图片点击鼠标放大再点缩小
2013/09/29 Javascript
javascript日期对象格式化为字符串的实现方法
2014/01/14 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
深入理解jquery中的each用法
2016/12/14 Javascript
微信小程序实现实时圆形进度条的方法示例
2017/02/24 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
2017/09/13 Javascript
vue删除html内容的标签样式实例
2018/09/13 Javascript
Vue开发Html5微信公众号的步骤
2019/04/11 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
Python ORM框架SQLAlchemy学习笔记之安装和简单查询实例
2014/06/10 Python
朴素贝叶斯算法的python实现方法
2014/11/18 Python
Python实现k-means算法
2018/02/23 Python
python time.sleep()是睡眠线程还是进程
2019/07/09 Python
Python 单例设计模式用法实例分析
2019/09/23 Python
Python函数式编程实例详解
2020/01/17 Python
Python退出时强制运行一段代码的实现方法
2020/04/29 Python
Python3读取和写入excel表格数据的示例代码
2020/06/09 Python
美国最灵活的移动提供商:Tello
2017/07/18 全球购物
Kendra Scott官网:美国领先的时尚配饰品牌
2020/10/22 全球购物
一些Solaris面试题
2013/03/22 面试题
环境工程与管理大学毕业生求职信
2013/10/02 职场文书
医科大学生毕业的自我评价分享
2013/11/12 职场文书
园林资料员岗位职责
2013/12/30 职场文书
人事专员工作职责
2014/02/22 职场文书
环境保护与污染治理求职信
2014/07/16 职场文书
助学贷款贫困证明
2014/09/23 职场文书
少年犯观后感
2015/06/11 职场文书
Python实现提取PDF简历信息并存入Excel
2022/04/02 Python