html5+css3實現3D圖片(附源碼)

來源:互聯網
上載者:User

標籤:io   ar   os   sp   for   on   div   cti   html   

(function( $ ) {
$.fn.jigsaw = function(options)
{
var settings = $.extend( {}, $.fn.jigsaw.defaults, options );
$.fn.jigsaw.defaults = settings;
//image value in defaults
$.fn.jigsaw.defaults.image = this.children("img").attr("src");
this.append(‘<div class="jigsaw_panel_"></div>‘);
$.fn.jigsaw.defaults.width = this.children("img").attr("width");
$.fn.jigsaw.defaults.height = this.children("img").attr("height");

obj = this.children(".jigsaw_panel_");
obj.css("width",parseInt($.fn.jigsaw.defaults.width) + parseInt($.fn.jigsaw.defaults.x*$.fn.jigsaw.defaults.margin*2) +parseInt($.fn.jigsaw.defaults.error) +"px").css("height",parseInt($.fn.jigsaw.defaults.height) + parseInt($.fn.jigsaw.defaults.y*$.fn.jigsaw.defaults.margin*2) +"px");
w = Math.floor($.fn.jigsaw.defaults.width/$.fn.jigsaw.defaults.x);
h = Math.floor($.fn.jigsaw.defaults.height/$.fn.jigsaw.defaults.y);
for(i=0;i<$.fn.jigsaw.defaults.x;i++)
{
for(j=0;j<$.fn.jigsaw.defaults.y;j++)
{
pos = "block" +i +j;
obj.append("<div pos=‘" +pos +"‘></div>");
obj.children("div[pos=‘" +pos +"‘]").css("background-position","-" +(j*w) +"px -" +(i*h) +"px").css("width",w +"px").css("height",h+"px").css("background-image","url("+$.fn.jigsaw.defaults.image+")").css("display","inline-block").css("margin",$.fn.jigsaw.defaults.margin);
//background-position: -10px -10px;
}
obj.append("<div class=‘clearfix‘></div>");
}
this.children("img").hide();
obj.fadeIn();
animate(this);
}

$.fn.jigsaw.defaults = {
width: 100,
height: 200,
x : 4,
y : 4,
margin : 3,
error : 16,
freq :2000,
image: ""
}

function animate(obj)
{
w = Math.floor($.fn.jigsaw.defaults.width/$.fn.jigsaw.defaults.x);
h = Math.floor($.fn.jigsaw.defaults.height/$.fn.jigsaw.defaults.y);
var len = obj.children(".jigsaw_panel_").children("div").length;
for(i=0;i<len;i++)
{
var randI = Math.floor((Math.random()*3)+0);
var randJ = Math.floor((Math.random()*3)+0);

var bp = "-" +(randI*w) +"px -" +(randJ*h) +"px";
obj.children(".jigsaw_panel_").children("div:eq(" +i +")").css("background-position",bp);
}
if(Math.floor((Math.random()*5)+0) == 2)
{
t = setTimeout(function(){rearrange(obj)},$.fn.jigsaw.defaults.freq);
}
else
t = setTimeout(function(){animate(obj);},$.fn.jigsaw.defaults.freq);
}
function rearrange(obj)
{
w = Math.floor($.fn.jigsaw.defaults.width/$.fn.jigsaw.defaults.x);
h = Math.floor($.fn.jigsaw.defaults.height/$.fn.jigsaw.defaults.y);
for(i=0;i<$.fn.jigsaw.defaults.x;i++)
{
for(j=0;j<$.fn.jigsaw.defaults.y;j++)
{
pos = "block" +i +j;
obj.children(".jigsaw_panel_").children("div[pos=‘" +pos +"‘]").css("background-position","-" +(j*w) +"px -" +(i*h) +"px").css("width",w +"px").css("height",h+"px").css("background-image","url("+$.fn.jigsaw.defaults.image+")");
}
}
t = setTimeout(function(){animate(obj)},$.fn.jigsaw.defaults.freq);
}

}( jQuery ));

html5+css3實現3D圖片(附源碼)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.