17757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch/* Copyright (c) 2010 27757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch * @author Laurence Wheway 37757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 47757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. 57757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch * 67757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch * @version 1.2.0 77757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch */ 87757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch(function($) { 97757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch jQuery.extend({ 107757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch isOnScreen: function(box, container) { 117757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch //ensure numbers come in as intgers (not strings) and remove 'px' is it's there 127757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch for(var i in box){box[i] = parseFloat(box[i])}; 137757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch for(var i in container){container[i] = parseFloat(container[i])}; 147757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch 157757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch if(!container){ 167757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch container = { 177757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch left: $(window).scrollLeft(), 187757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch top: $(window).scrollTop(), 197757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch width: $(window).width(), 207757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch height: $(window).height() 217757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch } 227757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch } 237757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch 247757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch if( box.left+box.width-container.left > 0 && 257757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch box.left < container.width+container.left && 267757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch box.top+box.height-container.top > 0 && 277757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch box.top < container.height+container.top 287757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ) return true; 297757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch return false; 307757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch } 317757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch }) 327757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch 337757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch 347757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch jQuery.fn.isOnScreen = function (container) { 357757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch for(var i in container){container[i] = parseFloat(container[i])}; 367757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch 377757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch if(!container){ 387757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch container = { 397757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch left: $(window).scrollLeft(), 407757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch top: $(window).scrollTop(), 417757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch width: $(window).width(), 427757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch height: $(window).height() 437757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch } 447757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch } 457757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch 467757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch if( $(this).offset().left+$(this).width()-container.left > 0 && 477757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch $(this).offset().left < container.width+container.left && 487757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch $(this).offset().top+$(this).height()-container.top > 0 && 497757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch $(this).offset().top < container.height+container.top 507757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch ) return true; 517757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch return false; 527757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch } 537757ec2eadfa2dd8ac2aeed0a4399e9b07ec38cbBen Murdoch})(jQuery); 54