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 去字符串空格终极版(支持utf8)
Nov 14 Javascript
ajax上传时参数提交不更新等相关问题
Dec 11 Javascript
如何制作浮动广告 JavaScript制作浮动广告代码
Dec 30 Javascript
Jquery倒数计时按钮setTimeout的实例代码
Jul 04 Javascript
jquery事件与函数的使用介绍
Sep 29 Javascript
ie浏览器使用js导出网页到excel并打印
Mar 11 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
Apr 07 Javascript
JQuery CheckBox(复选框)操作方法汇总
Apr 15 Javascript
JS实现探测网站链接的方法【测试可用】
Nov 08 Javascript
vue技术分享之你可能不知道的7个秘密
Apr 09 Javascript
Angular2之二级路由详解
Aug 31 Javascript
使用webpack搭建vue项目实现脚手架功能
Mar 15 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数组函数序列之array_slice() - 在数组中根据条件取出一段值,并返回
2011/11/07 PHP
PHP执行批量mysql语句的解决方法
2013/05/02 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
php生成excel文件的简单方法
2014/02/08 PHP
Yii2针对指定url的生成及图片等的引入方法小结
2016/07/18 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
JS获取整个页面文档的实现代码
2011/12/15 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
jQuery产品间断向下滚动效果核心代码
2014/05/08 Javascript
小结Node.js中非阻塞IO和事件循环
2014/09/18 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
AngularJS中指令的四种基本形式实例分析
2016/11/22 Javascript
Angular 4依赖注入学习教程之组件服务注入(二)
2017/06/04 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
vue中导出Excel表格的实现代码
2018/10/18 Javascript
简单使用webpack打包文件的实现
2019/10/29 Javascript
JavaScript中继承原理与用法实例入门
2020/05/09 Javascript
微信小程序组件生命周期的踩坑记录
2021/03/03 Javascript
编写简单的Python程序来判断文本的语种
2015/04/07 Python
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
利用python获取某年中每个月的第一天和最后一天
2016/12/15 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
python实现决策树分类(2)
2018/08/30 Python
如何利用Pyecharts可视化微信好友
2019/07/04 Python
Python collections模块使用方法详解
2019/08/28 Python
python os.path.isfile 的使用误区详解
2019/11/29 Python
使用python检查yaml配置文件是否符合要求
2020/04/09 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
HTML5自定义data-* data(obj)属性和jquery的data()方法的使用
2012/12/13 HTML / CSS
雅高酒店中国:Accorhotels.com China
2018/03/26 全球购物
如何开启linux的ssh服务
2015/02/14 面试题
工作会议欢迎词
2014/01/16 职场文书
林肯就职演讲稿
2014/05/19 职场文书
2014年德育工作总结
2014/11/20 职场文书
Python 循环读取数据内存不足的解决方案
2021/05/25 Python
制作能在nginx和IIS中使用的ssl证书
2021/06/21 Servers