Справка JQuery - анимированный цвет фона
Используя JQuery, я хочу создать функцию, которая, когда я вызову функцию, приведет к исчезновению цвета фона моего "#page" DIV из определенного цвета CSS в желтый, а затем обратно к исходному фону CSS цвет для # страницы.
Любые идеи о том, как я могу это сделать с помощью JQuery?
Я знаю, что у JQuery есть функция "оживить" и "выделить". Кажется, что "подсветка" может быть подходящим вариантом, но я не уверен.
Спасибо
Ответы
Ответ 1
Его довольно тяжело загружать пользовательский интерфейс jquery только для этой функции, но если вы используете его в любом случае, эффект, который вы хотите, это "выделить"
http://docs.jquery.com/UI/Effects/Highlight
$("div").click(function () {
$(this).effect("highlight", {}, 3000);
});
Ответ 2
function flashColor(id)
{
var container = $('#'+id);
if(container.length)
{
var originalColor = container.css('backgroundColor');
container.animate({
backgroundColor:'yellow'
},'normal','linear',function(){
$(this).animate({
backgroundColor:originalColor
});
});
}
}
Ответ 3
Вам нужен только плагин цвета jQuery, если вы хотите использовать именованные цвета (например, 'yellow'
вместо '#FFFF9C'
). Я имел переменный успех с animate
, но обнаружил, что использование его встроенного обратного вызова плюс jQuery css
, похоже, работает в большинстве случаев.
Попробуйте добавить эту функцию:
$(document).ready(function () {
$.fn.animateHighlight = function (highlightColor, duration) {
var highlightBg = highlightColor || "#FFFF9C";
var animateMs = duration || 1000;
var originalBg = this.css("background-color");
if (!originalBg || originalBg == highlightBg)
originalBg = "#FFFFFF"; // default to white
jQuery(this)
.css("backgroundColor", highlightBg)
.animate({ backgroundColor: originalBg }, animateMs, null, function () {
jQuery(this).css("backgroundColor", originalBg);
});
};
});
и называя его так:
$('#page').animateHighlight();
Протестировано в IE9, FF4 и Chrome, используя jQuery 1.5 (для этого не нужен плагин UI).
Ответ 4
Вы можете использовать встроенную функцию jQuery animate() с обратным вызовом, чтобы вернуть div
обратно к исходному цвету. Или используйте плагин jQuery pulse, чтобы сделать это автоматически.
Надеюсь, что это поможет!
Ответ 5
Вам нужен плагин color для анимации между цветами.
См. предыдущий SO q и
Ответ 6
Вы можете проверить плагины, такие как этот, чтобы достичь того, что некоторые называют "вспышкой".
К сожалению, поиск термина "jQuery flash plugin" дает сотни результатов для плагинов для SWF-плееров.
Ответ 7
проверить со всеми браузерами
$(document).ready(function () {
var id = $("div#1"); // div id=1
var color = "lightblue"; // color to highlight
var delayms = "800"; // mseconds to stay color
$(id).css("backgroundColor",color)
.css("transition","all 1.5s ease") // you may also (-moz-*, -o-*, -ms-*) e.g
.css("backgroundColor",color).delay(delayms).queue(function() {
$(id).css("backgroundColor","");
$(id).dequeue();
});
});
Ответ 8
Только это помогло мне. Источник: questions/5205445
$("div").click(function()
{
// do fading 3 times
for(i=0;i<3;i++)
{
$(this).fadeTo('slow', 0.5).fadeTo('slow', 1.0);
}
});