2014-01-31 72 views
0

給定一個下拉列表中有許多項目:如何將當前下拉列表的位置向上或向下滾動指定數量的項目?

<select id="selectId"> 
    <option value="1">Item #1</option> 
    <option value="2">Item #2</option> 
    ... 
    <option value="100">Item #100</option> 
</select> 

我不知道如何寫一個jQuery函數由項目指定數量的上下滾動/。

注意:滾動到指定元素有類似的SO問題,但我怎麼知道這是哪個元素?所有應該在函數接口傳遞的元素向上滾動的數量或向下從當前滾動位置...

+1

史蒂夫你能舉個例子嗎? – Zword

+0

@Zword類似於:'function scrollByItems(selectId,numberOfItems,isUp){...}'? –

+0

我相信,你無法控制從'' – techfoobar

回答

0

這將是如果有可能,找出每個的高度相當容易<option><select>。但是,這似乎並不重要(例如,參見here)。最好我能拿出以下內容:

function scrollUp($select, numOptions) { 
    // Assuming default of 8 visible options in select without a 'size' attribute 
    var selectSize = $select.attr('size') || 8; 
    // Option height calculated below - may not be completely accurate? 
    var approxOptionHeight = Math.floor($select.height()/selectSize); 
    var newScrollTop = $select.scrollTop() - (numOptions * approxOptionHeight); 
    if (newScrollTop < 0) { 
     newScrollTop = 0; 
    } 
    $select.scrollTop(newScrollTop); 
} 
相關問題