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入门·图片对象(无刷新变换图片)\滚动图像
Oct 01 Javascript
jquery 学习之二 属性(html()与html(val))
Nov 25 Javascript
js 火狐下取本地路径实现思路
Apr 02 Javascript
JS随机生成不重复数据的实例方法
Jul 17 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
Sep 09 Javascript
javascript宿主对象之window.navigator详解
Sep 07 Javascript
JavaScript解析JSON格式数据的方法示例
Jan 24 Javascript
js的OOP继承实现(必看篇)
Feb 18 Javascript
vue.js开发环境安装教程
Mar 17 Javascript
bootstrap multiselect下拉列表功能
Aug 22 Javascript
jQuery实现简单聊天室
Feb 08 jQuery
javascript设计模式 ? 桥接模式原理与应用实例分析
Apr 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字符串处理的10个简单方法
2010/06/30 PHP
php数组函数序列之in_array() 查找数组值是否存在
2011/10/29 PHP
基于PHP服务端图片生成缩略图的方法详解
2013/06/20 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
JavaScript 学习笔记之一jQuery写法图片等比缩放以及预加载
2012/06/28 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
指定区域的图片自动按比例缩小的js代码(防止页面被图片撑破)
2014/02/21 Javascript
js调试系列 初识控制台
2014/06/18 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
javascript this详细介绍
2016/09/19 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
jQuery实现鼠标移到某个对象时弹出显示层功能
2018/08/23 jQuery
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Flask解决跨域的问题示例代码
2018/02/12 Python
Django框架 querySet功能解析
2019/09/04 Python
PyQt5 closeEvent关闭事件退出提示框原理解析
2020/01/08 Python
python sklearn包——混淆矩阵、分类报告等自动生成方式
2020/02/28 Python
ALDO英国官网:加拿大女鞋品牌
2018/02/19 全球购物
Yummie官方网站:塑身衣和衣柜必需品
2019/10/29 全球购物
学雷锋树新风演讲稿
2014/05/10 职场文书
运动会口号8字
2014/06/07 职场文书
机关党员公开承诺书
2014/08/30 职场文书
学校领导班子对照检查材料
2014/09/24 职场文书
体育个人工作总结
2015/02/09 职场文书
党员评议自我评价
2015/03/03 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
2015年人事科工作总结
2015/04/28 职场文书
2016年3月份红领巾广播稿
2015/12/21 职场文书
应届生个人的求职(自荐信范文2篇)
2019/08/23 职场文书
Vue实现tab导航栏并支持左右滑动功能
2021/06/28 Vue.js