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验证手机号码、邮箱格式是否正确示例代码
Jul 28 Javascript
基于JQuery实现的图片自动进行缩放和裁剪处理
Jan 31 Javascript
jquery 实现input输入什么div图层显示什么
Jun 15 Javascript
JavaScript sup方法入门实例(把字符串显示为上标)
Oct 20 Javascript
javascript图片预加载实例分析
Jul 16 Javascript
jQuery AJAX timeout 超时问题详解
Jun 21 Javascript
angularjs实现上拉加载和下拉刷新数据功能
Jun 12 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
Oct 26 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
Jul 05 Javascript
对于防止按钮重复点击的尝试详解
Apr 22 Javascript
Vue数字输入框组件示例代码详解
Jan 15 Javascript
如何使用jQuery操作Cookies方法解析
Sep 08 jQuery
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/12/06 PHP
PHP中substr_count()函数获取子字符串出现次数的方法
2016/01/07 PHP
ThinkPHP中html:list标签用法分析
2016/01/09 PHP
Zend Framework缓存Cache用法简单实例
2016/03/19 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
JavaScript调用堆栈及setTimeout使用方法深入剖析
2013/02/16 Javascript
JQuery加载图片自适应固定大小的DIV
2013/09/12 Javascript
Js实现手机发送验证码时按钮延迟操作
2014/06/20 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
js库Modernizr的介绍和使用
2015/05/07 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
nginx部署访问vue-cli搭建的项目的方法
2018/02/12 Javascript
JavaScript实现图片放大镜效果
2019/06/27 Javascript
JavaScript HTML DOM元素 节点操作汇总
2019/07/29 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
linux 下实现python多版本安装实践
2014/11/18 Python
Python实现爬取逐浪小说的方法
2015/07/07 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
Python之time模块的时间戳,时间字符串格式化与转换方法(13位时间戳)
2019/08/12 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
keras使用Sequence类调用大规模数据集进行训练的实现
2020/06/22 Python
python 逆向爬虫正确调用 JAR 加密逻辑
2021/01/12 Python
Python使用Turtle模块绘制国旗的方法示例
2021/02/28 Python
IE兼容css3圆角的实现代码
2011/07/21 HTML / CSS
Columbia美国官网:美国著名的户外服装品牌
2016/11/24 全球购物
jurlique茱莉蔻英国官网:澳洲天然护肤品
2018/08/03 全球购物
犹他州最古老的体育用品公司:Al’s
2020/12/18 全球购物
我的applet原先好好的, 一放到web server就会有问题,为什么?
2016/05/10 面试题
MYSQL相比于其他数据库有哪些特点
2013/07/19 面试题
办公室文秘自我鉴定
2013/09/21 职场文书
自我检讨书范文
2015/01/28 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
Vue3.0写自定义指令的简单步骤记录
2021/06/27 Vue.js
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技
vue项目如何打包之项目打包优化(让打包的js文件变小)
2022/04/30 Vue.js