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