Estou tentando animar uma alteração no backgroundColor usando o jQuery no mouseover.
Eu verifiquei algum exemplo e parece que ele está certo, ele funciona com outras propriedades, como fontSize, mas com backgroundColor eu recebo o erro js "Invalid Property". O elemento com o qual estou trabalhando é uma div.
$(".usercontent").mouseover(function() {
$(this).animate({ backgroundColor: "olive" }, "slow");
});
Alguma ideia?
javascript
jquery
colors
jquery-animate
SteveCl
fonte
fonte
rgba(0, 0, 0, 0)
vez do valor vazio / nulo esperado quando não há uma cor de segundo plano definida. Para "consertar" isso, o elemento deve ter a cor de fundo inicial.Respostas:
O plugin de cores é apenas 4kb muito mais barato que a biblioteca da interface do usuário. É claro que você desejará usar uma versão decente do plug-in e não alguma coisa antiga que não lida com o Safari e trava quando as transições são muito rápidas. Como uma versão minificada não é fornecida, você pode testar vários compressores e criar sua própria versão mínima. A YUI obtém a melhor compactação neste caso, precisando de apenas 2317 bytes e, como é muito pequena - aqui está:
fonte
v1
ramo para obter a versão antiga (que ainda funciona), mas é muito mais leve.Eu tive o mesmo problema e o corrigi incluindo a interface do usuário do jQuery. Aqui está o script completo:
fonte
Faça isso com CSS3-Transitions. O suporte é excelente (todos os navegadores modernos, até o IE). Com o Compass e o SASS, isso é feito rapidamente:
CSS puro:
Eu escrevi um artigo em alemão sobre esse tópico: http://www.solife.cc/blog/animation-farben-css3-transition.html
fonte
O Bitstorm tem o melhor plugin de animação em cores jquery que eu já vi. É uma melhoria no projeto de cores jquery. Também suporta rgba.
http://www.bitstorm.org/jquery/color-animation/
fonte
Você pode usar a interface do usuário do jQuery para adicionar essa funcionalidade. Você pode pegar exatamente o que precisa, portanto, se você deseja animar cores, tudo o que precisa incluir é o código a seguir. Eu obtive se da última UI do jQuery (atualmente 1.8.14)
É apenas 1.43kb após a compactação com o YUI:
Você também pode animar cores usando transições CSS3, mas é suportado apenas por navegadores modernos.
Usando propriedade taquigráfica:
Diferentemente das transições javascript regulares, as transições CSS3 são aceleradas por hardware e, portanto, mais suaves. Você pode usar o Modernizr para descobrir se o navegador suporta transições CSS3; caso contrário, você pode usar o jQuery como substituto:
Lembre-se de usar stop () para interromper a animação atual antes de iniciar uma nova animação; caso contrário, quando você passar o elemento muito rápido, o efeito continuará piscando por um tempo.
fonte
Para quem encontrar isso. É melhor usar a versão da interface do usuário do jQuery porque ela funciona em todos os navegadores. O plug-in de cores tem problemas com o Safari e o Chrome. Às vezes só funciona.
fonte
Você pode usar 2 divs:
Você pode colocar um clone em cima dele e desbotar o original enquanto desbota o clone.
Quando o desbotamento estiver concluído, restaure o original com a nova BG.
Exemplo de jsFiddle
.toggleClass()
.offset()
.fadeIn()
.fadeOut()
fonte
Eu usei uma combinação de transições CSS com JQuery para o efeito desejado; obviamente navegadores que não suportam transições CSS não serão animados, mas é uma opção leve que funciona bem para a maioria dos navegadores e para meus requisitos é uma degradação aceitável.
Jquery para alterar a cor do plano de fundo:
CSS usando a transição para diminuir a alteração da cor de fundo
fonte
Atualmente, o plugin de cores jQuery suporta as seguintes cores nomeadas:
fonte
Eu gosto de usar delay () para fazer isso, aqui está um exemplo:
Isso pode ser chamado por uma função, com "elemento" sendo a classe de elemento / nome / etc. O elemento aparecerá instantaneamente com o plano de fundo # FCFCD8, mantenha-o pressionado por um segundo e depois desapareça em #EFEAEA.
fonte
Basta adicionar o seguinte snippet abaixo do seu script jquery e aproveitar:
Veja o exemplo
Referência para mais informações
fonte
Encontrei esta página com o mesmo problema, mas com os seguintes problemas:
Com o exposto, praticamente descartamos todas as respostas. Considerando que meu desbotamento das cores era muito simples, usei o seguinte corte rápido:
A descrição acima cria uma div temporária que nunca é colocada no fluxo do documento. Eu então uso a animação interna do jQuery para animar uma propriedade numérica desse elemento - nesse caso
width
- que pode representar uma porcentagem (0 a 100). Em seguida, usando a função step, transfiro essa animação numérica para a cor do texto com uma simples cascata hexadecimal.O mesmo poderia ter sido alcançado com
setInterval
, mas, usando esse método, você pode se beneficiar dos métodos de animação do jQuery - como.stop()
- e você pode usareasing
eduration
.Obviamente, ele é útil apenas para o desbotamento simples da cor; para conversões de cores mais complicadas, você precisará usar uma das respostas acima - ou codificar sua própria matemática do desbotamento da cor :)
fonte
Tente este:
você pode visualizar o exemplo aqui: http://jquerydemo.com/demo/jquery-animate-background-color.aspx
fonte
O plug-in ColorBlend faz exatamente o que você deseja
http://plugins.jquery.com/project/colorBlend
Aqui está o código do meu destaque
fonte
Se você não deseja animar seu plano de fundo usando apenas a funcionalidade principal do jQuery, tente o seguinte:
fonte
Tente usá-lo
fonte
Tente este:
Forma revisada com efeitos:
fonte