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实现的完美渐变弹出层效果代码
Apr 02 Javascript
动态显示可输入的字数提示还可以输入的字数
Apr 01 Javascript
js获取Get值的方法
Sep 29 Javascript
微信小程序 特效菜单抽屉效果实例代码
Jan 11 Javascript
node安装--linux下的快速安装教程
Mar 21 Javascript
简述jQuery Easyui一些用法
Aug 01 jQuery
详解react-router4 异步加载路由两种方法
Sep 12 Javascript
JavaScript屏蔽Backspace键的实现代码
Nov 02 Javascript
JS加密插件CryptoJS实现的Base64加密示例
Aug 16 Javascript
对vux点击事件的优化详解
Aug 28 Javascript
微信小程序实现图片压缩
Dec 03 Javascript
vue实现导航菜单和编辑文本的示例代码
Jul 04 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
The specified CGI application misbehaved by not returning a complete set of HTTP headers
2011/03/31 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
PHP中使用asort进行中文排序失效的问题处理
2014/08/18 PHP
28个JS验证函数收集
2010/03/02 Javascript
jquery 单击li防止重复加载的实现代码
2010/12/24 Javascript
jquery动画1.加载指示器
2012/08/24 Javascript
jquery zTree异步加载简单实例分享
2013/02/05 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
多引号嵌套的变量命名的问题
2014/05/09 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
javascript实现数字配对游戏的实例讲解
2017/12/14 Javascript
python简单实现基数排序算法
2015/05/16 Python
Python编程之字符串模板(Template)用法实例分析
2017/07/22 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
python+opencv实现动态物体追踪
2018/01/09 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
Django-xadmin+rule对象级权限的实现方式
2020/03/30 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
2020/04/01 Python
解决python运行启动报错问题
2020/06/01 Python
python 删除系统中的文件(按时间,大小,扩展名)
2020/11/19 Python
春节活动策划方案
2014/01/24 职场文书
文体活动实施方案
2014/03/27 职场文书
母亲节演讲稿
2014/05/27 职场文书
市场营销工作计划书
2014/09/15 职场文书
保安2014年终工作总结
2014/12/06 职场文书
冰峪沟导游词
2015/02/09 职场文书
明确岗位职责
2015/02/14 职场文书
教师考核鉴定意见
2015/06/05 职场文书
装修公司管理制度
2015/08/05 职场文书
新学期主题班会
2015/08/17 职场文书
《比尾巴》教学反思
2016/02/24 职场文书
分享mysql的current_timestamp小坑及解决
2021/11/27 MySQL
Python字符串常规操作小结
2022/04/03 Python