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+xml+ajax的无刷新树结构(无css,后台是c#)
Jun 02 Javascript
javascript中onmouse事件在div中失效问题的解决方法
Jan 09 Javascript
JavaScript高级程序设计 读书笔记之八 Function类及闭包
Feb 27 Javascript
javaScript复制功能调用实现方案
Dec 13 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
Apr 07 Javascript
ExtJS判断IE浏览器类型的方法
Feb 10 Javascript
nw.js实现类似微信的聊天软件
Mar 16 Javascript
Javascript监视变量变化的方法
Jun 09 Javascript
js实现按钮颜色渐变动画效果
Aug 20 Javascript
纯JS代码实现气泡效果
May 04 Javascript
移动端点击态处理的三种实现方式
Jan 12 Javascript
JS实现可切换图片的幻灯切换效果示例
May 24 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
虫族 Zerg 魔法科技
2020/03/14 星际争霸
解决PHP mysql_query执行超时(Fatal error: Maximum execution time …)
2013/07/03 PHP
php无限级评论嵌套实现代码
2018/04/18 PHP
php实现session共享的实例方法
2019/09/19 PHP
JavaScript中继承的一些示例方法与属性参考
2010/08/07 Javascript
JavaScript类型转换方法及需要注意的问题小结(挺全面)
2010/11/11 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
利用jQuery中的ajax分页实现代码
2016/02/25 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
2017/03/24 Javascript
JS常用正则表达式总结【经典】
2017/05/12 Javascript
JS实现点击循环切换显示内容的方法
2017/10/19 Javascript
详解vuex的简单使用
2018/03/12 Javascript
vue中子组件调用兄弟组件方法
2018/07/06 Javascript
浅谈Vuex的this.$store.commit和在Vue项目中引用公共方法
2020/07/24 Javascript
玩转python爬虫之cookie使用方法
2016/02/17 Python
JSONLINT:python的json数据验证库实例解析
2017/11/28 Python
Django使用paginator插件实现翻页功能的实例
2018/10/24 Python
django中SMTP发送邮件配置详解
2019/07/19 Python
使用celery和Django处理异步任务的流程分析
2020/02/19 Python
会计学财务管理专业个人的自我评价
2013/10/19 职场文书
清洁工岗位职责
2014/01/29 职场文书
党支部综合考察材料
2014/05/19 职场文书
六五普法宣传标语
2014/10/06 职场文书
单位工作证明
2014/10/07 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
2014年镇党建工作汇报材料
2014/11/02 职场文书
2015年学生会纪检部工作总结
2015/03/31 职场文书
班级联欢会主持词
2015/07/03 职场文书
2015教师个人师德工作总结
2015/10/23 职场文书
职场领导同事生日简短祝福语
2019/08/06 职场文书
理解深度学习之深度学习简介
2021/04/14 Python
nginx配置限速限流基于内置模块
2022/05/02 Servers
MySQL中LAG()函数和LEAD()函数的使用
2022/08/14 MySQL