JQuery

1个成员

jquery插件DGallery插件模拟翻相 图片切换效果

发表于 2017-01-04 3353 次查看
本文章给各位同学介绍一个DGallery插件模拟翻相 图片切换效果,例子是 mouseout 切换生效 不用点击的 如果要改的话 改下配置参数就好了
 代码如下 复制代码

 

<script type=“text/javascript” src=“../jquery.js”></script> 

<script type=“text/javascript” src=“../dgallery.js”></script> 

<script> 

function DPicc(){ 

DGallery.call( this ); //继承

var self = this; 

var len = 0; //图片个数

this.createImage = function( src ){ //重写createImage 方法

len ++ 

var options = this.getOptions(); 

var bg = $(‘<div class=“dpicc-stage”></div>’).appendTo( this.getLink() ); 

if( options.tilt ){ //tilt 新增自定义配置属性 后面会添加的 先往下看

var deg = Math.random() * 30 – 15; //该属性是用来选择 是否倾斜相片 这里用CSS3 IE那个滤镜太复杂了 有兴趣自行研究

bg.css({ 

‘WebkitTransform’:'rotate(‘ + deg + ‘deg)’, 

‘MozTransform’:'rotate(‘ + deg + ‘deg)’, 

‘OTransform’:'rotate(‘ + deg + ‘deg)’, 

‘transform’:'rotate(‘ + deg + ‘deg)’ 

}) 

 

var t = $(‘<img>’).attr( ‘src’, src ).css({‘width’:options.width – 20,’height’:options.height – 20}).appendTo( bg ); 

//这里之所以这么做 是因为 在本地测试的话

//IE7,8 的缓存 存在不会在读图片 会造成图片显示有问题 所以判断是否已经加载

//FF 免疫 不过不影响效果 在dgallery 自身也是这样写的;

if( t[0].complete ) load.push( t.attr( ‘src’ ) ); 

else t.load(function(){ load.push( $(this).attr( ‘src’ ) ); }) 

return bg; 

 

//自定义扩展方法 overflow

//使图片的zIndex 重新排列;

this.overflow = function( num ){ 

var img = this.getImage(); 

var cur = num; 

for( var i = len – 1; i >= 0; i — ){ 

cur = this.loop( cur ); 

img[cur++].css(‘zIndex’,i); 

 

//自定义扩展方法 page 这里用于切换效果;

this.page = function(){ 

var cur =
>this.getImage( ‘current’ ); //当前图片

var next = this.getImage( ‘next’ ); //下一个图片

var options = this.getOptions(); //配置文件 必须得这样拿 因为 options 在原框架中是var 私有属性

var index = this.getNext(); //获取下一个图片的在所在列表中的位置

 

//queue 用于多个效果同时起作用;

cur.animate({‘left’:options.width,’top’:- options.height}, {‘queue’:false,’duration’:options.speed, ‘complete’:function(){ 

self.overflow( index ) 

cur.animate({‘left’:0,’top’:0}, {‘queue’:false,’duration’:options.speed, ‘complete’:function(){ 

self.unlock(); //这里也是必须的 因为图片切换过程中 进行了锁定 这里 切换完毕要进行 解锁操作;

}}); 

}}) 

 

this._init = this.init; 

this.init = function( opt ){ //构造方法

this._init( opt ); 

this.overflow( 0 ); 

 

this.setDefault({ //设置默认配置参数

‘play’ : ‘mouseout’, //mouseout 与hover 效果一样

‘effect’ : ‘page’, //page 为上面用到的切换效果

‘overflow’ : ‘visible’, //因为前面的图片切换 多出来的都是不可见的 所以 这里把超出设置成可见;

’tilt’ : false //是否倾斜 默认还是否吧 毕竟 FF里面运行也有点儿卡 看来迟下要做 html5 canvas做更高层次开发了

}) 

 

//之前一样 必须的

return this.jready( arguments ); 

 

document.write( ‘<style>’ ); 

document.write( ‘.dpicc-stage{position:absolute;width:468px;height:356px;background:#fff;border:1px solid #ccc;-moz-box-shadow:0 2px 15px #333;-webkit-box-shadow:0 2px 15px #333;box-shadow:0 2px 15px #333;}’ ); 

document.write( ‘.dpicc-stage img{border:0;margin:10px;}’ ); 

document.write( ‘</style>’ ); 

//这里利用到一幅背景图 没的话 不太好看 有的话 好看点儿 不喜欢用图片的 可以 吧下面backgournd url 删除 不影响DPicc运作

//调用方式也是一样 与第一篇文章有详细说明

new DPicc( ‘#pic6′, ’1_1.jpg|1_2.jpg|1_3.jpg|7_1.png|7_3.jpg|7_4.jpg|7_6.jpg’, ‘../image/’ ); 

</script> 

</head> 

<body> 

<div style=“width:1003px; margin:0 auto;”> 

<div style=“width:614px;height:532px;float:left;margin:0 auto;background:url(../panel/bg.png) 0 0 no-repeat;”> 

<div id=“pic6″ style=“width:470px;height:358px;margin:88px 0 0 74px;”></div> 

</div> 

</div> 

</body> 

发表回复
你还没有登录,请先登录注册