在没有jQueryUI开销的情况下刷一个元素?

时间:2011-10-21 18:41:56

标签: javascript jquery jquery-ui

我正在阅读this question关于如何在jQuery中创建一个元素“flash”,然而,最受欢迎的答案依赖于jQueryUI,如果我需要的是backgroundColor来制作动画,那么它非常大。 。有没有办法在不使用jQueryUI的情况下以类似的方式刷新元素的背景颜色?

4 个答案:

答案 0 :(得分:2)

你可以编写一个包含for循环的函数,每个循环都有一些延迟。在循环的每个循环中,您可以减小/增加颜色值并将其设置为背景。这与animate具有相同的效果。

答案 1 :(得分:1)

这样的事情应该有效(我希望)。

function flash($element, times) {
  var colors = ['#fff', '#000'];
  $element.css('background-color', colors[times % colors.length]);
  if (times === 0) return;
  setTimeout(function () {
    flash($element, times - 1);
  }, 500);
}

在像这样的元素上使用它:flash($('#some_element'), 5)

答案 2 :(得分:0)

一种方式:

setInterval(function(){
  $('#hello').css('background-color', 'red');
}, 100);

setInterval(function(){
  $('#hello').css('background-color', 'green');
}, 150);

DEMO

答案 3 :(得分:-2)

在对该页面上的答案进行一些搜索之后,我找到了一个jQuery workaround的链接,允许人们在jQuery元素上调用函数.highlight()。虽然需要jQuery,但jQueryUI不是。