WordPress源代码——jquery-ui(1.8.20——jquery.effects.explode.js)

1	/*!
2	 * jQuery UI Effects Explode @VERSION
3	 *
4	 * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
5	 * Dual licensed under the MIT or GPL Version 2 licenses.
6	 * http://jquery.org/license
7	 *
8	 * http://docs.jquery.com/UI/Effects/Explode
9	 *
10	 * Depends:
11	 *      jquery.effects.core.js
12	 */
13	(function( $, undefined ) {
14	
15	$.effects.explode = function(o) {
16	
17	        return this.queue(function() {
18	
19	        var rows = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
20	        var cells = o.options.pieces ? Math.round(Math.sqrt(o.options.pieces)) : 3;
21	
22	        o.options.mode = o.options.mode == 'toggle' ? ($(this).is(':visible') ? 'hide' : 'show') : o.options.mode;
23	        var el = $(this).show().css('visibility', 'hidden');
24	        var offset = el.offset();
25	
26	        //Substract the margins - not fixing the problem yet.
27	        offset.top -= parseInt(el.css("marginTop"),10) || 0;
28	        offset.left -= parseInt(el.css("marginLeft"),10) || 0;
29	
30	        var width = el.outerWidth(true);
31	        var height = el.outerHeight(true);
32	
33	        for(var i=0;i<rows;i++) { // =
34	                for(var j=0;j<cells;j++) { // ||
35	                        el
36	                                .clone()
37	                                .appendTo('body')
38	                                .wrap('<div></div>')
39	                                .css({
40	                                        position: 'absolute',
41	                                        visibility: 'visible',
42	                                        left: -j*(width/cells),
43	                                        top: -i*(height/rows)
44	                                })
45	                                .parent()
46	                                .addClass('ui-effects-explode')
47	                                .css({
48	                                        position: 'absolute',
49	                                        overflow: 'hidden',
50	                                        width: width/cells,
51	                                        height: height/rows,
52	                                        left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? (j-Math.floor(cells/2))*(width/cells) : 0),
53	                                        top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? (i-Math.floor(rows/2))*(height/rows) : 0),
54	                                        opacity: o.options.mode == 'show' ? 0 : 1
55	                                }).animate({
56	                                        left: offset.left + j*(width/cells) + (o.options.mode == 'show' ? 0 : (j-Math.floor(cells/2))*(width/cells)),
57	                                        top: offset.top + i*(height/rows) + (o.options.mode == 'show' ? 0 : (i-Math.floor(rows/2))*(height/rows)),
58	                                        opacity: o.options.mode == 'show' ? 1 : 0
59	                                }, o.duration || 500);
60	                }
61	        }
62	
63	        // Set a timeout, to call the callback approx. when the other animations have finished
64	        setTimeout(function() {
65	
66	                o.options.mode == 'show' ? el.css({ visibility: 'visible' }) : el.css({ visibility: 'visible' }).hide();
67	                                if(o.callback) o.callback.apply(el[0]); // Callback
68	                                el.dequeue();
69	
70	                                $('div.ui-effects-explode').remove();
71	
72	        }, o.duration || 500);
73	
74	
75	        });
76	
77	};
78	
79	})(jQuery);

联系我们
文章看不懂?联系我们为您免费解答!免费助力个人,小企站点!
电话:020-2206-9892
QQ咨询:1025174874
邮件:info@361sale.com
工作时间:周一至周五,9:30-18:30,节假日休息
发布者:光子波动,转转请注明出处:https://www.361sale.com/12738/

(0)
上一篇 2024年 7月 6日 下午3:57
下一篇 2024年 7月 7日 下午1:14

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

联系我们

020-2206-9892

QQ咨询:1025174874

邮件:info@361sale.com

工作时间:周一至周五,9:30-18:30,节假日休息

客服微信
为方便全球用户注册登录,我们已取消电话登录功能。如遇登录问题,请联系客服协助绑定邮箱。