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 相关文章推荐
jQuery弹出层始终垂直居中相对于屏幕或当前窗口
Apr 01 Javascript
Javascript 实现的数独解题算法网页实例
Oct 15 Javascript
javascript解析json实例详解
Nov 05 Javascript
jQuery+PHP实现动态数字展示特效
Mar 14 Javascript
jQuery轻松实现无缝轮播效果
Mar 22 jQuery
利用Vue v-model实现一个自定义的表单组件
Apr 27 Javascript
微信小程序 wx:for的使用实例详解
Apr 27 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
Dec 01 Javascript
解决vue项目报错webpackJsonp is not defined问题
Mar 14 Javascript
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
Vue常用API、高级API的相关总结
Feb 02 Vue.js
Javascript中的解构赋值语法详解
Apr 02 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 XMLWriter类的简单示例代码(RSS输出)
2011/09/30 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
JS获取dom 对象 ajax操作 读写cookie函数
2009/11/18 Javascript
jQuery EasyUI API 中文文档 - TreeGrid 树表格使用介绍
2011/11/21 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
jQuery动画与特效详解
2015/02/01 Javascript
javascript实现简单的分页特效
2015/08/12 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
AngularJS之ionic 框架下实现 Localstorage本地存储
2017/04/22 Javascript
vue2.0 实现导航守卫(路由守卫)
2018/05/21 Javascript
vue观察模式浅析
2018/09/25 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
使用vscode快速建立vue模板过程详解
2019/10/10 Javascript
[01:12:27]EG vs Secret 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
Python中的各种装饰器详解
2015/04/11 Python
Python对列表去重的多种方法(四种方法)
2017/12/05 Python
K-近邻算法的python实现代码分享
2017/12/09 Python
python3.x实现base64加密和解密
2019/03/28 Python
python dlib人脸识别代码实例
2019/04/04 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
pyqt5 实现工具栏文字图片同时显示
2019/06/13 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
学习python需要有编程基础吗
2020/06/02 Python
20佳惊艳的HTML5应用程序示例分享
2011/05/03 HTML / CSS
匈牙利墨盒和碳粉购买网站:CDRmarket
2018/04/14 全球购物
什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?
2014/01/19 面试题
四年大学自我鉴定
2014/02/17 职场文书
材料加工工程求职信
2014/02/19 职场文书
态度决定一切演讲稿
2014/05/20 职场文书
项目经理任命书内容
2014/06/06 职场文书
新学期开学标语
2014/06/30 职场文书
本科应届生求职信
2014/08/05 职场文书