Помогите мне избежать странной автоматической прокрутки в IE - PullRequest
2 голосов
/ 03 октября 2009

Я поддерживаю веб-страницу и мне нужно исправить очень странное поведение под IE. На странице есть таблица, в которой отображается меню для каждой ячейки при перемещении мыши. Все работает нормально, если у вас есть окно браузера высотой не менее 800 пикселей. Если вы просматриваете эту страницу с помощью Chrome, Opera или Firefox, а высота окна браузера меньше 800 пикселей, некоторые меню будут переполнять окно, и пользователь должен прокрутить страницу вниз, чтобы отобразить скрытые параметры. Это ожидаемое поведение. Но если вы просматриваете страницу с помощью IE, и после отображения меню, когда пользователь прокручивает страницу вниз, чтобы увидеть скрытые параметры, любое движение мыши приведет к прокрутке страницы до верхней части страницы.

Существует событие наведения мыши, подключенное к элементу подменю, это событие заменяет изображение, отображаемое вверху страницы, на другое, связанное с контекстом подменю. Хотя этот обмен изображениями создает этот побочный эффект, но замена кода функции на «возвращаемое значение true» не меняет этого поведения.

У меня заканчиваются идеи, поэтому любая подсказка будет оценена.

Это URL (хорошие машины!): www.kaufmann.cl
Наведите курсор мыши на «Clase C», при просмотре в 800px браузер покажет вертикальную полосу прокрутки. Здесь начинается самое интересное.

Параметр stackoverflow предназначен для отображения DIV, который показывает инициированные события и порядок их выполнения.

РЕДАКТИРОВАНИЕ: Эта проблема возникает в IE6 - IE8 (как в обычном режиме, так и в режиме совместимости)

Ответы [ 3 ]

1 голос
/ 17 октября 2009

Вы пробовали это?

<body style="height:1000px;" ...

Хотя вы не опубликовали версию IE, в которой была обнаружена проблема, на моей машине (IE8) значение <BODY> высокой высоты устраняет проблему прокрутки вверх, возникающую при прокрутке с помощью клавиатуры) во время отображения всплывающих меню.

0 голосов
/ 19 октября 2009

Попробуйте добавить return false; к вашим onmouseover фрагментам следующим образом:

<a onmouseover="MM_swapImage('cambio','', 
    '/publicador/site/artic/20090513/imag/FOTO_0520090513175050.jpg',
    '1'); return false;"></a>

(Другие атрибуты и контент были удалены для краткости.)

0 голосов
/ 16 октября 2009

Похоже, браузер сбросил полосу прокрутки в положение, где последний объект был наведен курсором мыши. Когда вы помещаете указатель мыши на один элемент и затем прокручиваете его вниз, элемент, в настоящее время находящийся под стрелкой мыши, не получает стиль для этого элемента, но как только мышь перемещается на 1 пиксель в любом направлении, полоса прокрутки сбрасывается, поэтому мышь снова помещается над выделенным элементом перед прокруткой вниз. Кто-нибудь знает способ обойти это глупое поведение?

...