У меня есть DIV со следующими правилами:Почему не будет div с перетаскиванием прокрутки в IE 8?
div#eventBox
{
overflow: auto;
text-align: center;
height: 300px;
border: 2px inset #888;
width: 95%;
margin: auto;
-moz-border-radius: 5px 0px 0px 5px;
-ms-border-radius: 5px 0px 0px 5px;
border-radius: 5px 0px 0px 5px;
background-color: #1a5c17;
background-image: url("/Images/Background_Images/GrungePaper.jpg");
behavior: url(/Resources/PIE.htc);
}
Все прекрасно работает в нем, за исключением IE 8 (тесты тонких в IE 9). В IE 8, когда я пытаюсь «щелкнуть и перетащить» полосу прокрутки, она сразу же становится «unclicked» сразу после mousedown, не позволяя пользователям IE на 32-битных машинах использовать эту функцию прокрутки. Все остальное о полосе прокрутки отлично работает, например, щелкая стрелки, щелкая пробел между стрелкой и полосой прокрутки и используя колесико мыши.
Я попытался удалить правило behavior: url(/Resources/PIE.htc);
, но проблема не устранена.
Do div с автоматическим переполнением не работают/имеют ошибки в IE 8?
Кроме того, это было протестировано в 32-битных и 64-битных версиях FF и Chrome, и там все отлично работает.
Update:
Я испытал это последовательно, и я не могу показаться, чтобы выяснить, что происходит, и я не могу увидеть любые примеры этого никогда не происходит с другими лицами в Интернете. Я проверил его с единственным правилом для div#eventBox
: overflow: auto;
, overflow: scroll;
, overflow-y: auto;
и/или overflow-y: scroll;
и проблема STILL сохраняется. Каждый раз, когда я нажимаю полосу прокрутки в IE 8 (без режима совместимости), она теряет фокус.
Мне сложно поверить, что это известная ошибка (из-за нулевых релевантных результатов поиска), так как нужно полагать, что это то, что я перепутал, поскольку все, что требуется, - это один div с переполненным контентом создавая полосу прокрутки, чтобы вызвать этот сбой.
Если бы я был богатым человеком, когда разрабатывался Internet Explorer 8, я бы с радостью заплатил за каждого из Team Project Team от Microsoft, чтобы взять класс на «лучшие практики» и «придерживаться стандартов».
не Update 2:
На самом деле, если я дважды щелкните полосу прокрутки очень быстро и удерживайте второй щелчок, я могу на самом деле ухватить его в IE 8. Конечно, это еще не хорошо с точки зрения конечного пользователя, но, возможно, это поведение поможет объяснить причину.
Final Update (Solution):
С совет, который я получил от комментариев на этот пост, я решил удалить все сценарии и CSS и начать добавлять вещи обратно, один за один раз. Ошибка была не в любом скрипте, а в CSS. По какой-то причине behavior: url(/Resources/PIE.htc);
, установленный на обертке главного сайта div (выше дерева DOM из элемента проблемы), по-видимому, вызывал проблему. Я до сих пор не знаю, как, но решение для меня состояло в том, чтобы просто удалить PIE из этого элемента, который, в свою очередь, нарушил две другие ссылки PIE, которые я смог исправить, установив их положение в относительный. На данный момент все работает нормально в IE 8, но в тот момент, когда я испытываю любые другие проблемы в результате использования PIE, я очищу его с моего сайта.
У вас есть JavaScript на странице, которая перехватывает mouseDown или нажмите события? –
@SetSailMedia Да, сэр, я делаю – VoidKing
@SetSailMedia У меня есть несколько '$ (" # elementID "). Click (function() {// здесь что-то делать}); jQuery обработчики событий, чтобы быть конкретным. – VoidKing