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 相关文章推荐
dojo 之基础篇
Mar 24 Javascript
js实现简单模态窗口,背景灰显
Nov 14 Javascript
csdn 博客的css样式 v3
Feb 24 Javascript
JavaScript中的稀疏数组与密集数组[译]
Sep 17 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
Jun 16 Javascript
JavaScript获取鼠标移动时的坐标(兼容IE8、chome谷歌、Firefox)
Sep 13 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
javascript使用递归算法求两个数字组合功能示例
Jan 03 Javascript
vue2.0实战之使用vue-cli搭建项目(2)
Mar 27 Javascript
解决angular双向绑定无效果,ng-model不能正常显示的问题
Oct 02 Javascript
如何在 ant 的table中实现图片的渲染操作
Oct 28 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
Feb 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
数据库的日期格式转换
2006/10/09 PHP
php定时计划任务的实现方法详解
2013/06/06 PHP
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
2013/06/25 PHP
PHP curl 抓取AJAX异步内容示例
2014/09/09 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
什么是PEAR?什么是PECL?PHP中两个容易混淆的概念解释
2015/07/01 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
JavaScript 变量命名规则
2009/09/23 Javascript
浅谈js中的延迟执行和定时执行
2016/05/31 Javascript
ES6新特性之函数的扩展实例详解
2017/04/01 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
vue文件树组件使用详解
2018/03/29 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
Easyui 去除jquery-easui tab页div自带滚动条的方法
2019/05/10 jQuery
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
[02:12]打造更好的电竞完美世界:完美盛典回顾篇
2018/12/19 DOTA
Python中的ConfigParser模块使用详解
2015/05/04 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
Sanic框架Cookies操作示例
2018/07/17 Python
[原创]Python入门教程3. 列表基本操作【定义、运算、常用函数】
2018/10/30 Python
python常用函数与用法示例
2019/07/02 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
2020/03/11 Python
关于CSS Tooltips(鼠标经过时显示)的效果
2013/04/10 HTML / CSS
全球最大的网上自行车商店:Chain Reaction Cycles
2016/12/02 全球购物
美国受信赖的教育产品供应商:Nest Learning
2018/06/14 全球购物
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
清华大学自主招生自荐信
2014/01/29 职场文书
外语系大学生自荐信范文
2014/03/01 职场文书
计算机多媒体专业自荐信
2014/07/04 职场文书
银行贷款委托书范本
2014/10/11 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
第二批党的群众路线教育实践活动个人整改方案
2014/10/31 职场文书
教师节老师寄语
2015/05/28 职场文书
JavaScript实现简单计时器
2021/06/22 Javascript