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+css实现图片滚动效果(附源码)
Mar 18 Javascript
js文本框输入点回车触发确定兼容IE、FF等
Nov 19 Javascript
node.js中的path.delimiter方法使用说明
Dec 09 Javascript
node.js中使用socket.io的方法
Dec 15 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
Aug 28 Javascript
javascript-解决mongoose数据查询的异步操作
Dec 22 Javascript
基于JavaScript实现的折半查找算法示例
Apr 14 Javascript
微信小程序使用input组件实现密码框功能【附源码下载】
Dec 11 Javascript
JS中原始值和引用值的储存方式示例详解
Mar 23 Javascript
javascript实现图片轮换动作方法
Aug 07 Javascript
JavaScript事件委托实现原理及优点进行
Aug 29 Javascript
原生Js 实现的简单无缝滚动轮播图的示例代码
May 10 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 mysql数据库操作类
2008/06/04 PHP
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
PHP实现简单的新闻发布系统实例
2015/07/28 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
php微信公众号开发之快递查询
2018/10/20 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
用javascript动态调整iframe高度的代码
2007/04/10 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
2013/11/06 Javascript
JQuery与JS里submit()的区别示例介绍
2014/02/17 Javascript
100个不能错过的实用JS自定义函数
2014/03/05 Javascript
JavaScript严格模式详解
2015/11/18 Javascript
JS实现字符串转日期并比较大小实例分析
2015/12/09 Javascript
基于jQuery Tipso插件实现消息提示框特效
2016/03/16 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
Vue中使用create-keyframe-animation与动画钩子完成复杂动画
2019/04/09 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
centos系统升级python 2.7.3
2014/07/03 Python
python统计文本文件内单词数量的方法
2015/05/30 Python
利用python编写一个图片主色转换的脚本
2017/12/07 Python
python删除过期log文件操作实例解析
2018/01/31 Python
Python面向对象进阶学习
2019/05/21 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
Python批量删除mysql中千万级大量数据的脚本分享
2020/12/03 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
城管大队整治方案
2014/05/06 职场文书
媒矿安全生产承诺书
2014/05/23 职场文书
服务明星事迹材料
2014/12/29 职场文书
小学家长意见怎么写
2015/06/03 职场文书
2015年国庆放假通知范文
2015/08/18 职场文书
2016年情人节问候语
2015/11/11 职场文书
小学中队委竞选稿
2015/11/20 职场文书
记一次Mysql不走日期字段索引的原因小结
2021/10/24 MySQL