JavaScript实现图片轮播的方法


Posted in Javascript onJuly 31, 2015

本文实例讲述了JavaScript实现图片轮播的方法。分享给大家供大家参考。具体如下:

这里没有使用到JQUERY,没有过渡效果,图片可自行替换 。

test2.html页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="http://lib.sinaapp.com/js/jquery/1.9.1/jquery-1.9.1.min.js"></script>
<style>
.img-div img{display:none;}
</style>
</head>
<body>
<div class="slide" id="slide">
<div class="img-div">
 <img src="model.jpg" />
 <img src="model2.jpg" />
 <img src="model.jpg" />
 <img src="model2.jpg" />
 <img src="model.jpg" />
</div>
<div class="slide-btn">
<a href="#" class="hover">1</a>
<a href="#" class="hover">2</a>
<a href="#" class="hover">3</a>
<a href="#" class="hover">4</a>
<a href="#" class="hover">5</a>
</div>
</div>
<script type="text/javascript">
var zBase=
{
 $id:function(id){return document.getElementById(id);},
 $tagName:function(tagName,obj){return ((obj?obj:document).getElementsByTagName(tagName));},
 $c:function(clsN,obj)
 {
 var tag=this.$tagName('*'),reg=new RegExp('(^|\\s)'+clsN+'(\\s|$)'),arr=[];
 for(var i=0;i<tag.length;i++)
 {
  if(reg.test(tag[i].className))
  {
  arr.push(tag[i]); 
  } 
 }
 return arr;
 },
 $add:function(obj,clsN)
 {
 var reg=new RegExp('(^|\\s)'+clsN+'(\\s|$)');
 if(!reg.test(obj.className))
 {
  obj.className+=' '+clsN; 
 } 
 },
 $remove:function(obj,clsN)
 {
 var cla=obj.className;
 var reg='/|\\s*'+clsN+'\\b/g';
 obj.className=cla?cla.replace(eval(reg),''):''; 
 },
 css:function(obj,attr,value)
 {
 if(value)
 {
  obj.style[attr]=value; 
 } 
 else
 {
  return typeof window.getComputedStyle!="undefined"?window.getComputedStyle(obj,null)[attr]:obj.currentStyle[attr]; 
 }
 },
 easing:
 {
  liner:function(t,b,c,d){return c*t/d+b},
  easeOut:function(t,b,c,d){return -c*((t=t/d-1)*t*t*t-1)+b}
 },
 config:
 {
  index:0,
  auto:true,
  direct:'left' 
 },
 init:function()
 {
  this.slide=this.$id('slide');
  this.img_div=this.$c('img-div')[0];
  this.slide_btn=this.$tagName('a',this.$c('slide-btn')[0]);
  this.img_arr=this.$tagName('img',this.img_div);
  if(this.config.auto){this.play();}
  this.hover();
 },
 animate:function(obj,attr,val)
 {
  var d=1000;
  if(obj[attr+"timer"]){clearInterval(obj[attr+"timer"])};
  var start= parseInt(zBase.css(obj,attr));
  var space=val-start,st=(new Date().getTime()),m=space>0?'cell':'floor';
  obj[attr+'timer']=setInterval(function(){
  var t=(new Date().getTime()-st);
  if(t<d)
  {
   zBase.css(obj,attr,Math[m](zBase.easing["easeOut"](t,start,space,d))+"px");
  }
  else
  {
   clearInterval(obj[attr+'timer']);
   zBase.css(obj,attr,top+space+"px");
  }  
  },20);
 },
 hover:function()
  {
  for(var i=0;i<this.slide_btn.length;i++)
  {
   this.slide_btn[i].index=i;
   this.slide_btn[i].onmouseover=function()
   {
   if(zBase.slide.timer)
   {
    clearInterval(zBase.slide.timer); 
   } 
   zBase.config.index=this.index;
   //console.log(this.slide_btn);
   for(var j=0;j<zBase.slide_btn.length;j++)
   {
    zBase.$remove(zBase.slide_btn[j],'hover');
   }
   zBase.$add(zBase.slide_btn[zBase.config.index],'hover');
   zBase.animate(zBase.img_div,zBase.config.direct,-zBase.config.index*1000);
   }
   this.slide_btn[i].onmouseout=function()
   {
   zBase.play(); 
   }
  }
  },
  play:function(){
  this.slide.timer = setInterval(function(){
   var tags=zBase.$tagName('img',this.img_div);
   //zBase.$tagName('img',this.img_div)[zBase.config.index].style.display="block";
   for(var i =0;i<tags.length;i++)
   {
   if(zBase.config.index==i)
   {
   zBase.$tagName('img',this.img_div)[zBase.config.index].style.display="block";
   } 
   else
   {
   zBase.$tagName('img',this.img_div)[i].style.display="none"; 
   }
   }
   zBase.config.index++;
   if(zBase.config.index>=zBase.img_arr.length) zBase.config.index=0;
   zBase.animate(zBase.img_div,zBase.config.direct,-zBase.config.index*500);
   for(var j=0;j<zBase.slide_btn.length;j++){
   zBase.$remove(zBase.slide_btn[j],'hover') ;
   }
   zBase.$add(zBase.slide_btn[zBase.config.index],'hover');
  },3000)
  }
}
 zBase.init();
</script>
 </body>
</html>

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
一个高效的JavaScript压缩工具下载集合
Mar 06 Javascript
DOM基础教程之使用DOM控制表单
Jan 20 Javascript
javascript中eval和with用法实例总结
Nov 30 Javascript
微信小程序下拉刷新界面的实现
Sep 28 Javascript
webpack4之SplitChunksPlugin使用指南
Jun 12 Javascript
Vue中使用clipboard实现复制功能
Sep 05 Javascript
微信小游戏之使用three.js 绘制一个旋转的三角形
Jun 10 Javascript
vue-cli配置flexible过程详解
Jul 04 Javascript
vue 使用高德地图vue-amap组件过程解析
Sep 07 Javascript
改变layer confirm弹窗按钮的颜色方法
Sep 12 Javascript
js+canvas实现两张图片合并成一张图片的方法
Nov 01 Javascript
jQuery实现动态操作table行
Nov 23 jQuery
基于bootstrap3和jquery的分页插件
Jul 31 #Javascript
jquery-tips悬浮提示插件分享
Jul 31 #Javascript
javascript实现检验的各种规则
Jul 31 #Javascript
纯JS实现本地图片预览的方法
Jul 31 #Javascript
javascript动画算法实例分析
Jul 31 #Javascript
jquery实现手机号码选号的方法
Jul 31 #Javascript
javascript文本模板用法实例
Jul 31 #Javascript
You might like
封装一个PDO数据库操作类代码
2009/09/09 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
php的对象传值与引用传值代码实例讲解
2021/02/26 PHP
可以文本显示的公告栏的js代码
2007/03/11 Javascript
javascript 三种编解码方式
2010/02/01 Javascript
js跨域问题之跨域iframe自适应大小实现代码
2010/07/17 Javascript
ejs v9 javascript模板系统
2012/03/21 Javascript
js获取当前日期前七天的方法
2015/02/28 Javascript
javascript实现了照片拖拽点击置顶的照片墙代码
2015/04/03 Javascript
HTML5+setCutomValidity()函数验证表单实例分享
2015/04/24 Javascript
微信小程序 支付功能实现PHP实例详解
2017/05/12 Javascript
详解react-router4 异步加载路由两种方法
2017/09/12 Javascript
微信小程序支付之c#后台实现方法
2017/10/19 Javascript
layui 数据表格 点击分页按钮 监听事件的实例
2019/09/02 Javascript
探究一道价值25k的蚂蚁金服异步串行面试题
2020/08/21 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
使用python实现strcmp函数功能示例
2014/03/25 Python
python简单获取本机计算机名和IP地址的方法
2015/06/03 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
python逐行读写txt文件的实例讲解
2018/04/03 Python
Python中max函数用于二维列表的实例
2018/04/03 Python
python实现类之间的方法互相调用
2018/04/29 Python
python更改已存在excel文件的方法
2018/05/03 Python
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
2019/08/02 Python
Perfume’s Club德国官网:在线购买香水
2019/04/08 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
环境工程大学生个人的自我评价
2013/10/08 职场文书
新颖的化妆品活动方案
2014/08/21 职场文书
关于清明节的演讲稿
2014/09/13 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
公司员工体检通知
2015/04/21 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python
浅谈Python数学建模之整数规划
2021/06/23 Python
Springboot集成阿里云OSS上传文件系统教程
2021/06/28 Java/Android