我正在研究一个默认情况下不应该占用太多空间的多选框。因此它会在鼠标悬停时展开。
当用户选择了值时,我希望选择框成为所选值数量的大小。这可行,但问题是选定的值不会在选择框的顶部,第一个将始终显示在顶部,如果选定的值不在顶部,这将使选定的值隐藏。当用户离开选择框时,如何确保第一个选定值始终位于顶部?
我在这里发布了完整的示例。http://jsfiddle.net/pNu2b/3/
这是我正在使用的代码:
<select id="yearOfBirth" name="yearOfBirth" size="4" multiple="multiple" style="cursor:pointer;" id="yearOfBirth">option value="" style="background-color:#000000; color:#FFFFFF;" selected="selected">Year of birth</option>
<option value="1990">1990</option>
<option value="1991">1991</option>
<option value="1992">1992</option>
<option value="1993">1993</option>
<option value="1994">1994</option>
<option value="1995">1995</option>
<option value="1996">1996</option>
<option value="1997">1997</option>
<option value="1998">1998</option>
</select>
$(document).ready(function() {
$("#yearOfBirth").on('mouseenter',function(){
$(this).animate({"size": "10"}, "fast");
});
$("#yearOfBirth").on('mouseleave',function(){
var countSize = $("#yearOfBirth :selected").length;
$(this).animate({"size": countSize+1}, "fast");
});
});
只是为了澄清。如果选择 1997 和 1998。离开选择框时将显示 1990 和 1991。我想显示选定的值。就像图像中的右侧是正确的,左侧是错误的。 http://tinypic.com/r/1ie7mc/6