1cef7893435aa41160dd1255c43cb8498279738ccChris Craik/* Copyright (c) 2010 2cef7893435aa41160dd1255c43cb8498279738ccChris Craik * @author Laurence Wheway 3cef7893435aa41160dd1255c43cb8498279738ccChris Craik * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 4cef7893435aa41160dd1255c43cb8498279738ccChris Craik * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. 5cef7893435aa41160dd1255c43cb8498279738ccChris Craik * 6cef7893435aa41160dd1255c43cb8498279738ccChris Craik * @version 1.2.0 7cef7893435aa41160dd1255c43cb8498279738ccChris Craik */ 8cef7893435aa41160dd1255c43cb8498279738ccChris Craik(function($) { 9cef7893435aa41160dd1255c43cb8498279738ccChris Craik jQuery.extend({ 10cef7893435aa41160dd1255c43cb8498279738ccChris Craik isOnScreen: function(box, container) { 11cef7893435aa41160dd1255c43cb8498279738ccChris Craik //ensure numbers come in as intgers (not strings) and remove 'px' is it's there 12cef7893435aa41160dd1255c43cb8498279738ccChris Craik for(var i in box){box[i] = parseFloat(box[i])}; 13cef7893435aa41160dd1255c43cb8498279738ccChris Craik for(var i in container){container[i] = parseFloat(container[i])}; 14cef7893435aa41160dd1255c43cb8498279738ccChris Craik 15cef7893435aa41160dd1255c43cb8498279738ccChris Craik if(!container){ 16cef7893435aa41160dd1255c43cb8498279738ccChris Craik container = { 17cef7893435aa41160dd1255c43cb8498279738ccChris Craik left: $(window).scrollLeft(), 18cef7893435aa41160dd1255c43cb8498279738ccChris Craik top: $(window).scrollTop(), 19cef7893435aa41160dd1255c43cb8498279738ccChris Craik width: $(window).width(), 20cef7893435aa41160dd1255c43cb8498279738ccChris Craik height: $(window).height() 21cef7893435aa41160dd1255c43cb8498279738ccChris Craik } 22cef7893435aa41160dd1255c43cb8498279738ccChris Craik } 23cef7893435aa41160dd1255c43cb8498279738ccChris Craik 24cef7893435aa41160dd1255c43cb8498279738ccChris Craik if( box.left+box.width-container.left > 0 && 25cef7893435aa41160dd1255c43cb8498279738ccChris Craik box.left < container.width+container.left && 26cef7893435aa41160dd1255c43cb8498279738ccChris Craik box.top+box.height-container.top > 0 && 27cef7893435aa41160dd1255c43cb8498279738ccChris Craik box.top < container.height+container.top 28cef7893435aa41160dd1255c43cb8498279738ccChris Craik ) return true; 29cef7893435aa41160dd1255c43cb8498279738ccChris Craik return false; 30cef7893435aa41160dd1255c43cb8498279738ccChris Craik } 31cef7893435aa41160dd1255c43cb8498279738ccChris Craik }) 32cef7893435aa41160dd1255c43cb8498279738ccChris Craik 33cef7893435aa41160dd1255c43cb8498279738ccChris Craik 34cef7893435aa41160dd1255c43cb8498279738ccChris Craik jQuery.fn.isOnScreen = function (container) { 35cef7893435aa41160dd1255c43cb8498279738ccChris Craik for(var i in container){container[i] = parseFloat(container[i])}; 36cef7893435aa41160dd1255c43cb8498279738ccChris Craik 37cef7893435aa41160dd1255c43cb8498279738ccChris Craik if(!container){ 38cef7893435aa41160dd1255c43cb8498279738ccChris Craik container = { 39cef7893435aa41160dd1255c43cb8498279738ccChris Craik left: $(window).scrollLeft(), 40cef7893435aa41160dd1255c43cb8498279738ccChris Craik top: $(window).scrollTop(), 41cef7893435aa41160dd1255c43cb8498279738ccChris Craik width: $(window).width(), 42cef7893435aa41160dd1255c43cb8498279738ccChris Craik height: $(window).height() 43cef7893435aa41160dd1255c43cb8498279738ccChris Craik } 44cef7893435aa41160dd1255c43cb8498279738ccChris Craik } 45cef7893435aa41160dd1255c43cb8498279738ccChris Craik 46cef7893435aa41160dd1255c43cb8498279738ccChris Craik if( $(this).offset().left+$(this).width()-container.left > 0 && 47cef7893435aa41160dd1255c43cb8498279738ccChris Craik $(this).offset().left < container.width+container.left && 48cef7893435aa41160dd1255c43cb8498279738ccChris Craik $(this).offset().top+$(this).height()-container.top > 0 && 49cef7893435aa41160dd1255c43cb8498279738ccChris Craik $(this).offset().top < container.height+container.top 50cef7893435aa41160dd1255c43cb8498279738ccChris Craik ) return true; 51cef7893435aa41160dd1255c43cb8498279738ccChris Craik return false; 52cef7893435aa41160dd1255c43cb8498279738ccChris Craik } 53cef7893435aa41160dd1255c43cb8498279738ccChris Craik})(jQuery); 54