У меня есть элемент SELECT
на веб-странице, и я бы хотел, чтобы он загружался с прокруткой вниз.В большинстве браузеров я могу сделать это:
myselect.scrollTop = myselect.scrollHeight;
Хотя scrollHeight
выходит за границы, браузеры понимают это и ограничивают его соответствующим образом.За исключением в Google Chrome.Я мог бы подать отчет об ошибке, но это не помогло мне решить мою непосредственную проблему.Итак, я попробовал это:
myselect.scrollTop = myselect.scrollHeight - myselect.clientHeight;
Но это слишком много вычитало - там были элементы ниже нижней части элемента.Я также попытался вычесть offsetHeight
, но это было немного хуже.
Кто-нибудь знает независимый от браузера способ правильно рассчитать scrollTop
, который правильно встроен, так что он будет работать с Chrome?
Кстати, я нашел этот вопрос на stackoverflow: Кросс-браузерный метод для установки ScrollTop элемента? .Возможно, это работает для DIV, но не для элементов SELECT и / или не в Chrome.
Спасибо!
ОБНОВЛЕНИЕ: Вот страница HTML, которая демонстрирует проблему:
<html>
<head>
<style type="text/css">
.fields9{font-size:15px;height: 180px; width:420px; overflow: auto; border:1px solid #2d2b2d;}
</style>
</head>
<body>
<select multiple="multiple" size="10" id="myselect" class="fields9">
<option>firstone</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>option</option>
<option>lastone</option>
</select>
<script type="text/javascript">
element=document.getElementById("myselect");
//element.scrollTop = element.scrollHeight;
element.scrollTop = element.scrollHeight - element.clientHeight;
</script>
</body>
</html>
Если я смотрю это в Chrome, последний параметр «lastone» в основном обрезается снизу.НО, если я удалю атрибут class="fields9"
, проблема исчезнет.