js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)


Posted in Javascript onJanuary 19, 2016

本文实例介绍了js实现图片轮播相册,具有过渡渐变效果,分享给大家供大家参考,具体内容如下

思路很简单,用2个属性保存当前图片和上一张图片,用2个定时器分别控制透明度和当前过渡的图片。

<HTML> 
<HEAD> 
<TITLE></TITLE> 
</HEAD> 
<style> 
#cnt{width:100%;height:80%;} 
.ctrl{text-align:center;border:1px solid gray;font-size:12px;cursor:pointer;} 
</style> 
<script defer='defer'> 
<!-- 
  var curOpac = 0; 
  var filterTimer; 
  var isIE = /internet explorer/i.test(window.navigator.appName); 
   
  function MyScroll(cnt, control){ 
    this.data = []; // 存放图片路径 
    this.interval = 3000; // 过渡一次的间隔时间(过渡时间+图片显示时间) 
    this.timer; // 定时器:控制当前显示的图片 
    this.container = cnt; 
    this.curFrame = 0; 
    this.oldFrame = 0; 
    this.controls = control; // 按钮集合 
    Global = this;     // 获取对象的指针 
 
    this.run = function(){ 
      this.timer = window.setInterval("Global.showFrame()", this.interval); 
    } 
     
    // 按钮的处理程序 
    this.go = function(i){ 
      curOpac = 0; // 透明度归0 
      this.curFrame = i; // 当前要过渡的图片 
      this.stop(); // 清空计时器 
      this.showFrame(); // 当前图片过渡 
      this.run(); // 循环播放 
    } 
     
    this.stop = function(){ 
      window.clearInterval(this.timer); 
      window.clearInterval(filterTimer); 
    } 
 
    this.showFrame = function(){ 
      // 设置当前按钮样式 
      this.controls[this.oldFrame].style.backgroundColor = "white"; 
      this.controls[this.curFrame].style.backgroundColor = "gray"; 
 
      if(isIE) this.container.style.filter = "alpha(opacity=0)"; 
      else this.container.style.cssText = "-moz-opacity:0"; 
 
      this.container.innerHTML = this.data[this.curFrame]; 
      filterTimer = window.setInterval("blend()", 100); 
       
      this.oldFrame = this.curFrame; 
      this.curFrame ++; 
      if(this.curFrame == this.data.length){ 
        this.curFrame = 0; 
      }       
    } 
  } 
   // 增加透明度 
  function blend(){ 
    curOpac+=10; 
    if(isIE) Global.container.style.filter='alpha(opacity=' + curOpac + ')'; 
    else Global.container.style.cssText = "-moz-opacity:" + curOpac/100.0; 
 
    if(curOpac == 100){ 
      curOpac = 0; 
      window.clearInterval(filterTimer); 
    } 
  } 
  //开始 
   
  function startIt(){ 
    var imgArr = []; 
    // 创建4个图片对象保存图片路径 
    for(var i=0;i<4;i++){ 
      imgArr[i] = new Image(); 
      imgArr[i].src = "images/banner" + (i + 1) + ".jpg"; 
    } 
     
    var controlArr = $("mainTb").getElementsByTagName("span"); 
    for(var i=0;i<controlArr.length;i++){ 
      controlArr[i].tag = i; 
      controlArr[i].onclick = function(){ 
        myScroll.go(this.tag); 
      } 
    } 
 
    var myScroll = new MyScroll($("cnt"), controlArr); 
    myScroll.data.push("<img src='" + imgArr[0].src + "'>"); 
    myScroll.data.push("<img src='" + imgArr[1].src + "'>"); 
    myScroll.data.push("<img src='" + imgArr[2].src + "'>"); 
    myScroll.data.push("<img src='" + imgArr[3].src + "'>"); 
     
    myScroll.go(0); 
  } 
   
  window.onload = startIt; 
 
  function $(id){ return document.getElementById(id);} 
//--> 
</script> 
<BODY> 
<table width="300" height="100" id="mainTb"> 
  <tr> 
  <th rowspan="4"><div id="cnt"> </div></td> 
  <td width="15"><span class="ctrl"> 1 </span></td> 
  </tr> 
  <tr> 
  <td><span class="ctrl"> 2 </span></td> 
  </tr> 
  <tr> 
  <td><span class="ctrl"> 3 </span></td> 
  </tr> 
  <tr> 
  <td><span class="ctrl"> 4 </span></td> 
  </tr> 
</table> 
</BODY> 
</HTML>

以上就是本文的全部内容,希望对大家学习javascript程序设计有所帮助。

Javascript 相关文章推荐
让textarea控件的滚动条怎是位与最下方
Apr 20 Javascript
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
Nov 28 Javascript
学习并汇集javascript匿名函数
Nov 25 Javascript
js变量以及其作用域详解
Jul 18 Javascript
jquery使用animate方法实现控制元素移动
Mar 27 Javascript
JS实现控制表格内指定单元格内容对齐的方法
Mar 30 Javascript
Bootstrap基本组件学习笔记之导航(10)
Dec 07 Javascript
探索Javascript中this的奥秘
Dec 11 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
Mar 24 Javascript
基于axios封装fetch方法及调用实例
Feb 05 Javascript
javaScript实现鼠标在文字上悬浮时弹出悬浮层效果
Apr 12 Javascript
适合后台管理系统开发的12个前端框架(小结)
Jun 29 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
Jan 19 #Javascript
学习JavaScript设计模式之享元模式
Jan 18 #Javascript
纯JavaScript基于notie.js插件实现消息提示特效
Jan 18 #Javascript
学习JavaScript设计模式之责任链模式
Jan 18 #Javascript
深入学习jQuery Validate表单验证(二)
Jan 18 #Javascript
深入学习jQuery Validate表单验证
Jan 18 #Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
Jan 18 #Javascript
You might like
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
PHP抽奖算法程序代码分享
2015/10/08 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
PHP基于关联数组20行代码搞定约瑟夫问题示例
2017/11/07 PHP
jQuery+CSS 实现的超Sexy下拉菜单
2010/01/17 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
jQuery下实现等待指定元素加载完毕(可改成纯js版)
2013/07/11 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
详解JavaScript中|单竖杠运算符的使用方法
2016/05/23 Javascript
使用vue编写一个点击数字计时小游戏
2016/08/31 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
javascript获取图片的top N主色值方法详解
2018/01/26 Javascript
详解VUE自定义组件中用.sync修饰符与v-model的区别
2018/06/26 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
JS实现盒子拖拽效果
2020/02/06 Javascript
python获取图片颜色信息的方法
2015/03/18 Python
一些Python中的二维数组的操作方法
2015/05/02 Python
python os.path.isfile()因参数问题判断错误的解决
2019/11/29 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
django有哪些好处和优点
2020/09/01 Python
前端制作动画的几种方式(css3,js)
2016/12/12 HTML / CSS
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
Pureology官网:为染色头发打造最好的产品
2019/09/13 全球购物
个人找工作自荐信格式
2013/09/21 职场文书
入党自我评价优缺点
2014/01/25 职场文书
查摆问题对照检查材料
2014/08/28 职场文书
创先争优活动党员公开承诺书
2014/08/29 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
少先队辅导员事迹材料
2014/12/24 职场文书
新员工入职欢迎词
2015/01/23 职场文书
离婚协议书范本
2015/01/26 职场文书
起诉状范本
2015/05/20 职场文书
银行服务理念口号
2015/12/25 职场文书
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL