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 相关文章推荐
javascript 检测浏览器类型和版本的代码
Sep 15 Javascript
jquery.messager.js插件导致页面抖动的解决方法
Jul 14 Javascript
javascript中的遍历for in 以及with的用法
Dec 22 Javascript
jQuery使用fadein方法实现渐出效果实例
Mar 27 Javascript
JavaScript实现非常简单实用的下拉菜单效果
Aug 27 Javascript
浅谈html转义及防止javascript注入攻击的方法
Dec 04 Javascript
vue引入axios同源跨域问题
Sep 27 Javascript
JavaScript继承的特性与实践应用深入详解
Dec 30 Javascript
vue-router命名视图的使用讲解
Jan 19 Javascript
vuex+axios+element-ui实现页面请求loading操作示例
Feb 02 Javascript
如何配置vue.config.js 处理static文件夹下的静态文件
Jun 19 Javascript
JS常用跨域方法实现原理解析
Dec 09 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
PHP GD库生成图像的几个函数总结
2014/11/19 PHP
jQuery之网页换肤实现代码
2011/04/30 Javascript
js捕获鼠标右键菜单中的粘帖事件实现代码
2013/04/01 Javascript
jQuery实现密保互斥问题解决方案
2013/08/16 Javascript
用JavaScript判断CSS浏览器类型前缀的两种方法
2015/10/08 Javascript
Javascript模仿淘宝信用评价实例(附源码)
2015/11/26 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
vue.js的安装方法
2017/05/12 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
vue 设置路由的登录权限的方法
2018/07/03 Javascript
jQuery无冲突模式详解
2019/01/17 jQuery
jquery分页优化操作实例分析
2019/08/23 jQuery
[40:01]OG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python解决字典中的值是列表问题的方法
2013/03/04 Python
Python2中的raw_input() 与 input()
2015/06/12 Python
python中退出多层循环的方法
2018/11/27 Python
python将一个英文语句以单词为单位逆序排放的方法
2018/12/20 Python
简单了解Django ContentType内置组件
2019/07/23 Python
spyder 在控制台(console)执行python文件,debug python程序方式
2020/04/20 Python
接口自动化多层嵌套json数据处理代码实例
2020/11/20 Python
Python抖音快手代码舞(字符舞)的实现方法
2021/02/07 Python
金山毒霸系列的笔试题
2013/04/13 面试题
护士自我鉴定总结
2014/03/24 职场文书
小学二年级评语
2014/04/21 职场文书
学校与家长安全责任书
2014/07/23 职场文书
顶岗实习计划书
2015/01/16 职场文书
故宫英文导游词
2015/01/31 职场文书
网吧员工管理制度
2015/08/05 职场文书
意外事故赔偿协议书
2016/03/22 职场文书
古诗之感恩老师
2019/10/24 职场文书
PostgreSQL通过oracle_fdw访问Oracle数据的实现步骤
2021/05/21 PostgreSQL
浅谈MySQL表空间回收的正确姿势
2021/10/05 MySQL
Apache Hudi集成Spark SQL操作hide表
2022/03/31 Servers
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python