diff --git a/ajax/libs/jquery.appear/0.3.3/jquery.appear.js b/ajax/libs/jquery.appear/0.3.3/jquery.appear.js new file mode 100644 index 000000000..ff0b76400 --- /dev/null +++ b/ajax/libs/jquery.appear/0.3.3/jquery.appear.js @@ -0,0 +1,101 @@ +/* + * jQuery appear plugin + * + * Copyright (c) 2012 Andrey Sidorov + * licensed under MIT license. + * + * https://github.com/morr/jquery.appear/ + * + * Version: 0.3.3 + */ +(function($) { + var selectors = []; + + var check_binded = false; + var check_lock = false; + var defaults = { + interval: 250, + force_process: false + } + var $window = $(window); + + var $prior_appeared; + + function process() { + check_lock = false; + for (var index = 0; index < selectors.length; index++) { + var $appeared = $(selectors[index]).filter(function() { + return $(this).is(':appeared'); + }); + + $appeared.trigger('appear', [$appeared]); + + if ($prior_appeared) { + var $disappeared = $prior_appeared.not($appeared); + $disappeared.trigger('disappear', [$disappeared]); + } + $prior_appeared = $appeared; + } + } + + // "appeared" custom filter + $.expr[':']['appeared'] = function(element) { + var $element = $(element); + if (!$element.is(':visible')) { + return false; + } + + var window_left = $window.scrollLeft(); + var window_top = $window.scrollTop(); + var offset = $element.offset(); + var left = offset.left; + var top = offset.top; + + if (top + $element.height() >= window_top && + top - ($element.data('appear-top-offset') || 0) <= window_top + $window.height() && + left + $element.width() >= window_left && + left - ($element.data('appear-left-offset') || 0) <= window_left + $window.width()) { + return true; + } else { + return false; + } + } + + $.fn.extend({ + // watching for element's appearance in browser viewport + appear: function(options) { + var opts = $.extend({}, defaults, options || {}); + var selector = this.selector || this; + if (!check_binded) { + var on_check = function() { + if (check_lock) { + return; + } + check_lock = true; + + setTimeout(process, opts.interval); + }; + + $(window).scroll(on_check).resize(on_check); + check_binded = true; + } + + if (opts.force_process) { + setTimeout(process, opts.interval); + } + selectors.push(selector); + return $(selector); + } + }); + + $.extend({ + // force elements's appearance check + force_appear: function() { + if (check_binded) { + process(); + return true; + }; + return false; + } + }); +})(jQuery); diff --git a/ajax/libs/jquery.appear/0.3.3/jquery.appear.min.js b/ajax/libs/jquery.appear/0.3.3/jquery.appear.min.js new file mode 100644 index 000000000..f5c5538d0 --- /dev/null +++ b/ajax/libs/jquery.appear/0.3.3/jquery.appear.min.js @@ -0,0 +1 @@ +!function(e){function r(){n=!1;for(var r=0;r=a&&p-(t.data("appear-top-offset")||0)<=a+f.height()&&o+t.width()>=i&&o-(t.data("appear-left-offset")||0)<=i+f.width()?!0:!1},e.fn.extend({appear:function(t){var f=e.extend({},o,t||{}),p=this.selector||this;if(!a){var s=function(){n||(n=!0,setTimeout(r,f.interval))};e(window).scroll(s).resize(s),a=!0}return f.force_process&&setTimeout(r,f.interval),i.push(p),e(p)}}),e.extend({force_appear:function(){return a?(r(),!0):!1}})}(jQuery); \ No newline at end of file diff --git a/ajax/libs/jquery.appear/package.json b/ajax/libs/jquery.appear/package.json new file mode 100644 index 000000000..04a98c93c --- /dev/null +++ b/ajax/libs/jquery.appear/package.json @@ -0,0 +1,35 @@ +{ + "name": "jquery.appear", + "title": "jQuery Appear", + "filename": "jquery.appear.min.js", + "description": "It implements a custom 'appear'/'disappear' events which are fired when an element became visible/invisible in the browser view port.", + "keywords": [ + "event", + "appear", + "disappear" + ], + "version": "0.3.3", + "author": { + "name": "Andrey Sidorov", + "email" : "takandar@gmail.com", + "url": "https://github.com/morr/jquery.appear/blob/master/AUTHORS.txt" + }, + "maintainers": [ + { + "name": "Andrey Sidorov", + "email": "takandar@gmail.com" + } + ], + "licenses": [ + { + "type": "MIT", + "url": "http://opensource.org/licenses/MIT" + } + ], + "homepage": "https://github.com/morr/jquery.appear", + "demo": "http://morr.github.com/appear.html", + "issues": "https://github.com/morr/jquery.appear/issues", + "dependencies": { + "jquery": ">=1.5" + } +}