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 相关文章推荐
Javascript倒计时代码
Aug 12 Javascript
Javascript 类、命名空间、代码组织代码
Jul 31 Javascript
javascript正则表达式参数/g与/i及/gi的使用指南
Aug 27 Javascript
基于jQuery实现复选框的全选 全不选 反选功能
Nov 24 Javascript
15个常用的jquery代码片段
Dec 19 Javascript
jquery单击事件和双击事件冲突解决方案
Mar 02 Javascript
jquery插件bootstrapValidator表单验证详解
Dec 15 Javascript
利用JavaScript如何查询某个值是否数组内
Jul 30 Javascript
React中使用UEditor百度富文本的方法
Aug 22 Javascript
jQuery实现购物车的总价计算和总价传值功能
Nov 28 jQuery
解决在Vue中使用axios POST请求变成OPTIONS的问题
Aug 14 Javascript
利用js canvas实现五子棋游戏
Oct 11 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
第三节--定义一个类
2006/11/16 PHP
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
PHP连接Access数据库的方法小结
2013/06/20 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
laravel-admin的图片删除实例
2019/09/30 PHP
js 数组克隆方法 小结
2010/03/20 Javascript
js获得页面的高度和宽度的方法
2014/02/23 Javascript
详谈nodejs异步编程
2014/12/04 NodeJs
Node.js 学习笔记之简介、安装及配置
2015/03/03 Javascript
基于JS模仿windows文件按名称排序效果
2016/06/29 Javascript
AngularJS教程之环境设置
2016/08/16 Javascript
Query常用DIV操作获取和设置长度宽度的实现方法
2016/09/19 Javascript
bootstrap导航条实现代码
2016/12/28 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
vue中的$emit 与$on父子组件与兄弟组件的之间通信方式
2018/05/13 Javascript
JS定时器如何实现提交成功提示功能
2020/06/12 Javascript
vue 组件基础知识总结
2021/01/26 Vue.js
Python中文件遍历的两种方法
2014/06/16 Python
Python实现从URL地址提取文件名的方法
2015/05/15 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
Django对数据库进行添加与更新的例子
2019/07/12 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
tensorflow如何继续训练之前保存的模型实例
2020/01/21 Python
python pprint模块中print()和pprint()两者的区别
2020/02/10 Python
荷兰优雅女装网上商店:Heine
2016/11/14 全球购物
美国眼镜网站:EyeBuyDirect
2017/04/13 全球购物
微软中国官方旗舰店:销售Surface、Xbox One、笔记本电脑、Office
2018/07/23 全球购物
机械化及自动化毕业生的自我评价分享
2013/11/06 职场文书
绝对经典成功的大学生推荐信
2013/11/08 职场文书
公务员转正鉴定材料
2014/02/11 职场文书
机工车间主任岗位职责
2014/03/05 职场文书
电子装配专业毕业生求职信
2014/04/23 职场文书
2015会计试用期工作总结
2014/12/12 职场文书
人事局接收函
2015/01/30 职场文书
python实现简易自习室座位预约系统
2021/06/30 Python