Pergunta

Eu estou usando o plugin jQuery ScrollTo de Ariel Flesler. Tudo é grande, exceto quando a rolagem, a animação arrasta o cursor sobre alguns links que, tendo: gatilhos pairar, causa uma momentânea pendurar-se na animação. Qualquer chance que alguém sabe como elementos desativar: funções pairar enquanto a animação está acontecendo

Foi útil?

Solução

Quando você diz que as ligações têm ": gatilhos hover", que quer dizer que você tenha definido um CSS:? Regra pairar ou que você tenha ligado uma função JavaScript para o evento em foco

Se é CSS, que propriedades que você está definindo que faz com que o enforcamento (I não pode duplicar o enforcamento na minha máquina com uma simples mudança font-size). Tanto quanto eu posso dizer, você não pode impedir que um CSS:. Pairar

Se é JavaScript, você não pode simplesmente desvincular o evento antes de chamar scrollTo?

Um pouco mais de elaboração ou um exemplo seria útil.

Editar:

A aprovação, em resposta ao seu comentário, basicamente você tem que unbind os eventos mouseenter e mouseleave antes de usar scrollTo:

$(...).unbind('mouseenter mouseleave');

Demonstração

Visite http://demos.flesler.com/jquery/scrollTo/# -alvo exemplos e executar o seguinte código no Firebug.

Você pode, em seguida, clique no link "teste de rolagem" para testar o código. Você deverá ver que o navegador não travar quando os paira rato sobre o resto dos links.

Quando a rolagem pára você pode clicar em qualquer um dos "voltar" ligações e vai rolar para trás, só que desta vez não vai desvincular os eventos em foco, para que o navegador deve travar.

Nota: eu não sentir qualquer pendurado em tudo. Você está usando um computador lento ou uma versão mais antiga do jQuery talvez? Deixe-me saber se a demonstração funciona como esperado.

/*
  Inject some CSS to add a background to the elements we
  are going to hover over and increase the font-size to 
  make the hover area bigger.
*/
$('head').append('<style type="text/css"> .back { font-size:3em!important; background-image:url(http://imgs.xkcd.com/comics/useless.jpg); background-repeat:no-repeat; } </style>');

/*
  Setup the hover events -- change the backgroundPosition
  and fade the elements in and out.
*/
function hoverOn() {    
  $(this)
    .css('backgroundPosition','-95px -210px')
    .fadeTo('normal', 1);
}

function hoverOff(){
  $(this)
    .css('backgroundPosition','-260px -110px')
    .fadeTo('normal', 0.5);
}

// Set the default opacity and bind the hover events
$('.back').not('#pane-target a:first')
  .css('opacity', 0.5)
  .hover(hoverOn, hoverOff);

// Modify the first link so that we can use it to trigger the scroll.
$('#pane-target a').eq(0)
  .css('backgroundImage', 'none') // Remove the backgroundImage for clarity
  .unbind('click') // unbind the old "go back" behaviour
  .text('test scroll')
  .click(function(){ 

    // unbind the hover events so that they don't hang the browser
    $('.back').not('#pane-target a:first')
      .unbind('mouseenter mouseleave');

    $('#pane-target').scrollTo(
      'li:eq(5)',
      800,
      {onAfter:function(){
        // re-bind the hover events
        $('.back').not('#pane-target a:first').hover(hoverOn, hoverOff);
      }}
    );

    return false;
  });
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top