This एक बहुत अच्छा जवाब है, लेकिन यहां आपके द्वारा उल्लिखित व्यूपोर्ट प्लगइन का एक संशोधित संस्करण है।
(function($) {
$.belowthefold = function(lookIn, elements, settings) {
var fold = $(lookIn).height() + $(lookIn).scrollTop();
return $(elements).filter(function(){
return fold <= $(this).offset().top - settings.threshold;
});
};
$.abovethetop = function(lookIn, elements, settings) {
var top = $(lookIn).scrollTop();
return $(elements).filter(function(){
return top >= $(this).offset().top + $(this).height() - settings.threshold;
});
};
$.rightofscreen = function(lookIn, elements, settings) {
var fold = $(lookIn).width() + $(lookIn).scrollLeft();
return $(elements).filter(function(){
return fold <= $(this).offset().left - settings.threshold;
});
};
$.leftofscreen = function(lookIn, elements, settings) {
var left = $(lookIn).scrollLeft();
return $(elements).filter(function(){
return left >= $(this).offset().left + $(this).width() - settings.threshold;
});
};
})(jQuery);
एचटीएमएल के साथ इस तरह
:
<div id="lookInMe">
<div class="peek"></div>
<div class="peek"></div>
[ ... ]
</div>
इसे इस तरह कॉल:
$.belowthefold("#lookInMe", ".peek", {threshold : 0}).text("Below");
$.abovethetop("#lookInMe", ".peek", {threshold : 0}).text("Above");
$.leftofscreen("#lookInMe", ".peek", {threshold : 0}).text("Left");
$.rightofscreen("#lookInMe", ".peek", {threshold : 0}).text("Right");
http://jsfiddle.net/daCrosby/vhF7x/1/
इस कोड को वहाँ की जाँच करता है, तो तत्व, स्क्रीन पर दृश्यमान होता है div पर नहीं । जब आप div के अंदर स्क्रॉल करते हैं तो मेरा तत्व नहीं देखा जा सकता है। शायद यह मेरे लिए काम करने के लिए दिए गए कोड को संपादित करने के लिए posibile है? – Kimmax
@ किममैक्स * कब * आप जांचना चाहते हैं कि वे दिखाई दे रहे हैं या नहीं? –
मेरे पास दाईं ओर एक छोटा सा जानकारी बॉक्स है। तो जब उपयोगकर्ता अगले आइटम पर स्क्रॉल करता है, तो मैं इस जानकारी बॉक्स को अपडेट करना चाहता हूं। तो तत्व के 3/4 तत्वों को अभी भी दिखाए जाने पर 'ईवेंट' ट्रिगर किया जाना ठीक होगा, लेकिन तत्व के अंत में एक ईवेंट ट्रिगर करने से नौकरी भी होगी – Kimmax