一个javascript图片阅览组件


Posted in Javascript onNovember 09, 2010

就是图片切换的效果是可自定义的,通过这个组件,我们可以自定义出很多效果,不过这个东西还不算最终完成,现在搞出来先让大家试试

var pola=new PhotoLook("contain");//建立PhotoLook对象

这就是实例化这个组件的语句,cantain是你指定div的ID,这个是使用组件的人自己定义的
/*PhotoLook大小的设置*/ 
pola.width=240; 
pola.height=320; 
/*添加图片*/ 
pola.add("http://img.overpic.net/thumbs/c/h/s/xchsypp84zbzof3ofu_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/c/4/8/xc48uw6026mq5kuk2jzxg_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/s/3/z/xs3zwhazx5db43ux8npmf_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/l/n/u/xlnunh3z65oz4de4y5qs_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/s/z/p/xszpf2cqu4la46wvve9n_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/7/q/k/x7qk2am7qzgyi5s03bdxi_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/b/7/w/xb7wghi7ivyxmbz7tb72e_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/g/d/5/xgd532glxuyc7mmy2h99p_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/i/m/f/ximfw3938obxo33qqjg_s.jpg"); 
pola.init();

定义组件大小,还有利用提供的add方法来添加图片,然后调用init来初始化
/*淡出效果,效果可以自己做,自己添加,这个只是比较经典的(效果要接受一个参数,就是每一个小div,我们对它进行处理)*/ 
var fadeOut=function(div){ 
div.style.zIndex=1; 
div.style.opacity=0; 
div.style.filter="Alpha(Opacity='0')"; 
//div.filters.alpha.opacity=20; 
(function(div,opacity){ 
var hide=function() 
{ 
opacity=opacity+0.1; 
div.style.opacity=opacity; 
div.style.filter="Alpha(Opacity='"+opacity*100 +"')"; 
if(opacity<1) 
{ 
setTimeout(hide,100); 
} 
} 
hide(); 
})(div,0) } ;

添加一个淡出效果,注意,这个效果不是一定的,我们可以自己做出其他效果,再调用addswitchMethod来添加进组件对象里:
/*添加淡出效果(可以添加很多效果,并设定效果出现的顺序)*/
pola.addswitchMethod(fadeOut,"show");

下面是下面那个试例的效果矩阵配置

/*添加效果矩阵,仔细看矩阵数字的分布就可以知道哥大概了,数字小的会先发生效果*/ 
pola.addswitchTable([[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]]); 
pola.addswitchTable([[1,2,1,2],[2,1,2,1],[1,2,1,2],[2,1,2,1]]); 
pola.addswitchTable([[1,2,3,4],[1,2,3,4],[1,2,3,4],[1,2,3,4]]); 
pola.addswitchTable([[1,2,3,4],[12,13,14,5],[11,16,15,6],[10,9,8,7]]); 
pola.addswitchTable([[1,2,3,4],[8,7,6,5],[5,6,7,8],[4,3,2,1]]); 
pola.addswitchTable([[1,2,3,1],[3,4,4,2],[2,4,4,3],[1,3,2,1]]); 
pola.addswitchTable([[1,1,4,4],[1,1,4,4],[3,3,2,2],[3,3,2,2]]); 
pola.addswitchTable([[1,10,4,14],[9,3,13,7],[2,12,6,16],[11,5,15,8]]);

大家一看就应该知道效果矩阵和切换效果之间的关系了吧。
下面大家看看一个例子吧,对了,因为图片都是从互联网上面直接拿的,都没有经过处理,第一轮切换的时候会有点卡卡的感觉,但是当它所有图片都缓冲好的时候就不卡了,就可以看到完整的效果
以后会加上预加载的功能,就可以大大减少这种情况的影响了(话说这些图片也太大了,无奈不知怎么在博客园上传图片,或者根本就没得上传)
只有大家点击了“初始化”按钮之后才可以看到相册。。。
完整配置代码
var pola=new PhotoLook("contain");//建立PhotoLook对象 
/*PhotoLook大小的设置*/ 
pola.width=240; 
pola.height=320; 
/*添加图片*/ 
pola.add("http://img.overpic.net/thumbs/c/h/s/xchsypp84zbzof3ofu_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/c/4/8/xc48uw6026mq5kuk2jzxg_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/s/3/z/xs3zwhazx5db43ux8npmf_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/l/n/u/xlnunh3z65oz4de4y5qs_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/s/z/p/xszpf2cqu4la46wvve9n_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/7/q/k/x7qk2am7qzgyi5s03bdxi_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/b/7/w/xb7wghi7ivyxmbz7tb72e_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/g/d/5/xgd532glxuyc7mmy2h99p_s.jpg"); 
pola.add("http://img.overpic.net/thumbs/i/m/f/ximfw3938obxo33qqjg_s.jpg"); 
pola.init(); 
/*淡出效果,效果可以自己做,自己添加,这个只是比较经典的(效果要接受一个参数,就是每一个小div,我们对它进行处理)*/ 
var fadeOut=function(div){ 
div.style.zIndex=1; 
div.style.opacity=0; 
div.style.filter="Alpha(Opacity='0')"; 
//div.filters.alpha.opacity=20; 
(function(div,opacity){ 
var hide=function() 
{ 
opacity=opacity+0.1; 
div.style.opacity=opacity; 
div.style.filter="Alpha(Opacity='"+opacity*100 +"')"; 
if(opacity<1) 
{ 
setTimeout(hide,100); 
} 
} 
hide(); 
})(div,0) } ; 

/*添加淡出效果(可以添加很多效果,并设定效果出现的顺序)*/ 
pola.addswitchMethod(fadeOut,"show"); 
/*添加效果矩阵,仔细看矩阵数字的分布就可以知道哥大概了,数字小的会先发生效果*/ 
pola.addswitchTable([[1,2,3,4], 
[2,3,4,5], 
[3,4,5,6], 
[4,5,6,7]]); 
pola.addswitchTable([[1,2,1,2], 
[2,1,2,1], 
[1,2,1,2], 
[2,1,2,1]]); 
pola.addswitchTable([[1,2,3,4], 
[1,2,3,4], 
[1,2,3,4], 
[1,2,3,4]]); 
pola.addswitchTable([[1,2,3,4], 
[12,13,14,5], 
[11,16,15,6], 
[10,9,8,7]]); 
pola.addswitchTable([[1,2,3,4], 
[8,7,6,5], 
[5,6,7,8], 
[4,3,2,1]]); 
pola.addswitchTable([[1,2,3,1], 
[3,4,4,2], 
[2,4,4,3], 
[1,3,2,1]]); 
pola.addswitchTable([[1,1,4,4], 
[1,1,4,4], 
[3,3,2,2], 
[3,3,2,2]]); 
pola.addswitchTable([[1,10,4,14], 
[9,3,13,7], 
[2,12,6,16], 
[11,5,15,8]]); 
/*给各按钮添加事件处理程序,这部分已经不算配置PhotoLook了*/ 
var buttonautoPlay=document.getElementById("autoPlay"); 
buttonautoPlay.onclick=function(){ 
pola.autoPlay(4000); 
} 
var buttonstopAutoPlay=document.getElementById("stopAutoPlay"); 
buttonstopAutoPlay.onclick=function(){ 
pola.stopAutoPlay(); 
} 
var buttonturn = document.getElementById("turn"); 
var textBox = document.getElementById("Text1"); 
buttonturn.onclick = function() { 
pola.goTo(parseInt(textBox.value)); 
} 
var buttonprevious = document.getElementById("previous"); 
buttonprevious.onclick = function() { 
pola.previous(); 
} 
var buttonnext = document.getElementById("next"); 
buttonnext.onclick = function() { 
pola.next(); 
}

组件代码下载
Javascript 相关文章推荐
Javascript算符的优先级介绍
Mar 20 Javascript
javascript正则表达式定义(语法)总结
Jan 08 Javascript
js 连续赋值的简单实现
Jun 13 Javascript
AngularJS指令详解及示例代码
Aug 16 Javascript
jquery层级选择器的实现(匹配后代元素div)
Sep 05 Javascript
jQuery模拟下拉框选择对应菜单的内容
Mar 07 Javascript
JavaScript简单拖拽效果(1)
May 17 Javascript
webpack构建react多页面应用详解
Sep 15 Javascript
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
Oct 26 Javascript
JavaScript实现音乐自动切换和轮播
Nov 05 Javascript
vue项目持久化存储数据的实现代码
Oct 01 Javascript
vue element ui validate 主动触发错误提示操作
Sep 21 Javascript
js中格式化日期时间型数据函数代码
Nov 08 #Javascript
window.location.hash 使用说明
Nov 08 #Javascript
JavaScript游戏之是男人就下100层代码打包
Nov 08 #Javascript
JavaScript游戏之优化篇
Nov 08 #Javascript
javascript开发中因空格引发的错误
Nov 08 #Javascript
window.ActiveXObject使用说明
Nov 08 #Javascript
发布一个基于javascript的动画类 Fx.js
Nov 05 #Javascript
You might like
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
PHP记录和读取JSON格式日志文件
2016/07/07 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
PHP 断点续传实例详解
2017/11/11 PHP
php操作mongodb封装类与用法实例
2018/09/01 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
jQuery中创建实例与原型继承揭秘
2011/12/21 Javascript
js添加select下默认的option的value和text的方法
2014/10/19 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
javascript定义变量时带var与不带var的区别分析
2015/01/12 Javascript
学习 NodeJS 第八天:Socket 通讯实例
2016/12/21 NodeJs
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
JS实现的加减乘除四则运算计算器示例
2017/08/09 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
Vue中UI组件库之Vuex与虚拟服务器初识
2019/05/07 Javascript
Layui实现数据表格中鼠标悬浮图片放大效果,离开时恢复原图的方法
2019/09/11 Javascript
解决Ant Design Modal内嵌Form表单initialValue值不动态更新问题
2020/10/29 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
JavaScript中Object、map、weakmap的区别分析
2020/12/15 Javascript
JavaScript实现前端倒计时效果
2021/02/09 Javascript
线程和进程的区别及Python代码实例
2015/02/04 Python
python中的随机函数小结
2018/01/27 Python
python3图片文件批量重命名处理
2019/10/31 Python
python 有效的括号的实现代码示例
2019/11/11 Python
语文教学感言
2014/02/06 职场文书
协议书与合同的区别
2014/04/18 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
2014年个人业务工作总结
2014/11/17 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
医院营销工作计划
2015/01/16 职场文书
2015年会计人员工作总结
2015/05/22 职场文书
2016庆祝教师节新闻稿
2015/11/25 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
教你用python实现一个无界面的小型图书管理系统
2021/05/21 Python
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android