मैं एक समारोह अगर वस्तु अपनी स्क्रीन के भीतर है कि बुलाया जाएगा संबंध में भी प्रश्न मिला है। लेकिन जब ऑब्जेक्ट मेरी स्क्रीन के भीतर होता है तो फ़ंक्शन को कॉल किया जाता है और एक चेतावनी निकाल दी जाती है। लेकिन अगर मैं अलर्ट बंद करता हूं और आगे स्क्रॉल करता हूं तो ईवेंट को फिर से बुलाया जाता है। मैं नहीं चाहता कि। मैं इसे कैसे हल कर सकता हूं?कॉल समारोह केवल एक बार
मेरे कोड अब तक:
<div id="wrapper">
scroll down to see the div
</div>
<div id="tester"></div>
जे एस
$(window).on('scroll',function() {
if (checkVisible($('#tester'))) {
alert("Visible!!!")
} else {
// do nothing
}
});
function checkVisible(elm, eval) {
eval = eval || "object visible";
var viewportHeight = $(window).height(), // Viewport Height
scrolltop = $(window).scrollTop(), // Scroll Top
y = $(elm).offset().top,
elementHeight = $(elm).height();
if (eval == "object visible") return ((y < (viewportHeight + scrolltop)) && (y > (scrolltop - elementHeight)));
if (eval == "above") return ((y < (viewportHeight + scrolltop)));
}
क्या मैं चाहता हूँ कि अगर समारोह केवल 1 समय बुलाया जाएगा और हर पुस्तक में नहीं है अगर वस्तु दिखाई दे रही है। , अंदर
$(window).one('scroll',function() {
// Stuff
});
या लिंक रहित घटना:
हाँ का उपयोग करें। आपका आखिरी कोड स्निपेट चाल था! मदद के लिये शुक्रिया! मैं 11 मिनट के बाद – Rotan075