2011-01-03 16 views
13

मेरे पास एक "उल" है जिसमें बहुत से "ली" (कई सौ) हैं, उल के बारे में 400px और सीएसएस प्रॉपर्टी ओवरफ़्लो का एक निश्चित हाइट है: स्क्रॉल, प्रत्येक ली की ऊंचाई है 40 पीएक्स इसलिए हर दिए गए पल में अब 10 दृश्यमान ली नहीं हैं (शेष को स्क्रॉल करने की आवश्यकता है)। उल के एक विशिष्ट ली में स्क्रॉल स्थिति (jquery का उपयोग करके) कैसे बदल सकता हूं?ली तत्व के लिए स्क्रॉलिंग - jquery

कोई विचार?

+0

http://stackoverflow.com/questions/1805808/jquery-scrollintoview – mplungjan

उत्तर

25

आप कुछ इस तरह करने की जरूरत है:

$('#yourUL').scrollTop($('#yourUL li:nth-child(14)').position().top); 

आप इसे चेतन चाहते हैं,

$('#yourUL').animate({ 
    scrollTop: $('#yourUL li:nth-child(14)').position().top 
}, 'slow'); 

कर जाहिर है अलग li रों लिए 14 समायोजित करें।

+0

अच्छा, मुझे इतना समय बचाया – TecHunter

+0

मैंने ऐसा किया: '$ ('# yourUL')। ScrollTop (0) .scrollTop ($ ('# yourUL li: nth-child (14)')। स्थिति() शीर्ष); इस तरह हम हमेशा शीर्ष से स्थिति प्राप्त करते हैं। – TecHunter

+0

आपको यह और अधिक पसंद हो सकता है: '$ ('# yourUL')। ScrollTop ($ ('# yourUL')। शीर्ष + $ ('# yourUL li: nth-child (14)')। स्थिति() शीर्ष); ' क्योंकि इसमें शीर्ष –

3

आप इस तरह कर सकते हैं:

$('html, body').animate({ 
    scrollTop:$('#ulID li:eq(1)').offset().top 
}, 1000); 

आप भी चयनकर्ता अनुकूलित कर सकते हैं विशिष्ट li के लिए eq के लिए मूल्य समायोजित करने की आवश्यकता या।

+0

लेकिन नहीं है यह पूरे शरीर के लिए स्क्रॉल स्थिति बदलने? मैं उल – Ran

+0

@Ran की स्क्रॉल स्थिति बदलना चाहता हूं: आपको अपनी आवश्यकताओं के अनुसार '#ulID li: eq (1)' के स्थान पर उपयुक्त चयनकर्ता निर्दिष्ट करना होगा :) – Sarfraz

+0

@Ran: '$ ('html, बॉडी ') 'से' $ (' # your-UL ') ' – thirtydot

2

अगर किसी को वेनिला जेएस संस्करण की आवश्यकता है, तो मेरे लिए निम्नलिखित अच्छी तरह से काम कर रहा है, 50 का मूल्य बस इतना है कि जब मैं सूची के शीर्ष के पास हूं तो मैं पूरी वस्तु दिखा रहा हूं। आप इसे समायोजित कर सकते हैं।

function updateListSelection(liID) { 

    var list = document.getElementById("id Tag Of The <UL> element"), 
     targetLi = document.getElementById(liID); // id tag of the <li> element 

    list.scrollTop = (targetLi.offsetTop - 50); 
}; 
16

मैं करीब @ lonesomeday के जवाब का उपयोग कर गया, लेकिन मैंने पाया कि मैं पहली बार li से विशिष्ट li की सापेक्ष स्थिति की गणना करने के लिए किया था, क्योंकि यह युक्त ul की वर्तमान पुस्तक स्थिति के आधार पर बदल दिया है।

$('#yourUL').scrollTop($('#yourUL li:nth-child(14)').position().top - $('#yourUL li:first').position().top) 
+0

पर एक अजीब कूद शामिल नहीं है यह अद्भुत काम करता है !! – Abhinav

+0

आपको प्यार करता है आदमी। तुमने मुझे बस घंटे बचा लिया –

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