У меня есть div, который прокручивает (главная страница не имеет полос прокрутки) и кнопку пользовательского интерфейса jQuery в контенте, который можно прокручивать. В IE6 и IE7 кнопка не прокручивается вместе с содержимым div, и она делает забавные вещи, если над ней навести курсор мыши, когда она не в правильном положении.
Вот пример (jQuery 1.5 включен в заголовок):
<link rel="stylesheet" type="text/css" href="Lib/jquery-ui-1.8.10.custom.min.css" />
<script type="text/javascript" src="Lib/jquery-1.5.min.js"></script>
<script type="text/javascript" src="Lib/jquery-ui-1.8.10.custom.min.js"></script>
<div style="width: 400px; height: 300px; overflow: scroll;">
<div style="width: 400px; height: 1200px;">
Hello world<br /><br />
<a href='#' id='test'>test button</a>
</div>
</div>
<script>
$('#test').button();
</script>
Я нашел обходной путь, но он не идеален; Я ловлю событие прокрутки и вызываю .button('enable')
на элементе кнопки (по какой-то причине .button('refresh')
ничего не сделал). Это заставляет кнопку прокручиваться правильно, но теперь при прокрутке кнопка отображается за пределами элемента div (она прокручивается выше верхней части элемента div и все еще видна). Вот код:
<link rel="stylesheet" type="text/css" href="Lib/jquery-ui-1.8.10.custom.min.css" />
<script type="text/javascript" src="Lib/jquery-1.5.min.js"></script>
<script type="text/javascript" src="Lib/jquery-ui-1.8.10.custom.min.js"></script>
<div class='scrollingDiv' style="width: 400px; height: 300px; overflow: scroll;">
<div style="width: 400px; height: 1200px;">
Hello world<br /><br />
<a href='#' id='test' class='scrollingButton'>test button</a>
</div>
</div>
<script type="text/javascript">
$(function(){
$('#test').button();
$('.scrollingDiv').scroll(function() {
$('.scrollingButton').button('enable');
});
});
</script>