我有以下HTML代码:
<select name="" id="listF" size="10">
<option value="01">001</option>
<option value="02">002</option>
<option value="03">003</option>
<option value="04">004</option>
<option value="05">005</option>
<option value="06">006</option>
<option value="07">007</option>
<option value="08">008</option>
<option value="09">009</option>
<option value="10">010</option>
<option value="11">011</option>
<option value="12">012</option>
<option value="13">013</option>
<option value="14">014</option>
<option value="15">015</option>
<option value="16">016</option>
<option value="17">017</option>
<option value="18">018</option>
<option value="19">019</option>
<option value="20">020</option>
<option value="21">021</option>
<option value="22">022</option>
<option value="23">023</option>
<option value="24">024</option>
</select>
我有以下JavaScript
$('#listF').click(function(){
var n = 10;
if(this.selectedIndex < ($(this).find('option').length-n)) {
this.selectedIndex+=n;
this.selectedIndex-=n;
}
});
选择的HTML长度是10 - 我希望每当我选择一个选项时,它是垂直中心(不是水平),说它将显示在第五个例如。
Option 1
Option 2
Option 3
Option 4
Option 5
Option 6
Option 7
Option 8
Option 9
Option 10
如果我选择选项12 - 选项12将居中
Option 8
Option 9
Option 10
Option 11
Option 12 <<<<<Centered
Option 13
Option 14
Option 15
Option 16
Option 17
假设我选择选项7 - 选项7将居中
Option 3
Option 4
Option 5
Option 6
Option 7 <<<<<Centered
Option 8
Option 9
Option 10
Option 11
Option 12
如何修改我的javascript以实现此目的?
我想将<option>
相对于<select>
答案 0 :(得分:2)
$('#listF').on('change', function(){
var n = this.getAttribute('size'),
i = this.selectedIndex,
l = this.options.length;
this.selectedIndex = Math.min(l-1, i+n/2|0);
this.selectedIndex = Math.max(0, i+1-n/2|0);
this.selectedIndex = i;
});
使用奇数和偶数尺寸进行测试。