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 变量基础知识
Nov 07 Javascript
JQuery 图片的展开和伸缩实例讲解
Apr 18 Javascript
jquery模拟SELECT下拉框取值效果
Oct 23 Javascript
node.js中的querystring.stringify方法使用说明
Dec 10 Javascript
jstree单选功能的实现方法
Jun 07 Javascript
AngularJS中table表格基本操作示例
Oct 10 Javascript
微信小程序switch开关选择器使用详解
Jan 31 Javascript
JavaScript封装的常用工具类库bee.js用法详解【经典类库】
Sep 03 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
Sep 30 Javascript
小程序实现左滑删除功能
Oct 30 Javascript
layui禁用侧边导航栏点击事件的解决方法
Sep 25 Javascript
vue 项目引入echarts 添加点击事件操作
Sep 09 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
PHP采集相关教程之一 CURL函数库
2010/02/15 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十)
2014/06/24 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
asp 取文本框名称代码
2008/12/02 Javascript
Jquery倒数计时按钮setTimeout的实例代码
2013/07/04 Javascript
js固定DIV高度,超出部分自动添加滚动条的简单方法
2013/07/10 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
javascript+html5+css3自定义弹出窗口效果
2017/10/26 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
Vue一次性简洁明了引入所有公共组件的方法
2018/11/28 Javascript
基于Vue实现的多条件筛选功能的详解(类似京东和淘宝功能)
2019/05/07 Javascript
一个手写的vue放大镜效果
2019/08/09 Javascript
Python深入学习之闭包
2014/08/31 Python
python脚本实现数据导出excel格式的简单方法(推荐)
2016/12/30 Python
python 字典中取值的两种方法小结
2018/08/02 Python
django的聚合函数和aggregate、annotate方法使用详解
2019/07/23 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
python 实现保存最新的三份文件,其余的都删掉
2019/12/22 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
国际象棋商店:The Chess Store
2018/07/09 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
毕业生求职找工作的自我评价范文
2013/11/27 职场文书
给幼儿园老师的表扬信
2014/01/19 职场文书
初中高效课堂实施方案
2014/02/26 职场文书
大学生党员批评与自我批评
2014/09/28 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
教师远程培训心得体会
2016/01/09 职场文书
Nginx反向代理配置的全过程记录
2021/06/22 Servers
go使用Gin框架利用阿里云实现短信验证码功能
2021/08/04 Golang
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python