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的内存泄漏
Mar 04 Javascript
js 判断控件获得焦点的示例代码
Mar 04 Javascript
jQuery中事件与动画的总结分享
May 24 Javascript
浅析JavaScript中var that=this
Feb 17 Javascript
详解Vue 普通对象数据更新与 file 对象数据更新
Apr 26 Javascript
解决ztree搜索中多级菜单展示不全问题
Jul 05 Javascript
Javascript实现跨域后台设置拦截的方法详解
Aug 04 Javascript
Vue使用watch监听一个对象中的属性的实现方法
May 10 Javascript
微信小程序中如何计算距离某个节日还有多少天
Jul 15 Javascript
Javascript执行流程细节原理解析
May 14 Javascript
javascript canvas封装动态时钟
Sep 30 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新手上路(十四)
2006/10/09 PHP
php目录操作实例代码
2014/02/21 PHP
PHP数组操作实例分析【添加,删除,计算,反转,排序,查找等】
2016/12/24 PHP
php 如何设置一个严格控制过期时间的session
2017/05/05 PHP
PHP实现redis限制单ip、单用户的访问次数功能示例
2018/06/16 PHP
IE中jscript/javascript的条件编译
2006/09/07 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
jsTree树控件(基于jQuery, 超强悍)[推荐]
2009/09/01 Javascript
10个实用的脚本代码工具
2010/05/04 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
jQuery.prop() 使用详解
2015/07/19 Javascript
jquery实现点击展开列表同时隐藏其他列表
2015/08/10 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
jQuery1.9.1源码分析系列(十六)ajax之ajax框架
2015/12/04 Javascript
Bootstrap每天必学之级联下拉菜单
2016/03/27 Javascript
vue2.0在table中实现全选和反选的示例代码
2017/11/04 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
vue 配置多页面应用的示例代码
2018/10/22 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
vue实现表格过滤功能
2019/09/27 Javascript
vue中element 的upload组件发送请求给后端操作
2020/09/07 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
js正则表达式简单校验方法
2021/01/03 Javascript
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
Python通过kerberos安全认证操作kafka方式
2020/06/06 Python
美国棒球装备和用品商店:Baseball Savings
2018/06/09 全球购物
兼职业务员岗位职责
2014/01/01 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
2014新年元旦活动策划方案
2014/02/18 职场文书
综艺节目策划方案
2014/06/13 职场文书
英文诗歌翻译方法(赏析)
2019/08/16 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
OpenCV图像变换之傅里叶变换的一些应用
2021/07/26 Python
linux下安装redis图文详细步骤
2021/12/04 Redis
mysql 获取时间方式
2022/03/20 MySQL