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下动态显示jqGrid以及jqGrid的属性设置容易出现问题的解决方法
Oct 22 Javascript
Three.js源码阅读笔记(光照部分)
Dec 27 Javascript
js如何实现点击标签文字,文字在文本框出现
Aug 05 Javascript
微信小程序开发(一) 微信登录流程详解
Jan 11 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
Mar 13 Javascript
vue2.0 keep-alive最佳实践
Jul 06 Javascript
JS+Ajax实现百度智能搜索框
Aug 04 Javascript
原生js实现二级联动菜单
Nov 27 Javascript
JS实现无限轮播无倒退效果
Sep 21 Javascript
JS常用跨域方法实现原理解析
Dec 09 Javascript
elementui实现预览图片组件二次封装
Dec 29 Javascript
使用Vue.js和MJML创建响应式电子邮件
Mar 23 Vue.js
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 读取shell管道传输过来的内容
2010/03/01 PHP
php中神奇的fastcgi_finish_request
2011/05/02 PHP
php备份数据库类分享
2015/04/14 PHP
ie下动态加态js文件的方法
2011/09/13 Javascript
jquery中获取id值方法小结
2013/09/22 Javascript
jquery ajaxSubmit 异步提交的简单实现
2014/02/28 Javascript
Node.js与PHP、Python的字符处理性能对比
2014/07/06 Javascript
详解Javascript 装载和执行
2014/11/17 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
关于angularJs指令的Scope(作用域)介绍
2016/10/25 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
vue-cli2 构建速度优化的实现方法
2019/01/08 Javascript
php结合js实现多条件组合查询
2019/05/28 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
[02:20]DOTA2中文配音宣传片
2013/05/22 DOTA
[01:33]真香警告!DOTA2勇士令状不朽珍藏Ⅱ饰品欣赏
2018/06/26 DOTA
python 文件操作api(文件操作函数)
2016/08/28 Python
简单谈谈python中的lambda表达式
2018/01/19 Python
使用python实现http及ftp服务进行数据传输的方法
2018/10/26 Python
python 搭建简单的http server,可直接post文件的实例
2019/01/03 Python
Python二元赋值实用技巧解析
2019/10/25 Python
PyTorch 对应点相乘、矩阵相乘实例
2019/12/27 Python
解决python replace函数替换无效问题
2020/01/18 Python
python中return不返回值的问题解析
2020/07/22 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
HTML5 video视频字幕的使用和制作方法
2018/05/03 HTML / CSS
会计自我鉴定
2013/11/02 职场文书
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
应急管理培训方案
2014/06/12 职场文书
团员个人总结
2015/02/26 职场文书
Nginx下配置Https证书详细过程
2021/04/01 Servers
Java中的继承、多态以及封装
2022/04/11 Java/Android
python数字图像处理之图像的批量处理
2022/06/28 Python