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实例教程(19) 使用HoTMetal(7)
Dec 23 Javascript
基于jquery的多功能软键盘插件
Jul 25 Javascript
PHP abstract与interface之间的区别
Nov 11 Javascript
Javascript前端UI框架Kit使用指南之Kitjs简介
Nov 28 Javascript
jQuery使用removeClass方法删除元素指定Class的方法
Mar 26 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
Feb 15 Javascript
学习JavaScript图片预加载模块
Nov 07 Javascript
微信小程序中顶部导航栏的实现代码
Mar 30 Javascript
JS实现移动端实时监听输入框变化的实例代码
Apr 12 Javascript
vue-router项目实战总结篇
Feb 11 Javascript
基于javascript的拖拽类封装详解
Apr 19 Javascript
vue实现一个矩形标记区域(rectangle marker)的方法
Oct 28 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
2020年4月新番动漫目录 官方宣布4月播出的作品一览
2020/03/08 日漫
教你IIS6的PHP最佳配置方法
2006/09/05 PHP
php at(@)符号的用法简介
2009/07/11 PHP
php中调用其他系统http接口的方法说明
2014/02/28 PHP
PHP加密3DES报错 Call to undefined function: mcrypt_module_open() 如何解决
2016/04/17 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
Asp.net下利用Jquery Ajax实现用户注册检测(验证用户名是否存)
2010/09/12 Javascript
JS中令人发指的valueOf方法介绍
2013/02/22 Javascript
js关闭当前页面(窗口)的几种方式总结
2013/03/05 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
浅谈javascript基础之客户端事件驱动
2016/06/10 Javascript
第一次接触神奇的Bootstrap网格系统
2016/07/27 Javascript
微信小程序 图片等比例缩放(图片自适应屏幕)
2016/11/16 Javascript
jQuery select自动选中功能实现方法分析
2016/11/28 Javascript
微信小程序 Tab页切换更新数据
2017/01/05 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
HTML5+jQuery实现搜索智能匹配功能
2017/03/24 jQuery
JS实现图片手风琴效果
2020/04/17 Javascript
jquery自定义显示消息数量
2017/12/19 jQuery
vue项目中使用Svg的方法
2018/10/24 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
python opencv人脸检测提取及保存方法
2018/08/03 Python
python字典值排序并取出前n个key值的方法
2018/10/17 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
python批量处理多DNS多域名的nslookup解析实现
2020/06/28 Python
python实现b站直播自动发送弹幕功能
2021/02/20 Python
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
应届大学生求职的自我评价
2013/11/17 职场文书
公司廉洁自律承诺书
2014/03/27 职场文书
单位委托书范本(3篇)
2014/09/18 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
毕业证明模板
2015/06/19 职场文书
golang DNS服务器的简单实现操作
2021/04/30 Golang