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 20 Javascript
js禁止小键盘输入数字功能代码
Aug 01 Javascript
node.js适合游戏后台开发吗?
Sep 03 Javascript
JavaScript DOM进阶方法
Apr 13 Javascript
Javascript实现网络监测的方法
Jul 31 Javascript
特殊日期提示功能的实现方法
Jun 16 Javascript
Vue.js每天必学之构造器与生命周期
Sep 05 Javascript
Angularjs 实现分页功能及示例代码
Sep 14 Javascript
原生js实现手风琴功能(支持横纵向调用)
Jan 13 Javascript
Vue实现选择城市功能
May 27 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
Jul 12 Javascript
JS实现的抛物线运动效果示例
Jan 30 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中用加号与用array_merge合并数组的区别深入分析
2013/06/03 PHP
php数组(array)输出的三种形式详解
2013/06/05 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
php解析mht文件转换成html的实例
2017/03/13 PHP
greybox——不开新窗口看新的网页
2007/02/20 Javascript
javascript实现的在当前窗口中漂浮框的代码
2010/03/15 Javascript
js模拟点击事件实现代码
2012/11/06 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
2014/02/28 Javascript
jquery事件的ready()方法使用详解
2015/11/11 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
Javascript中关于Array.filter()的妙用详解
2016/12/04 Javascript
Bootstrap基本组件学习笔记之分页(12)
2016/12/08 Javascript
Angularjs上传文件组件flowjs功能
2017/08/07 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
shiro授权的实现原理
2017/09/21 Javascript
vue keep-alive请求数据的方法示例
2018/05/16 Javascript
详解微信小程序之scroll-view的flex布局问题
2019/01/16 Javascript
Vue中JS动画与Velocity.js的结合使用
2019/02/13 Javascript
解决vue-pdf查看pdf文件及打印乱码的问题
2020/11/04 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
[41:52]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第二场 2月22日
2021/03/11 DOTA
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
python使用gdal对shp读取,新建和更新的实例
2020/03/10 Python
基于python实现对文件进行切分行
2020/04/26 Python
在python下实现word2vec词向量训练与加载实例
2020/06/09 Python
opencv 图像轮廓的实现示例
2020/07/08 Python
python中doctest库实例用法
2020/12/31 Python
办公室前台岗位职责
2014/01/04 职场文书
学生偷窃检讨书
2014/09/25 职场文书
同学联谊会邀请函
2019/06/24 职场文书
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript
关于python pygame游戏进行声音添加的技巧
2021/10/24 Python