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 相关文章推荐
ExtJS 设置级联菜单的默认值
Jun 13 Javascript
Js基础学习资料
Nov 23 Javascript
node.js集成百度UE编辑器
Feb 05 Javascript
详解JavaScript ES6中的模板字符串
Jul 28 Javascript
js获取当前日期时间及其它日期操作汇总
Mar 08 Javascript
BootStrap响应式导航条实例介绍
May 06 Javascript
JavaScript数据结构链表知识详解
Nov 21 Javascript
Vue.js双向绑定操作技巧(初级入门)
Dec 27 Javascript
TypeScript入门-基本数据类型
Mar 28 Javascript
微信小程序商城项目之淘宝分类入口(2)
Apr 17 Javascript
微信小程序点击item使之滚动到屏幕中间位置
Mar 25 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
Oct 29 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的Yii框架中的缓存功能
2016/03/29 PHP
PHP简单获取上月、本月、近15天、近30天的方法示例
2017/07/03 PHP
PHP递归遍历文件夹去除注释并压缩php源代码的方法示例
2018/05/23 PHP
PHP设计模式之观察者模式定义与用法示例
2018/08/04 PHP
使用Zookeeper分布式部署PHP应用程序
2019/03/15 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
laravel框架实现去掉URL中index.php的方法
2019/10/12 PHP
js变量作用域及可访问性的探讨
2006/11/23 Javascript
javascript中动态加载js文件多种解决办法总结
2013/11/15 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
js简易版购物车功能
2017/06/17 Javascript
探究react-native 源码的图片缓存问题
2017/08/24 Javascript
js中实例与对象的区别讲解
2019/01/21 Javascript
[31:33]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第一场
2014/05/23 DOTA
python实现壁纸批量下载代码实例
2018/01/25 Python
Python使用分布式锁的代码演示示例
2018/07/30 Python
python循环定时中断执行某一段程序的实例
2019/06/29 Python
Django 在iframe里跳转顶层url的例子
2019/08/21 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
python获取响应某个字段值的3种实现方法
2020/04/30 Python
Python RabbitMQ实现简单的进程间通信示例
2020/07/02 Python
详解python方法之绑定方法与非绑定方法
2020/08/17 Python
css3实例教程 一款纯css3实现的发光屏幕旋转特效
2014/12/07 HTML / CSS
CSS3实现滚动条动画效果代码分享
2016/08/03 HTML / CSS
SmartBuyGlasses台湾:名牌眼镜,名牌太阳眼镜及隐形眼镜
2017/01/04 全球购物
L’Artisan Parfumeur官网:法国香水品牌
2020/08/11 全球购物
普通院校学生的自荐信
2013/11/27 职场文书
暑期社会实践学生的自我评价
2014/01/09 职场文书
皇城相府导游词
2015/02/06 职场文书
2015学校年度工作总结
2015/05/11 职场文书
2015年大学迎新晚会总结
2015/07/16 职场文书
2016年119消防宣传日活动总结
2016/04/05 职场文书
Flutter集成高德地图并添加自定义Maker的实践
2022/04/07 Java/Android