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 相关文章推荐
Locate a File Using a File Open Dialog Box
Jun 18 Javascript
浅谈javascript的原型继承
Jul 25 Javascript
JS自定义功能函数实现动态添加网址参数修改网址参数值
Aug 02 Javascript
JavaScript实现简单Tip提示框效果
Apr 20 Javascript
基于JS实现数字+字母+中文的混合排序方法
Jun 06 Javascript
JS定时器实现数值从0到10来回变化
Dec 09 Javascript
浅谈DOM的操作以及性能优化问题-重绘重排
Jan 08 Javascript
AngularJS通过ng-Img-Crop实现头像截取的示例
Aug 17 Javascript
Vue的elementUI实现自定义主题方法
Feb 23 Javascript
vue cli webpack中使用sass的方法
Feb 24 Javascript
使用Angular9和TypeScript开发RPG游戏的方法
Mar 25 Javascript
浅谈react路由传参的几种方式
Mar 23 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注入实例
2006/10/09 PHP
PHP中如何定义和使用常量
2013/02/28 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
非常经典的PHP文件上传类分享
2016/05/15 PHP
php+ajax实现带进度条的上传图片功能【附demo源码下载】
2016/09/14 PHP
javaScript arguments 对象使用介绍
2013/10/18 Javascript
JavaScript事件委托的技术原理探讨示例
2014/04/17 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
JavaScript闭包详解
2015/02/02 Javascript
jQuery实现仿Alipay支付宝首页全屏焦点图切换特效
2015/05/04 Javascript
学习使用AngularJS文件上传控件
2016/02/16 Javascript
Bootstrap富文本组件wysiwyg数据保存到mysql的方法
2016/05/09 Javascript
AngulerJS学习之按需动态加载文件
2017/02/13 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
微信小程序 (地址选择1)--选取搜索地点并显示效果
2019/12/17 Javascript
JS代码检查工具ESLint介绍与使用方法
2020/02/04 Javascript
react结合bootstrap实现评论功能
2020/05/30 Javascript
[03:20]2015国际邀请赛全明星表演赛
2015/08/08 DOTA
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
关于python的list相关知识(推荐)
2017/08/30 Python
Python将文本去空格并保存到txt文件中的实例
2018/07/24 Python
Pycharm中Python环境配置常见问题解析
2020/01/16 Python
Python Scrapy图片爬取原理及代码实例
2020/06/12 Python
Python调用C/C++的方法解析
2020/08/05 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
canvas基础之图形验证码的示例
2018/01/02 HTML / CSS
欧铁通票官方在线销售网站:Eurail.com
2017/10/14 全球购物
美国肌肉和力量商店:Muscle & Strength
2019/06/22 全球购物
法人单位授权委托书范文
2014/10/06 职场文书
单位法人授权委托书范本
2014/10/09 职场文书
2014财务部年度工作总结
2014/12/08 职场文书
交警失职检讨书
2015/01/26 职场文书
2016年小学六一儿童节活动总结
2016/04/06 职场文书
css3属性选择器 “~”(波浪号) “,”(逗号) “+”(加号)和 “>”(大于号)
2022/04/19 HTML / CSS
Docker容器harbor私有仓库部署和管理
2022/08/05 Servers