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 相关文章推荐
JQuery为textarea添加maxlength属性并且兼容IE
Apr 25 Javascript
JavaScript禁止页面操作的示例代码
Dec 17 Javascript
JQuery中使用Ajax赋值给全局变量失败异常的解决方法
Aug 18 Javascript
JavaScript SweetAlert插件实现超酷消息警告框
Jan 28 Javascript
详解JavaScript中this关键字的用法
May 26 Javascript
jQuery查看选中对象HTML代码的方法
Jun 17 Javascript
JavaScript中return用法示例
Nov 29 Javascript
jQuery自动或手动图片切换效果
Oct 11 jQuery
微信小程序页面间跳转传参方式总结
Jun 13 Javascript
JS设置自定义快捷键并实现图片上下左右移动
Oct 17 Javascript
js实现随机div颜色位置 类似满天星效果
Oct 24 Javascript
JS不要再到处使用绝对等于运算符了
Apr 30 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
PHPMailer邮件发送的实现代码
2013/05/04 PHP
浅析php学习的路线图
2013/07/10 PHP
9条PHP编程小知识及易犯的小错误
2015/01/22 PHP
PHP实现文件上传与下载实例与总结
2016/03/13 PHP
Yii2.0建立公共方法简单示例
2019/01/29 PHP
Mootools 1.2教程 同时进行多个形变动画
2009/09/15 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
Node.js插件的正确编写方式
2014/08/03 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
[原创]JavaScript语法高亮插件highlight.js用法详解【附highlight.js本站下载】
2016/11/01 Javascript
nodejs和C语言插入mysql数据库乱码问题的解决方法
2017/04/14 NodeJs
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
详解如何用typescript开发koa2的二三事
2018/11/13 Javascript
vue实现PC端录音功能的实例代码
2019/06/05 Javascript
微信小程序网络请求实现过程解析
2019/11/06 Javascript
Javascript如何实现双指控制图片功能
2020/02/25 Javascript
vue 在服务器端直接修改请求的接口地址
2020/12/19 Vue.js
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
Python备份Mysql脚本
2008/08/11 Python
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
python实现画一颗树和一片森林
2018/06/25 Python
Python单元测试与测试用例简析
2019/11/09 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
自我鉴定书面格式
2014/01/13 职场文书
促销活动总结
2014/04/28 职场文书
民主生活会剖析材料
2014/09/30 职场文书
2014年度个人工作总结
2014/11/07 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
2015年度酒店客房部工作总结
2015/05/25 职场文书
简爱电影观后感
2015/06/10 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
浅谈vue2的$refs在vue3组合式API中的替代方法
2021/04/18 Vue.js