zoukankan      html  css  js  c++  java
  • html5+css3实现3D图片(附源码)

    (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 = {
    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 ));

  • 相关阅读:
    [转载]android开发手册
    [转载]windows phone7 学习笔记10——生命周期/墓碑化
    [转载]Windows Phone 系列 本地数据存储
    【转载】windows phone7 学习笔记12——推送通知服务
    【转载】windows phone7 学习笔记15——Bing Maps
    [转载]WP7交互特性浅析及APP设计探究
    【】windows phone7 学习笔记11——启动器与选择器
    [转载]支持的 Windows Phone 媒体编解码器
    【转载】wp7屏幕截图代码
    【转载】windows phone7 学习笔记14——地理位置服务与反应性扩展框架
  • 原文地址:https://www.cnblogs.com/songjiawei/p/4108221.html
Copyright © 2011-2022 走看看