Implementei o fancybox2 em um site de desenvolvimento.
Quando eu uso o fancybox (clique no link etc), todo o html muda para trás - e vai para o topo. Ele está funcionando bem em outra demonstração, mas quando arrasto o mesmo código para este projeto, ele salta para o topo. Não apenas com os links para divs inline, mas também para uma galeria de imagens simples.
Alguém já passou por isso?
jquery
css
fancybox-2
xerifederek
fonte
fonte
Respostas:
Na verdade, isso pode ser feito com um ajudante no Fancybox 2.
http://davekiss.com/prevent-fancybox-from-jumping-to-the-top-of-the-page/
fonte
locked
estiver definido comofalse
.) Esta é uma solução temporária para um problema que pode criar outro para alguns cenários. Este era um bug e foi corrigido no último master github.com/fancyapps/fancyBox/archive/master.zipJordanj77 está correto, mas a solução mais fácil é ir para a folha de estilo
jquery.fancybox.css
e comentar a linha dizendooverflow: hidden !important;
na seção.fancybox-lock
fonte
Sei que essa é uma questão antiga, mas acho que encontrei uma boa solução para ela. O problema é que a caixa extravagante altera o valor de estouro do corpo para ocultar as barras de rolagem do navegador.
Como Dave Kiss aponta, podemos impedir a caixa extravagante de fazer isso adicionando os seguintes parâmetros:
Mas, agora podemos rolar a página principal enquanto olhamos para nossa janela de caixa extravagante. É melhor do que pular para o topo da página, mas provavelmente não é o que realmente queremos.
Podemos evitar a rolagem da maneira certa adicionando os próximos parâmetros:
E adicione essas funções de galambalaz. Veja: Como desabilitar a rolagem temporariamente?
fonte
O problema é que fancyBox altera o valor de estouro do corpo para ocultar as barras de rolagem do navegador. Não consegui encontrar uma opção para alternar esse comportamento.
Você pode remover esta seção do código fancyBox para evitá-lo:
fonte
Apesar do fato de que a maneira adequada de resolver esse problema é através das opções que o fancybox oferece ( consulte esta resposta ), CSS poderia ser usado para resolver o problema. Não há necessidade de editar o arquivo css da biblioteca, basta adicioná-lo à folha de estilo principal do aplicativo:
O código redefine o estouro original do elemento. O problema é que
overflow: hidden;
oculta a barra de rolagem no<html>
elemento, o que faz com que a página "pule" para o topo. A fim de preservar a posição da barra de rolagem, substituímos o estouro comoverflow: visible;
fonte
<body>
ou / e o<html>
pode terheight: 100%
Isso também ajudou
fonte
A resposta aceita não é completa, pois na verdade não resolve o problema, apenas o evita! Aqui está uma resposta mais completa que realmente fornece a funcionalidade desejada enquanto corrige o problema de salto de janela:
fonte
Talvez essa resposta esteja um pouco atrasada, mas talvez possa ajudar no futuro, se depois de clicar / fechar uma imagem chique de fazer seu site rolar para o topo, você poderia simplesmente excluir o:
ou melhor usar:
Na versão fancyBox: 2.1.5 (Sex, 14 de junho de 2013), essa parte do código está na linha 897.
fonte
Você pode realmente codificar assim se estiver usando a função padrão do fancybox:
fonte
Eu consertei com:
no
.fancybox-lock
corpo emjquery.fancybox.css
. E a barra de rolagem não pula :)fonte