2013-10-04 6 views
17

के लिए ऑफसेट मैं प्यार करता हूँ jQuery वेपॉइंट में 2 ऑफसेट है। वर्तमान में ऊपर और नीचे स्क्रॉलिंग के लिए केवल एक ही है।अलग jQuery वेपॉइंट "ऊपर" घटना

मैं एक "नीचे" 25% की भरपाई का उपयोग कर रहा है, और एक "ऊपर" "75%" की भरपाई करना चाहते हैं। तो जब ब्लॉक का शीर्ष व्यूपोर्ट के शीर्ष के 25% पर है और स्कॉलिंग नीचे जा रही है, 'डाउन' ट्रिगर किया गया है। और जब ब्लॉक का शीर्ष व्यूपोर्ट के शीर्ष पर 75% पर होता है और स्कॉलिंग बढ़ जाती है, तो 'अप' ट्रिगर होता है।

किसी को पहले से ही इस hysteresis के लिए कोड लिखा गया है?

उत्तर

48

आप दो-पाइंट, अलग ऑफसेट के साथ प्रत्येक बनाकर ऐसा कर सकते हैं, प्रत्येक केवल एक ही दिशा का जवाब:

$('.thing').waypoint(function(direction) { 
    if (direction === 'down') { 
    // Do stuff 
    } 
}, { 
    offset: '25%' 
}).waypoint(function(direction) { 
    if (direction === 'up') { 
    // Do stuff 
    } 
}, { 
    offset: '75%' 
}); 

अद्यतन: आप jQuery वेपाइंट 3.0 के निर्माण का उपयोग कर रहे हैं, तो ऊपर कोड काम नहीं करेगा क्योंकि waypoint अब jQuery ऑब्जेक्ट चेन नहीं करता है। यह इसके बजाय बनाए गए वेपॉइंट उदाहरणों की एक सरणी देता है। यदि आप उस सरणी संदर्भ को ध्यान में रखते हुए रुचि नहीं रखते हैं, तो कोड इस तरह दिखेगा:

var $things = $('.thing'); 

$things.waypoint(function(direction) { 
    if (direction === 'down') { 
    // Do stuff 
    } 
}, { 
    offset: '25%' 
}); 

$things.waypoint(function(direction) { 
    if (direction === 'up') { 
    // Do stuff 
    } 
}, { 
    offset: '75%' 
}); 
+1

+1, और मुझे कुछ समय बचाने के लिए धन्यवाद। –

+6

अद्यतन पुनः के लिए धन्यवाद: संस्करण 3 –

संबंधित मुद्दे