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 相关文章推荐
JQuery自定义事件的应用 JQuery最佳实践
Aug 01 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
Aug 05 Javascript
jQuery Ajax Post 回调函数不执行问题的解决方法
Aug 15 Javascript
详解js运算符单竖杠“|”与“||”的用法和作用介绍
Nov 04 Javascript
jQuery Validate表单验证插件的基本使用方法及功能拓展
Jan 04 Javascript
深入理解Angularjs 脏值检测
Oct 12 Javascript
JavaScript实现与使用发布/订阅模式详解
Jan 19 Javascript
基于Vue的商品主图放大镜方案详解
Sep 19 Javascript
js实现聊天对话框
Feb 08 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
Feb 15 Javascript
JavaScript实现字符串与HTML格式相互转换
Mar 17 Javascript
JS遍历树层级关系实现原理解析
Aug 31 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生成百度sitemap站点地图类函数实例
2014/10/17 PHP
学习php设计模式 php实现工厂模式(factory)
2015/12/07 PHP
通过chrome浏览器控制台(Console)进行PHP Debug的方法
2016/10/19 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
javascript call和apply方法
2008/11/24 Javascript
JavaScript高级程序设计(第3版)学习笔记12 js正则表达式
2012/10/11 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
js提交form表单,并传递参数的实现方法
2016/05/25 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
微信小程序 小程序制作及动画(animation样式)详解
2017/01/06 Javascript
JavaScript实现经纬度转换成地址功能
2017/03/28 Javascript
Vue.js仿Metronic高级表格(二)数据渲染
2017/04/19 Javascript
Vue中img的src属性绑定与static文件夹实例
2017/05/18 Javascript
父组件中vuex方法更新state子组件不能及时更新并渲染的完美解决方法
2018/04/25 Javascript
Echarts之悬浮框中的数据排序问题
2018/11/08 Javascript
解决python3 json数据包含中文的读写问题
2018/05/10 Python
简单谈谈python基本数据类型
2018/09/26 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
pyenv与virtualenv安装实现python多版本多项目管理
2019/08/17 Python
Python3进制之间的转换代码实例
2019/08/24 Python
python列表生成器迭代器实例解析
2019/12/19 Python
使用pyhon绘图比较两个手机屏幕大小(实例代码)
2020/01/03 Python
利用OpenCV中对图像数据进行64F和8U转换的方式
2020/06/03 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
CSS3对图片照片进行边缘模糊处理的实现
2018/08/08 HTML / CSS
css3实现3D色子翻转特效
2014/12/23 HTML / CSS
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
微软瑞士官方网站:Microsoft瑞士
2018/04/20 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
环境科学毕业生自荐信
2013/11/21 职场文书
出生证明公证书
2014/04/09 职场文书
大学迎新标语
2014/06/26 职场文书
献爱心大型公益活动策划方案
2014/09/15 职场文书
赡养老人协议书范本
2015/08/06 职场文书
三八红旗手先进事迹材料(2016推荐版)
2016/02/25 职场文书
详解Redis复制原理
2021/06/04 Redis