Changeset 719096
- Timestamp:
- 05/27/2013 10:01:00 PM (13 years ago)
- Location:
- spider-invasion/trunk
- Files:
-
- 4 edited
-
js/spider-invasion.js (modified) (4 diffs)
-
js/spider-invasion.min.js (modified) (1 diff)
-
readme.txt (modified) (2 diffs)
-
spider-invasion.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
spider-invasion/trunk/js/spider-invasion.js
r715048 r719096 60 60 function spawnSpider() { 61 61 var $j = jQuery.noConflict(); 62 var src = param.images_dir + '/cute-spider-' + (Math.floor(Math.random() * 3) + 1) + '.png';62 var src = spider_invasion_param.images_dir + '/cute-spider-' + (Math.floor(Math.random() * 3) + 1) + '.png'; 63 63 var img = $j('<img/>') 64 64 .css({ … … 79 79 height: '1px' 80 80 }); 81 if(!param.invade_content) { 81 if(!spider_invasion_param.invade_content) { 82 var contentId = '#content'; 82 83 if( 83 $j( "#content").length > 0 &&84 xy[1] > ($j( "#content").offset().left - img.height()) && xy[1] < ($j("#content").offset().left + $j("#content").width()) &&85 xy[0] > $j( "#content").offset().top && xy[0] < ($j("#content").offset().top + $j("#content").height())84 $j(contentId).length > 0 && 85 xy[1] > ($j(contentId).offset().left - img.height()) && xy[1] < ($j(contentId).offset().left + $j(contentId).width()) && 86 xy[0] > $j(contentId).offset().top && xy[0] < ($j(contentId).offset().top + $j(contentId).height()) 86 87 ) return; 87 88 } … … 129 130 }, 30, 'linear', function() { zigzagDefense(el); }); 130 131 } 131 window.onload =function() {132 jQuery(document).ready(function() { 132 133 var $j = jQuery.noConflict(); 133 param.max_density = +param.max_density; // unary plus to convert string to int134 param.min_density = +param.min_density;135 param.nb_spiders = +param.nb_spiders;136 param.invade_content = Boolean(param.invade_content);134 spider_invasion_param.max_density = +spider_invasion_param.max_density; // unary plus to convert string to int 135 spider_invasion_param.min_density = +spider_invasion_param.min_density; 136 spider_invasion_param.nb_spiders = +spider_invasion_param.nb_spiders; 137 spider_invasion_param.invade_content = Boolean(spider_invasion_param.invade_content); 137 138 var surface = $j('body').height()*$j('body').width(); 138 var densityMax = Math.floor(surface/ param.max_density);139 var densityMin = Math.floor(surface/ param.min_density);140 var nbSpiders = param.nb_spiders > densityMax ? (densityMax < 1 ? 1 : densityMax) : Math.floor(param.nb_spiders);139 var densityMax = Math.floor(surface/spider_invasion_param.max_density); 140 var densityMin = Math.floor(surface/spider_invasion_param.min_density); 141 var nbSpiders = spider_invasion_param.nb_spiders > densityMax ? (densityMax < 1 ? 1 : densityMax) : Math.floor(spider_invasion_param.nb_spiders); 141 142 nbSpiders = (nbSpiders != 0 && nbSpiders < densityMin) ? densityMin : nbSpiders; 142 143 for(i=0;i<nbSpiders;++i) { … … 153 154 zigzagDefense($j(this)); 154 155 }); 155 } 156 }); -
spider-invasion/trunk/js/spider-invasion.min.js
r715048 r719096 1 function getRandomPosition(e){var t=jQuery.noConflict();var n=t("body").height()-e.height();var r=t("body").width()-e.width();var i=Math.floor(Math.random()*n);var s=Math.floor(Math.random()*r);return[i,s]}function runSpawnAnimation(e){e.animate({width:"35px",height:"21px",marginLeft:"-15",marginTop:"-7"},400,function(){e.animate({width:"50px",height:"30px",marginLeft:"-21",marginTop:"-10"},50,function(){e.shake()})})}function spawnSpider(){var e=jQuery.noConflict();var t= param.images_dir+"/cute-spider-"+(Math.floor(Math.random()*3)+1)+".png";var n=e("<img/>").css({position:"absolute",opacity:.5,width:"50px",height:"30px","z-index":100}).addClass("spider-invader").attr("src",t).appendTo("body").hide();var r=getRandomPosition(n);r[1]+=10;n.css({width:"1px",height:"1px"});if(!param.invade_content){if(e("#content").length>0&&r[1]>e("#content").offset().left-n.height()&&r[1]<e("#content").offset().left+e("#content").width()&&r[0]>e("#content").offset().top&&r[0]<e("#content").offset().top+e("#content").height())return}n.css({top:r[0]+"px",left:r[1]+"px"});n.show();runSpawnAnimation(n);var i=305;var s=r[1]-100+i;var o=r[1]-100;var u=e("<div/>").css({position:"absolute",top:r[0]-140+"px",left:r[1]-150+"px",opacity:.5,width:(s>e("body").width()?e("body").width()-o:i)+"px",height:"275px","z-index":50,overflow:"hidden"}).addClass("spider-danger-zone").appendTo("body").data("spider",n)}function spawnSpidersAtRandomIntervals(e){var t=jQuery.noConflict();spawnSpider();++e;if(t("body").height()*t("body").width()/(500*500)<e)return;setTimeout(function(){spawnSpidersAtRandomIntervals(e)},Math.floor(Math.random()*6e4)+5e3)}function zigzagDefense(e){if(e.position().top<-50)return;e.animate({left:"+=13",top:"-=25"},30,"linear").animate({left:"-=13",top:"-=25"},30,"linear",function(){zigzagDefense(e)})}(function(e){e.fn.shake=function(t){var n={shakes:4,distance:3,duration:200};if(t){e.extend(n,t)}var r;return this.each(function(){$this=e(this);r=$this.css("position");var t=0;if(!r||r==="static"){$this.css("position","relative")}else if(r==="absolute"){t=$this.position().left}for(var i=1;i<=n.shakes;i++){$this.animate({left:t+n.distance*-1},n.duration/n.shakes/4).animate({left:t+n.distance},n.duration/n.shakes/2).animate({left:t+0},n.duration/n.shakes/4)}})}})(jQuery);window.onload=function(){var e=jQuery.noConflict();param.max_density=+param.max_density;param.min_density=+param.min_density;param.nb_spiders=+param.nb_spiders;param.invade_content=Boolean(param.invade_content);var t=e("body").height()*e("body").width();var n=Math.floor(t/param.max_density);var r=Math.floor(t/param.min_density);var s=param.nb_spiders>n?n<1?1:n:Math.floor(param.nb_spiders);s=s!=0&&s<r?r:s;for(i=0;i<s;++i){setTimeout(function(){spawnSpider()},Math.floor(Math.random()*400)+10)}setTimeout(function(){spawnSpidersAtRandomIntervals(s)},Math.floor(Math.random()*6e4)+5e3);e("body").on("mouseover",".spider-danger-zone",function(){zigzagDefense(e(this).data("spider"))}).on("click",".spider-invader",function(){zigzagDefense(e(this))})}1 function getRandomPosition(e){var t=jQuery.noConflict();var n=t("body").height()-e.height();var r=t("body").width()-e.width();var i=Math.floor(Math.random()*n);var s=Math.floor(Math.random()*r);return[i,s]}function runSpawnAnimation(e){e.animate({width:"35px",height:"21px",marginLeft:"-15",marginTop:"-7"},400,function(){e.animate({width:"50px",height:"30px",marginLeft:"-21",marginTop:"-10"},50,function(){e.shake()})})}function spawnSpider(){var e=jQuery.noConflict();var t=spider_invasion_param.images_dir+"/cute-spider-"+(Math.floor(Math.random()*3)+1)+".png";var n=e("<img/>").css({position:"absolute",opacity:.5,width:"50px",height:"30px","z-index":100}).addClass("spider-invader").attr("src",t).appendTo("body").hide();var r=getRandomPosition(n);r[1]+=10;n.css({width:"1px",height:"1px"});if(!spider_invasion_param.invade_content){var i="#content";if(e(i).length>0&&r[1]>e(i).offset().left-n.height()&&r[1]<e(i).offset().left+e(i).width()&&r[0]>e(i).offset().top&&r[0]<e(i).offset().top+e(i).height())return}n.css({top:r[0]+"px",left:r[1]+"px"});n.show();runSpawnAnimation(n);var s=305;var o=r[1]-100+s;var u=r[1]-100;var a=e("<div/>").css({position:"absolute",top:r[0]-140+"px",left:r[1]-150+"px",opacity:.5,width:(o>e("body").width()?e("body").width()-u:s)+"px",height:"275px","z-index":50,overflow:"hidden"}).addClass("spider-danger-zone").appendTo("body").data("spider",n)}function spawnSpidersAtRandomIntervals(e){var t=jQuery.noConflict();spawnSpider();++e;if(t("body").height()*t("body").width()/(500*500)<e)return;setTimeout(function(){spawnSpidersAtRandomIntervals(e)},Math.floor(Math.random()*6e4)+5e3)}function zigzagDefense(e){if(e.position().top<-50)return;e.animate({left:"+=13",top:"-=25"},30,"linear").animate({left:"-=13",top:"-=25"},30,"linear",function(){zigzagDefense(e)})}(function(e){e.fn.shake=function(t){var n={shakes:4,distance:3,duration:200};if(t){e.extend(n,t)}var r;return this.each(function(){$this=e(this);r=$this.css("position");var t=0;if(!r||r==="static"){$this.css("position","relative")}else if(r==="absolute"){t=$this.position().left}for(var i=1;i<=n.shakes;i++){$this.animate({left:t+n.distance*-1},n.duration/n.shakes/4).animate({left:t+n.distance},n.duration/n.shakes/2).animate({left:t+0},n.duration/n.shakes/4)}})}})(jQuery);jQuery(document).ready(function(){var e=jQuery.noConflict();spider_invasion_param.max_density=+spider_invasion_param.max_density;spider_invasion_param.min_density=+spider_invasion_param.min_density;spider_invasion_param.nb_spiders=+spider_invasion_param.nb_spiders;spider_invasion_param.invade_content=Boolean(spider_invasion_param.invade_content);var t=e("body").height()*e("body").width();var n=Math.floor(t/spider_invasion_param.max_density);var r=Math.floor(t/spider_invasion_param.min_density);var s=spider_invasion_param.nb_spiders>n?n<1?1:n:Math.floor(spider_invasion_param.nb_spiders);s=s!=0&&s<r?r:s;for(i=0;i<s;++i){setTimeout(function(){spawnSpider()},Math.floor(Math.random()*400)+10)}setTimeout(function(){spawnSpidersAtRandomIntervals(s)},Math.floor(Math.random()*6e4)+5e3);e("body").on("mouseover",".spider-danger-zone",function(){zigzagDefense(e(this).data("spider"))}).on("click",".spider-invader",function(){zigzagDefense(e(this))})}) -
spider-invasion/trunk/readme.txt
r715048 r719096 13 13 Spiders invade your oldest posts. The older the post, the more spiders you get! 14 14 15 Spiders are showing up at random locations on your web page as your post get older.15 Spiders are showing up at random locations on your web page as your post gets older. 16 16 17 17 Demo page & Blog: http://www.mendoweb.be/blog/wordpress-plugin-spider-invasion/ … … 27 27 28 28 == Changelog == 29 30 = 0.6 = 31 * improved compatibility with other plugins 29 32 30 33 = 0.5.1 = -
spider-invasion/trunk/spider-invasion.php
r715048 r719096 2 2 /* 3 3 Plugin Name: Spider Invasion! 4 Version: 0. 5.14 Version: 0.6 5 5 Plugin URI: http://www.mendoweb.be/blog/wordpress-plugin-spider-invasion/ 6 6 Description: Spiders invade your oldest posts. The older the post, the more spiders you get. … … 23 23 */ 24 24 25 function includeJQuery() { 26 if ( !is_admin() ) { 27 wp_enqueue_script( 'jquery' ); 25 define( 'SPIDER_INVASION_FILE', __FILE__ ); 26 define( 'SPIDER_INVASION_VERSION', '0.6' ); 27 28 class SpiderInvasion_Init { 29 private static $instance; 30 31 public static function getInstance() { 32 if( !self::$instance ) { 33 $class = __CLASS__; 34 new $class; 35 } 36 return self::$instance; 37 } 38 39 private function __construct() { 40 add_action( 'plugins_loaded', array( $this, 'init' ) ); 41 } 42 43 public function init() { 44 add_action( 'wp_head', array( $this, 'spider_invasion_js' ) ); 45 } 46 47 function get_date_diff($d1, $d2) { 48 /* 49 // only from PHP 5.3 and later versions 50 $datetime_d2 = date_create( $d2 ); 51 $datetime_d1 = date_create( $d1 ); 52 $interval = date_diff( $datetime_d2, $datetime_d1 ); 53 return array( 54 'y' => (int) $interval->format( '%y' ), 55 'm' => (int) $interval->format( '%m' ), 56 'd' => (int) $interval->format( '%d' ) 57 ); 58 */ 59 // compatible with PHP 5.2 and lower 60 $diff = abs( strtotime( $d2 ) - strtotime( $d1 ) ); 61 $years = floor($diff / (365*60*60*24)); 62 $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); 63 $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); 64 return array( 65 'y' => $years, 66 'm' => $months, 67 'd' => $days 68 ); 69 } 70 71 function spider_invasion_js() { 72 if( 'post' != get_post_type() ) return; 73 $date_post = get_the_date( 'Ymd' ); 74 if( empty( $date_post ) ) return; 75 76 $date_diff = $this->get_date_diff( $date_post, date( 'Ymd' ) ); 77 if( $date_diff['y']*12 + $date_diff['m'] < 8 ) return; 78 $nb_spiders = $date_diff['y']; 79 $compressJS = TRUE; 80 81 wp_enqueue_script( 82 'spider-invasion', 83 plugins_url( 'js', SPIDER_INVASION_FILE ) . '/spider-invasion' . ($compressJS ? '.min' : '') . '.js', 84 array( 'jquery' ), 85 SPIDER_INVASION_VERSION 86 ); 87 $params = array( 88 'max_density' => 800*800, 89 'min_density' => 1800*1800, 90 'invade_content' => FALSE, 91 'images_dir' => plugins_url( 'images', SPIDER_INVASION_FILE ), 92 'nb_spiders' => $nb_spiders, 93 ); 94 wp_localize_script( 'spider-invasion', 'spider_invasion_param', $params ); 28 95 } 29 96 } 30 add_action( 'init', 'includeJQuery' );31 97 32 function get_date_diff($d1, $d2) { 33 /* 34 // only from PHP 5.3 and later versions 35 $datetime_d2 = date_create( $d2 ); 36 $datetime_d1 = date_create( $d1 ); 37 $interval = date_diff( $datetime_d2, $datetime_d1 ); 38 return array( 39 'y' => (int) $interval->format( '%y' ), 40 'm' => (int) $interval->format( '%m' ), 41 'd' => (int) $interval->format( '%d' ) 42 ); 43 */ 44 // compatible with PHP 5.2 and lower 45 $diff = abs( strtotime( $d2 ) - strtotime( $d1 ) ); 46 $years = floor($diff / (365*60*60*24)); 47 $months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24)); 48 $days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24)); 49 return array( 50 'y' => $years, 51 'm' => $months, 52 'd' => $days 53 ); 54 } 55 56 function spider_invasion_js() { 57 if( 'post' != get_post_type() ) return; 58 $date_post = get_the_date( 'Ymd' ); 59 if( empty( $date_post ) ) return; 60 61 $date_diff = get_date_diff( $date_post, date( 'Ymd' ) ); 62 if( $date_diff['y']*12 + $date_diff['m'] < 8 ) return; 63 $nb_spiders = $date_diff['y']; 64 $compressJS = TRUE; 65 66 wp_enqueue_script( 'spider-invasion', plugins_url( 'js' , __FILE__ ) . '/spider-invasion' . ($compressJS ? '.min' : '') . '.js' ); 67 $params = array( 68 'max_density' => 800*800, 69 'min_density' => 1800*1800, 70 'invade_content' => FALSE, 71 'images_dir' => plugins_url( 'images' , __FILE__ ), 72 'nb_spiders' => $nb_spiders, 73 ); 74 wp_localize_script( 'spider-invasion', 'param', $params ); 75 } 76 add_action('wp_head', 'spider_invasion_js'); 98 SpiderInvasion_Init::getInstance(); 77 99 78 100 ?>
Note: See TracChangeset
for help on using the changeset viewer.