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 组件之旅(一)分析和设计
Oct 28 Javascript
xml文档转换工具,附图表例子(hta)
Nov 17 Javascript
始终在屏幕中间显示Div的代码(css+js)
Mar 10 Javascript
js验证是否为数字的总结
Apr 14 Javascript
node+express+jade制作简单网站指南
Nov 26 Javascript
简介JavaScript中setUTCSeconds()方法的使用
Jun 12 Javascript
Bootstrap学习笔记之css组件(3)
Jun 07 Javascript
jquery实现表单获取短信验证码代码
Mar 13 Javascript
Vue computed计算属性的使用方法
Jul 14 Javascript
Vue中mintui的field实现blur和focus事件的方法
Aug 25 Javascript
基于Vue SEO的四种方案(小结)
Jul 01 Javascript
Vue 实现显示/隐藏层的思路(加全局点击事件)
Dec 31 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生成月历代码
2007/06/14 PHP
PHP字符串处理的10个简单方法
2010/06/30 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
php实现判断访问来路是否为搜索引擎机器人的方法
2015/04/15 PHP
浅析iis7.5安装配置php环境
2015/05/10 PHP
PHP中strpos、strstr和stripos、stristr函数分析
2016/06/11 PHP
php进程间通讯实例分析
2016/07/11 PHP
js操作table示例(个人心得)
2013/11/29 Javascript
清除div下面的所有标签的方法
2014/02/17 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
JavaScript基础语法之js表达式
2016/06/07 Javascript
jQuery实现简洁的轮播图效果实例
2016/09/07 Javascript
js判断所有表单项不为空则提交表单的实现方法
2016/09/09 Javascript
Bootstrap的popover(弹出框)2秒后定时消失的实现代码
2017/02/27 Javascript
你不知道的Vue技巧之--开发一个可以通过方法调用的组件(推荐)
2019/04/15 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
Element Rate 评分的使用方法
2020/07/27 Javascript
Python的Tornado框架实现图片上传及图片大小修改功能
2016/06/30 Python
python if not in 多条件判断代码
2016/09/21 Python
Python中遇到的小问题及解决方法汇总
2017/01/11 Python
python中使用xlrd读excel使用xlwt写excel的实例代码
2018/01/31 Python
python中验证码连通域分割的方法详解
2018/06/04 Python
python批量下载网站马拉松照片的完整步骤
2018/12/05 Python
python psutil模块使用方法解析
2019/08/01 Python
python dataframe NaN处理方式
2019/12/26 Python
Scrapy框架实现的登录网站操作示例
2020/02/06 Python
使用tensorflow框架在Colab上跑通猫狗识别代码
2020/04/26 Python
基于python实现百度语音识别和图灵对话
2020/11/02 Python
安全资料员岗位职责
2013/12/14 职场文书
绩效考核实施方案
2014/03/18 职场文书
营业员岗位职责范本
2015/04/14 职场文书
党小组评议意见
2015/06/02 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书
创业计划书之o2o水果店
2019/08/30 职场文书
浅谈mysql执行过程以及顺序
2021/05/12 MySQL
德生BCL3000抢先使用感受和评价
2022/04/07 无线电