JavaScript 图片变换效果(ie only)

来源:cloudgamer 时间:2010-01-20 12:40:00 

仿照常见的那个图片变换flash做的效果,纯js。不过滤镜变换只对应ie,ff只能看到一般的切换。这个js做的效果最早在sina看到,这里把这个效果封装好方便使用。

效果图:


 

程序说明:

图片未开始转换时,由于没有图片会显示一个红x,所以隐藏图片:


this._img.style.visibility = "hidden"; 

ps:以前我用this._img.src = "javascript:void(0);";但这个在ie8会出错。

这个变换效果需要滤镜,所以只支持ie。要使用变换滤镜,要先设置filter:


this._img.style.filter = "revealTrans()" 

变换之前先设置两个参数Transition和Duration,分别是变换效果和持续时间,其中Duration是浮点数。

此外还有两个属性Enabled和Percent分别是是否激活滤镜和当前静态滤镜输出在转换进程中所处的点。

设置完后还需要运行apply和play方法,分别是应用变换效果和运行效果:


with(this._img.filters.revealTrans){
    Transition = this.Transition; Duration = this.Duration; apply(); play();

除了这两个方法还有一个stop方法用来停止效果。

下面列出所有效果和对应Transition值(参考手册):
值 : 效果
0  : 矩形收缩转换。
1  : 矩形扩张转换。
2  : 圆形收缩转换。
3  : 圆形扩张转换。
4  : 向上擦除。
5  : 向下擦除。
6  : 向右擦除。
7  : 向左擦除。
8  : 纵向百叶窗转换。
9  : 横向百叶窗转换。
10 : 国际象棋棋盘横向转换。
11 : 国际象棋棋盘纵向转换。
12 : 随机杂点干扰转换。
13 : 左右关门效果转换。
14 : 左右开门效果转换。
15 : 上下关门效果转换。
16 : 上下开门效果转换。
17 : 从右上角到左下角的锯齿边覆盖效果转换。
18 : 从右下角到左上角的锯齿边覆盖效果转换。
19 : 从左上角到右下角的锯齿边覆盖效果转换。
20 : 从左下角到右上角的锯齿边覆盖效果转换。
21 : 随机横线条转换。
22 : 随机竖线条转换。
23 : 随机使用上面可能的值转换。

其中23比较特别,是随机效果,程序默认就是随机效果。

设置完滤镜效果后就修改图片的src就开始转换了。

然后设置链接:


!!list["url"] ? (this._a.href = list["url"]) : this._a.removeAttribute("href"); 

要注意的是这里用removeAttribute去掉a的href才能去掉链接,如果只设为空那么链接还是去不掉的。

使用说明:

首先要实例化一个对象:


var rvt = new RevealTrans("idPicShow"); 

idPicShow就是显示变换的容器对象。

有以下这些可选参数和属性:
属性:默认值//说明
Auto:  true,//是否自动切换
Pause:  1000,//停顿时间(微妙)
Duration: 1,//变换持续时间(秒)
Transition: 23,//变换效果(23为随机)
List:  [],//数据集合,如果这里不设置可以用Add方法添加
onShow:  function(){}//变换时执行

其中List是数据集合,其中每个元素结构是这样的:

{ img: 图片url, text: 相关文本, url: 相关链接 }


在使用时要注意,也可以在实例化之后用Add方法添加:


rvt.Add('http://images.cnblogs.com/cnblogs_com/cloudgamer/143727/r_rt_1.jpg', '图片变换效果', 'http://www.cnblogs.com/cloudgamer/archive/2008/05/23/1205642.html'); 

可以一个一个添加,这样方便后台用循环输出数据。

至于图片列表、按钮和文本显示区域是自己扩展的部分,详细请看实例。

全部设置完成后就可以用Start开始变换程序了:


rvt.Start(); 

标签:变换,切换,图片,JavaScript
0
投稿

猜你喜欢

  • 史上最好用的远程桌面工具(附源码)

    2022-12-28 12:08:28
  • 作符合用户体验的input输入框

    2008-01-10 12:21:00
  • Python机器学习应用之支持向量机的分类预测篇

    2023-08-29 20:42:55
  • 通俗讲解Python中的五种下划线含义

    2023-09-14 04:06:14
  • 详谈js遍历集合(Array,Map,Set)

    2024-04-16 09:29:53
  • 详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击

    2023-03-16 14:33:51
  • 提高python代码可读性利器pycodestyle使用详解

    2023-09-04 11:22:04
  • SQL根据指定分隔符分解字符串实现步骤

    2023-07-13 03:09:14
  • 利用Python编写简易版德州扑克小游戏

    2021-02-03 06:00:59
  • Python黑魔法之metaclass详情

    2022-09-16 00:38:56
  • asp是什么格式 asp文件用什么打开

    2020-06-30 16:04:48
  • 聊聊基于pytorch实现Resnet对本地数据集的训练问题

    2022-09-04 20:19:42
  • Python爬虫Scrapy框架IP代理的配置与调试

    2022-09-19 08:20:26
  • python监控网站运行异常并发送邮件的方法

    2021-07-28 06:27:34
  • Python实现爬取逐浪小说的方法

    2022-05-26 22:31:29
  • Python Timer和TimerFPS计时工具类

    2022-06-13 12:48:38
  • 史上最全Python文件类型读写库大盘点

    2021-01-28 22:08:26
  • 在VS2008中编译MYSQL5.1.48的方法

    2023-07-12 00:42:46
  • django中的数据库迁移的实现

    2024-01-18 07:35:00
  • Python使用RPC例子

    2021-04-11 23:26:51
  • asp之家 网络编程 m.aspxhome.com