2010-07-16 2 views
2

У меня есть простая HTML-страница и некоторый javascript, используя базовый метод $ (# element) .fadeOut из jQuery при событии mouseover. Я также использую метод $ (# element) .hide().jQuery :: когда я использую fadeIn(), моя страница перемещает фокус!

Но мой фокус страницы сдвигается вверх! Смысл: если я немного прокручиваю вниз и наводил на мышку элемент (который переключает скрипт), сценарий выполняется хорошо, но мой скроллер немедленно поднимается, и я теряю, куда прокручивал.

Как это исправить?

Вот мой код:

function swapElements(unfadeElement, how, callbackExecute) 
{ 
    if (unfadeElement==swapper.active) 
    return; 

    if (how!="slow" && how!="fast") 
    return; 

    var fadeElement=swapper.active; 

    $("#" + fadeElement).hide(); 
    $("#" + unfadeElement).fadeIn(how,callbackExecute); 
    swapper.active=unfadeElement; 
} 

Функция FadeIn:

function fadeInElement(element, how, callbackExecute) 
{ 
    //pre: how is "slow" or "fast" 
    if (how!="slow" && how!="fast") 
    return; 
    $("#"+element).fadeIn(how, callbackExecute); 
} 

Вызов пример сценария:

<a href="javascript: void(0)" onmouseover="fadeIn('carpets','slow',void(0))"> Carpets</a> 

EDIT: Добавлены некоторые HTML код

<div id="menuDiv"> 
.................... 
         <div id="menu1" class="menuDivLink"> 
         <a href="javascript: void(0)" onmouseover="swapper.fadeIn('carpets','slow',void(0))"> Carpets</a> 
         </div> 
         <div id="menu2" class="menuDivLink"> 
         <a href="javascript: void(0)" onmouseover="swapper.fadeIn('rugs','slow',void(0))">Rugs</a> 
         </div> 
         <div id="menu3" class="menuDivLink"> 
         <a href="#" onmouseover="swapper.fadeIn('windows','slow',void(0))">Link1</a> 
         </div> 
............ 
</div> 

Кроме того, может ли какая-то из моих проблем вызвать эту проблему? Заранее спасибо

ответ

0

Я пробовал то, что у вас было ... (минус изменения fadeInElement вместо fadeIn), и это работает для меня. В IE7 и FF3.5 + он остается в том же месте, что и ранее прокручивается до ... Я только что добавил br теги для имитации пробела, и страница не прокручивалась при наведении курсора мыши. Может быть, вы можете разместить больше своего HTML-кода, чтобы узнать, может ли быть что-то еще?

<a href="javascript: void(0)" onmouseover="fadeInElement('carpets','slow',void(0))"> Carpets</a> 
+0

Насколько я ненавижу использовать их, я заставил себя использовать простую таблицу над несколькими вложенными и выстроившимися div. Ну, это сработало отлично - фокус, совпадение, все. Значение Я должен вернуться к основам HTML об этих элементах DIV ... – George

0

Попробуйте использовать .animate() вместо FadeIn, что-то вроде

.animate ({непрозрачности: 1}, 300, callBackFunction);

 Смежные вопросы

  • Нет связанных вопросов^_^