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进行拖拽
Jul 20 Javascript
通过event对象的fromElement属性解决热区设置主实体的一个bug
Dec 22 Javascript
javascript 选择文件夹对话框(web)
Jul 07 Javascript
javascript下判断一个元素是否存在的代码
Mar 05 Javascript
深入理解jQuery中的事件冒泡
May 24 Javascript
更靠谱的H5横竖屏检测方法(js代码)
Sep 13 Javascript
Angular实现跨域(搜索框的下拉列表)
Feb 16 Javascript
详解使用vue脚手架工具搭建vue-webpack项目
May 10 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
Mar 01 Javascript
详解基于Vue2.0实现的移动端弹窗(Alert, Confirm, Toast)组件
Aug 02 Javascript
vue 需求 data中的数据之间的调用操作
Aug 05 Javascript
在Vue 中获取下拉框的文本及选项值操作
Aug 13 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下图片文字混合水印与缩略图实现代码
2009/12/11 PHP
PHP 文件上传全攻略
2010/04/28 PHP
php之XML转数组函数的详解
2013/06/07 PHP
php静态文件返回304技巧分享
2015/01/06 PHP
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
Textarea与懒惰渲染实现代码
2012/01/04 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
ExtJS4如何给同一个formpanel不同的url
2014/05/02 Javascript
JQuery中$(document)是什么意思有什么作用
2014/07/21 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
js 轮播效果实例分享
2016/12/28 Javascript
JS实现复制内容到剪贴板功能
2017/02/05 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
微信小程序实现带缩略图轮播效果
2018/11/04 Javascript
利用jquery和BootStrap实现动态滚动条效果
2018/12/03 jQuery
koa2 从入门到精通(小结)
2019/07/23 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
[10:39]DOTA2上海特级锦标赛音乐会纪录片
2016/03/21 DOTA
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
PyQt弹出式对话框的常用方法及标准按钮类型
2019/02/27 Python
python打印直角三角形与等腰三角形实例代码
2019/10/20 Python
python3获取文件中url内容并下载代码实例
2019/12/27 Python
python+selenium+Chrome options参数的使用
2020/03/18 Python
使用pandas实现筛选出指定列值所对应的行
2020/12/13 Python
python中count函数知识点浅析
2020/12/17 Python
证婚人搞笑证婚词
2014/01/10 职场文书
教职工代表大会主持词
2014/04/01 职场文书
四年级评语大全
2014/04/21 职场文书
2014年服装销售工作总结
2014/11/27 职场文书
事业单位年度考核评语
2014/12/31 职场文书
劳动仲裁调解书
2015/05/20 职场文书
超市员工管理制度
2015/08/06 职场文书
2016年秋季开学典礼新闻稿
2015/11/25 职场文书
MySQL数据库超时设置配置的方法实例
2021/10/15 MySQL