को सुनना मेरे पास कई बच्चों के साथ एक स्क्रॉल करने योग्य तत्व है और संबंधित विकल्पों के साथ एक चयन टैग है।जेएस .scroll() कुशलतापूर्वक
मैं तत्वों .scrollTop()
यह कुशलतापूर्वक कैसे करना है के आधार पर की चुनिंदा मान बदलने के लिए करना चाहते हैं? मैंने एक सरणी में बच्चों के .offset().top
को स्टोर करने और इसके माध्यम से लूपिंग के बारे में सोचा। हालांकि, ब्राउज़र इसे संभाल नहीं करता है। मैं .setTimeout()
ध्वज बनाने का प्रयास कर सकता हूं, लेकिन यह साफ नहीं लगता है।
r = $('ul')
offsets = []
r.find('li').each((index) ->
offsets[index] = $(this).offset().top
)
r.bind('scroll', ->
// while loop checking .scrollTop() > offsets[n] is slow
// maybe spams to many .scroll events?
)
मुझे यह बेहतर पसंद है (नफरत 'सेट इंटरवल')। धन्यवाद! – mreq
क्या मैं इसे सही देख रहा हूं कि यदि उपयोगकर्ता 200ms के लिए स्क्रॉलिंग रोकता है तो ईवेंट "fooscroll" केवल निकाल दिया जाता है? – Simon
@ सिमॉन: हाँ, आप सही हैं। स्पष्टीकरण के लिए, नहीं, यह स्क्रॉलिंग को 'थ्रॉटल' नहीं करता है। यदि आप केवल एक बार स्क्रॉल करने के बाद प्रत्येक 200ms स्क्रॉल करना चाहते हैं, तो आपको इसे अलग-अलग करना होगा। – hayavuk