JS使用tween.js动画库实现轮播图并且有切换功能


Posted in Javascript onJuly 17, 2018

效果图如下所示:

JS使用tween.js动画库实现轮播图并且有切换功能

<!DOCTYPE html>
<html lang="zh-CN">
<head>
 <meta charset="UTF-8">
 <title>Document</title>
 <style>
 .wrap{
  width: 500px;
  height: 300px;
  position: relative;
  overflow: hidden;
 }
 .box{
  width: 500%;
  height: 100%;
  position: absolute;
  left: 0;
 }
 .box>div{
  width: 500px;
  height: 300px;
  float: left;
  font-size: 100px;
  text-align: center;
  line-height: 300px;
 }
 div:nth-child(1){
  background-color: red;
 }
 div:nth-child(2){
  background-color: green;
 }
 div:nth-child(3){
  background-color: pink;
 }
 div:nth-child(4){
  background-color: blue;
 }
 </style>
</head>
<body>
 <input type="button" value="last">
 <input type="button" value="next">
 <input type="button" value="按钮1" class="ha">
 <input type="button" value="按钮2" class="ha">
 <input type="button" value="按钮3" class="ha">
 <input type="button" value="按钮4" class="ha">
 <div class="wrap">
 <div class="box">
  <div id="one">div1</div>
  <div>div2</div>
  <div>div3</div>
  <div>div4</div>
  <div id="one">div1</div>
 </div>
 </div>
</body>
<script src="./tween.js"></script>
<script>
 //获取元素
 var inps = document.querySelectorAll("input");
 var box = document.querySelector(".box");
 var ha = document.querySelectorAll(".ha");
 //记录图片下标
 var index = 0;
 var w = -500;
 var timer = null;
 //自动播放
 //放在计时器就是自动播放,骑士就是下一张的操作
 function autoImg(){
 index++;
 if(index>3){
  // console.log(index);
  index=0;
  // console.log(index);
 }
 //动画开始时间
 var t = 0;
 //动画结束时间
 var d = 30;
 //动画的起始位置
 var b = box.offsetLeft;
 //动画的终止位置减去动画的起始位置,该变量为-500
 // var c =index*w-b;
 console.log(c);
 var c = -500;
 if(b<=-1500){
  b=0;
 }
 clearInterval(timer);
 timer = setInterval(function(){
  t++;
  box.style.left=Tween.Linear(t,b,c,d)+"px";
  if(t>=d){
  clearInterval(timer);
  }
 },30);
 }
//关闭轮播
 function clearAuto(){
 clearInterval(autotimer);
  autotimer = setInterval(autoImg,3000);
 }
 var autotimer = setInterval(autoImg,3000);
 //下一张
 inps[1].onclick = function(){
  clearAuto();
  autoImg();
 }
 //上一张
 function prevImg(){
 index--;
 if(index<0){
  index=3;
 }
 //动画开始时间
 var t = 0;
 //动画结束时间
 var d = 30;
 //动画的起始位置
 var b = box.offsetLeft;
 //动画的终止位置减去动画的起始位置
 var c =index*w-b;
 clearInterval(timer);
 timer = setInterval(function(){
  t++;
  box.style.left=Tween.Linear(t,b,c,d)+"px";
  if(t>=d){
  clearInterval(timer);
  }
 },30);
 }
 inps[0].onclick = function(){
 clearAuto();
 prevImg();
 }
function indexImg(n){
  index = n;
 var t = 0;
 //动画结束时间
 var d = 30;
 //动画的起始位置
 var b = box.offsetLeft;
 //动画的终止位置减去动画的起始位置
 var c =index*w-b;
 clearInterval(timer);
 timer = setInterval(function(){
  t++;
  box.style.left=Tween.Linear(t,b,c,d)+"px";
  if(t>=d){
  clearInterval(timer);
  }
 },30);
 }
 
 for(var i=0;i<ha.length;i++){
  (function(i){
  ha[i].onclick = function(){
   // box.style.left = (-500*(i-2))+"px";
   clearAuto();
   indexImg(i);
   console.log(i);
  }
  })(i);
 }
</script>
</html>

总结

以上所述是小编给大家介绍的JS使用tween.js动画库实现轮播图并且有切换功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js利用Array.splice实现Array的insert/remove
Jan 13 Javascript
JavaScript Konami Code 实现代码
Jul 29 Javascript
jquery解析JSON数据示例代码
Mar 17 Javascript
JavaScript 七大技巧(一)
Dec 13 Javascript
获取jqGrid中选择的行的数据
Nov 30 Javascript
原生JS实现导航下拉菜单效果
Nov 25 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
Apr 25 Javascript
EasyUI Datebox 日期验证之开始日期小于结束时间
May 19 Javascript
vue自定义filters过滤器
Apr 26 Javascript
JavaScript使用canvas绘制随机验证码
Feb 17 Javascript
JavaScript实现放大镜效果代码示例
Apr 29 Javascript
Element InfiniteScroll无限滚动的具体使用方法
Jul 27 Javascript
SVG实现时钟效果
Jul 17 #Javascript
JS中实现隐藏部分姓名或者电话号码的代码
Jul 17 #Javascript
基于D3.js实现时钟效果
Jul 17 #Javascript
vue生成token并保存到本地存储中
Jul 17 #Javascript
vue脚手架搭建项目的兼容性配置详解
Jul 17 #Javascript
使用svg实现动态时钟效果
Jul 17 #Javascript
详解.vue文件中style标签的几个标识符
Jul 17 #Javascript
You might like
用PHP获取Google AJAX Search API 数据的代码
2010/03/12 PHP
第4章 数据处理-php数组的处理-郑阿奇
2011/07/04 PHP
php检测apache mod_rewrite模块是否安装的方法
2015/03/14 PHP
教你识别简单的免查杀PHP后门
2015/09/13 PHP
PHP模块化安装教程
2016/06/01 PHP
Laravel基础_关于view共享数据的示例讲解
2019/10/14 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
jquery下利用jsonp跨域访问实现方法
2010/07/29 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
javascript实现左右控制无缝滚动
2014/12/31 Javascript
PHP实现的各种中文编码转换类分享
2015/01/23 Javascript
javascript+HTML5自定义元素播放焦点图动画
2016/02/21 Javascript
js 截取或者替换字符串中的数字实现方法
2016/06/13 Javascript
Javascript的this用法
2017/01/16 Javascript
解决AngualrJS页面刷新导致异常显示问题
2017/04/20 Javascript
vue单页应用中如何使用jquery的方法示例
2017/07/27 jQuery
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
Python实现微信公众平台自定义菜单实例
2015/03/20 Python
python找出完数的方法
2018/11/12 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
Canvas系列之滤镜效果
2019/02/12 HTML / CSS
Jogun Shop中文官网:韩国知名时尚男装网站
2016/10/12 全球购物
Reebonz中国官网:新加坡奢侈品购物网站
2017/03/17 全球购物
吉尔德利巧克力公司:Ghirardelli Chocolate Company
2019/03/27 全球购物
心理健康教育心得体会
2013/12/29 职场文书
企业项目策划书
2014/01/11 职场文书
员工培训邀请函
2014/01/11 职场文书
八一建军节营销活动方案
2014/08/31 职场文书
个人债务授权委托书范本
2014/10/05 职场文书
2015年三好一满意工作总结
2015/07/24 职场文书
五年级作文之劳动作文
2019/11/12 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
Python使用OpenCV和K-Means聚类对毕业照进行图像分割
2021/06/11 Python