Sou novato no jQuery e tenho alguma experiência com o Prototype. No Prototype, existe um método para "piscar" um elemento - ie. destaque-o brevemente em outra cor e faça com que volte ao normal para que os olhos do usuário sejam atraídos para ele. Existe esse método no jQuery? Vejo fadeIn, fadeOut e animar, mas não vejo nada como "flash". Talvez um desses três possa ser usado com entradas apropriadas?
249
$.fn.flash = function(times, duration) { var T = this; times = times || 3; duration = duration || 200; for ( var i=0; i < times; i++ ) { (function() { setTimeout(function() { T.fadeOut(duration, function() { T.fadeIn(duration); }); }, i*duration*2+50); })(i); } };
text-decoration:blink
e remova-o.Respostas:
Meu caminho é .fadein, .fadeout .fadein, .fadeout ......
Mostrar snippet de código
fonte
$('..').delay(100).fadeOut().fadeIn('slow')
var $someElement = $("#someElement"); $someElement.fadeIn(100, function(){ $someElement.fadeOut(100, function(){ /*...etc...*/ }) })
Você pode usar o plugin jQuery Color .
Por exemplo, para chamar a atenção para todas as divs da sua página, você pode usar o seguinte código:
Editar - Novo e aprimorado
A seguir, é utilizada a mesma técnica acima, mas possui os benefícios adicionais de:
Estenda o objeto jQuery:
Exemplo de uso:
fonte
Note: The jQuery UI project extends the .animate() method by allowing some non-numeric styles such as colors to be animated.
- Se você deseja animar cores, PRECISA da UI do jQuery ou de algum outro plugin.Você pode usar animações css3 para exibir um elemento
E você jQuery para adicionar a classe
fonte
@keyframes
eanimation
, portanto, não há necessidade de usar nenhuma versão prefixada além de talvez-webkit-
(para o navegador Blackberry).Após 5 anos ... (E nenhum plugin adicional é necessário)
Este "pulsa" para a cor desejada (por exemplo, branco), colocando uma cor de fundo div por trás e, em seguida, desbotando o objeto novamente.
Objeto HTML (por exemplo, botão):
jQuery (baunilha, sem outros plugins):
elemento - nome da classe
primeiro número em
fadeTo()
- milissegundos para a transiçãosegundo número em
fadeTo()
- opacidade do objeto após desbotar / desbotarVocê pode verificar isso no canto inferior direito desta página da web: https://single.majlovesreg.one/v1/
Edite (willsteel) nenhum seletor duplicado usando $ (this) e valores ajustados para executar um flash de forma aguda (conforme solicitado pelo OP).
fonte
fadeTo(0000)
Metallica$.fn.flashUnlimited=function(){$(this).fadeTo('medium',0.3,function(){$(this).fadeTo('medium',1.0,$(this).flashUnlimited);});}
Você pode chamá-lo assim$('#mydiv').flashUnlimited();
- ele faz o que Majal respondeu acima e chama a si mesmo novamente no final do ciclo.Você poderia usar o efeito de destaque na UI do jQuery para conseguir o mesmo, eu acho.
fonte
Se você estiver usando jQueryUI, há
pulsate
função emUI/Effects
http://docs.jquery.com/UI/Effects/Pulsate
fonte
pulsate
funciona bem no Chrome.fonte
fadeIn
efadeOut
afetando outros elementos irmãos porque alterna adisplay
propriedade css , pareça estranho no meu caso. Mas este corrigiu o problema. Obrigado, funciona elegantemente como um encanto.Você pode usar este plugin (coloque-o em um arquivo js e use-o via tag de script)
http://plugins.jquery.com/project/color
E então use algo como isto:
Isso adiciona um método 'flash' a todos os objetos jQuery:
fonte
Você pode estender ainda mais o método de Desheng Li, permitindo que uma contagem de iterações faça vários flashes da seguinte maneira:
Em seguida, você pode chamar o método com uma hora e um número de flashes:
fonte
var iterationDuration = Math.floor(duration / iterations);
para que você possa dividir por números ímpares, e o tornoureturn this;
para poder encadear outros métodos depois dele.Solução jQuery pura.
(não é necessário jquery-ui / animate / color.)
Se tudo o que você deseja é o efeito "flash" amarelo sem carregar a cor jquery:
O script acima simplesmente faz 1s fadeout amarelo, perfeito para informar ao usuário que o elemento foi atualizado ou algo semelhante.
Uso:
fonte
Esta pode ser uma resposta mais atualizada e é mais curta, pois as coisas foram consolidadas um pouco desde este post. Requer jquery-ui-effect-realce .
http://docs.jquery.com/UI/Effects/Highlight
fonte
Que tal uma resposta realmente simples?
$('selector').fadeTo('fast',0).fadeTo('fast',1).fadeTo('fast',0).fadeTo('fast',1)
Pisca duas vezes ... isso é tudo!
fonte
Não acredito que isso ainda não esteja relacionado a essa questão. Tudo o que você precisa fazer:
Isso faz exatamente o que você deseja, é super fácil, funciona para ambos
show()
ehide()
métodos.fonte
Será que um
efeito de pulso(offline) O plugin JQuery é apropriado para o que você está procurando?Você pode adicionar uma duração para limitar o efeito do pulso no tempo.
Como mencionado pelo JP nos comentários, agora existe seu plugin de pulso atualizado .
Veja o repo do GitHub . E aqui está uma demonstração .
fonte
fonte
Encontrei isso muitas luas mais tarde, mas se alguém se importa, parece que essa é uma boa maneira de fazer algo piscar permanentemente:
fonte
Os seguintes códigos funcionam para mim. Defina duas funções de desvanecimento e desvanecimento e coloque-as no retorno de chamada um do outro.
O seguinte controla os tempos dos flashes:
fonte
Eu estava procurando uma solução para esse problema, mas sem depender da interface do usuário do jQuery.
Isto é o que eu criei e funciona para mim (sem plugins, apenas Javascript e jQuery); - Heres o violino de trabalho - http://jsfiddle.net/CriddleCraddle/yYcaY/2/
Defina o parâmetro CSS atual no seu arquivo CSS como css normal e crie uma nova classe que apenas lide com o parâmetro para alterar, por exemplo, cor de fundo, e defina-o como '! Important' para substituir o comportamento padrão. como isso...
Em seguida, basta usar a função abaixo e passar o elemento DOM como uma string, um número inteiro para o número de vezes que você deseja que o flash ocorra, a classe para a qual deseja mudar e um número inteiro para atraso.
Nota: Se você passar um número par para a variável 'times', você terminará com a classe com a qual começou e, se passar um número ímpar, terminará com a classe alternada. Ambos são úteis para coisas diferentes. Eu uso o 'i' para alterar o tempo de atraso, ou todos disparariam ao mesmo tempo e o efeito seria perdido.
fonte
Como fadein / fadeout, você pode usar animar css / delay
Simples e flexível
fonte
3000 é de 3 segundos
A partir da opacidade 1, ela é reduzida para 0,3, depois para 1 e assim por diante.
Você pode empilhar mais desses.
Apenas o jQuery é necessário. :)
fonte
Existe uma solução alternativa para o erro de plano de fundo animado. Esta lista inclui um exemplo de um método simples de realce e seu uso.
https://gist.github.com/1068231
fonte
Se incluir uma biblioteca é um exagero, aqui está uma solução que é garantida para o trabalho.
Acionador de evento de instalação
Definir a cor de fundo do elemento de bloco
Dentro de setTimeout, use fadeOut e fadeIn para criar um pequeno efeito de animação.
Dentro do segundo setTimeout redefinir a cor de fundo padrão
Testado em alguns navegadores e funciona bem.
fonte
Infelizmente, a resposta principal requer a interface do usuário do JQuery. http://api.jquery.com/animate/
Aqui está uma solução JQuery de baunilha
http://jsfiddle.net/EfKBg/
JS
CSS
HTML
fonte
flash
um objeto jQuery, ele funciona bem.var flash = $("<div class='flash'></div>"); $(".hello").prepend(flash); flash.show().fadeOut('slow');
Aqui está uma versão ligeiramente melhorada da solução colbeerhey. Adicionei uma declaração de retorno para que, no verdadeiro formato jQuery, encadeamos eventos depois de chamar a animação. Também adicionei os argumentos para limpar a fila e pular para o final de uma animação.
fonte
Este pulsará a cor de fundo de um elemento até que um evento de mouseover seja acionado
fonte
Junte tudo isso acima - uma solução fácil para exibir um elemento e retornar à cor original da bg ...
Use assim:
Espero que isto ajude!
fonte
eval
!Aqui está uma solução que usa uma mistura de animações jQuery e CSS3.
http://jsfiddle.net/padfv0u9/2/
Basicamente, você começa alterando a cor para a cor "flash" e, em seguida, usa uma animação CSS3 para deixar a cor desaparecer. Você precisa alterar a duração da transição para que o "flash" inicial seja mais rápido que o desbotamento.
Onde as classes CSS são as seguintes.
fonte
basta dar elem.fadeOut (10) .fadeIn (10);
fonte
Isso é genérico o suficiente para que você possa escrever o código que desejar animar. Você pode até diminuir o atraso de 300ms para 33ms e desbotar cores, etc.
fonte
você pode usar o plug-in jquery Pulsate para forçar a atenção a qualquer elemento html com controle sobre velocidade, repetição e cor.
JQuery.pulsate () * com demonstrações
inicializador de amostra:
fonte