Javascript jQuery";闪烁的突出显示“;对div的影响?

Javascript jQuery";闪烁的突出显示“;对div的影响?,javascript,jquery,css,highlight,effects,Javascript,Jquery,Css,Highlight,Effects,我正在寻找一种方法来做以下事情 我将添加到页面,ajax回调返回一些值。由ajax调用中的值填充,然后将前置到另一个,作为表列 我想引起用户的注意,向她/他显示页面上有新内容。 我希望闪烁,而不是显示/隐藏,而是高亮显示/取消高亮显示一段时间,比方说5秒 我一直在看blink插件,但据我所知,它只在元素上显示/隐藏 顺便说一句,解决方案必须是跨浏览器的,是的,IE不幸包括在内。我可能需要稍微修改一下才能让它在IE中工作,但总的来说它必须工作。突出显示效果是你想要的 $("div").click(

我正在寻找一种方法来做以下事情

我将
添加到页面,ajax回调返回一些值。
由ajax调用中的值填充,然后将
前置到另一个
,作为表列

我想引起用户的注意,向她/他显示页面上有新内容。
我希望
闪烁,而不是显示/隐藏,而是高亮显示/取消高亮显示一段时间,比方说5秒

我一直在看blink插件,但据我所知,它只在元素上显示/隐藏

顺便说一句,解决方案必须是跨浏览器的,是的,IE不幸包括在内。我可能需要稍微修改一下才能让它在IE中工作,但总的来说它必须工作。

突出显示效果是你想要的

$("div").click(function () {
      $(this).effect("highlight", {}, 3000);
});
可以找到文档和演示


编辑
也许脉动效应更合适,请参见


编辑#2
要调整不透明度,可以执行以下操作:

$("div").click(function() {
  // do fading 3 times
  for(i=0;i<3;i++) {
    $(this).fadeTo('slow', 0.5).fadeTo('slow', 1.0);
  }
});
$(“div”)。单击(函数(){
//你要洗3次吗

对于(i=0;i您可能需要查看jQuery UI。具体来说,突出显示效果:

看看。它有一个名为“脉动”的效果,可以完全满足您的需要

$("#trigger").change(function() {$("#div_you_want_to_blink").effect("pulsate");});

对于那些不想包含整个jQuery UI的用户,可以使用

要制作更改不透明度的循环动画,请执行以下操作:

$('#target').pulse({opacity: 0.8}, {duration : 100, pulses : 5});

它很轻(小于1kb),允许您循环任何类型的动画。

如果您不想占用jQuery UI的开销,我最近使用
.animate()
编写了一个递归解决方案。您可以根据需要自定义延迟和颜色

function doBlink(id, count) {
    $(id).animate({ backgroundColor: "#fee3ea" }, {
        duration: 100, 
        complete: function() {

            // reset
            $(id).delay(100).animate({ backgroundColor: "#ffffff" }, {
                duration: 100,
                complete: function() {

                    // maybe call next round
                    if(count > 1) {
                        doBlink(id, --count);
                    }
                }
            });

        }
    });
}
当然,您需要使用颜色插件获取
backgroundColor
以使用
.animate()

为了提供一点上下文,我这样称呼它。我需要滚动页面到我的目标div,然后闪烁它

$(window).load(function(){
    $('html,body').animate({
        scrollTop: $(scrollToId).offset().top - 50
    }, {
        duration: 400,
        complete: function() { doBlink(scrollToId, 5); }
    });
});

我想你可以用我给出的类似答案。你可以在这里找到它

  • 应该适用于所有浏览器,因为它仅适用于Javascript和jQuery

注意:此解决方案不使用jQuery UI,还有一个提琴,因此在代码中实现它之前,您可以根据自己的喜好进行操作。

这是我创建的自定义闪烁效果,它使用
setInterval
fadeTo

HTML-

<div id="box">Box</div>
就这么简单


我使用不同的预定义颜色,例如:

theme = {
    whateverFlashColor: '#ffffaa',
    whateverElseFlashColor: '#bbffaa',
    whateverElseThenFlashColor: '#ffffff',
};
像这样使用它们

$('#element').effect("highlight", {color:theme.whateverFlashColor}, 1000);
$('#element').blink(3); // 3 Times.

简单:)

只要给elem.fadeOut(10).fadeIn(10);

如果您还没有使用Jquery UI库,并且希望模拟效果,那么您可以做的非常简单

$('#blinkElement').fadeIn(100).fadeOut(100).fadeIn(100).fadeOut(100);
您还可以使用数字来获得更快或更慢的数字,以更好地适合您的设计

这也可以是一个全局jquery函数,因此您可以在整个站点上使用相同的效果。还请注意,如果将此代码放入for循环中,您可以有100万个脉冲,因此您不受默认值6或默认值的限制

编辑: 将其添加为全局jQuery函数

$.fn.Blink = function (interval = 100, iterate = 1) {
    for (i = 1; i <= iterate; i++)
        $(this).fadeOut(interval).fadeIn(interval);
}

尝试使用jquery.blink.js插件:


jQuery('span').blink({color:'white'},{color:'black'},50);
#享受吧!


$(文档).ready(函数(){
var计数=0;
做{
$(“#toFlash”).fadeOut(500)、fadeIn(500);
计数++;
}while(count<10);/*设置要闪烁的时间*/
});

查看它-

<input type="button" id="btnclick" value="click" />
var intervalA;
        var intervalB;

        $(document).ready(function () {

            $('#btnclick').click(function () {
                blinkFont();

                setTimeout(function () {
                    clearInterval(intervalA);
                    clearInterval(intervalB);
                }, 5000);
            });
        });

        function blinkFont() {
            document.getElementById("blink").style.color = "red"
            document.getElementById("blink").style.background = "black"
            intervalA = setTimeout("blinkFont()", 500);
        }

        function setblinkFont() {
            document.getElementById("blink").style.color = "black"
            document.getElementById("blink").style.background = "red"
            intervalB = setTimeout("blinkFont()", 500);
        }

    </script>

    <div id="blink" class="live-chat">
        <span>This is blinking text and background</span>
    </div>

间隔变量;
var区间b;
$(文档).ready(函数(){
$('#btnclick')。单击(函数(){
blinkFont();
setTimeout(函数(){
间隔时间;
clearInterval(间隔b);
}, 5000);
});
});
函数blinkFont(){
document.getElementById(“闪烁”).style.color=“红色”
document.getElementById(“闪烁”).style.background=“黑色”
intervalA=setTimeout(“blinkFont()”,500);
}
函数setblinkFont(){
document.getElementById(“闪烁”).style.color=“黑色”
document.getElementById(“闪烁”).style.background=“红色”
intervalB=setTimeout(“blinkFont()”,500);
}
这是闪烁的文本和背景

因为我没有看到任何基于jQuery的解决方案不需要额外的库,所以这里有一个简单的解决方案,它比使用fadeIn/fadeOut的解决方案灵活一些

$.fn.blink = function (count) {
    var $this = $(this);

    count = count - 1 || 0;

    $this.animate({opacity: .25}, 100, function () {
        $this.animate({opacity: 1}, 100, function () {
            if (count > 0) {
                $this.blink(count);
            }
        });
    });
};
像这样使用它

$('#element').effect("highlight", {color:theme.whateverFlashColor}, 1000);
$('#element').blink(3); // 3 Times.

我找不到我想要的东西,所以我写了一些尽可能基本的东西。突出显示的类可能只是背景色

var blinking = false; // global scope

function start_blinking() {
    blinking = true;
    blink();
}

function stop_blinking() {
    blinking = false;
}

function blink(x=0) {
    $("#element").removeClass("highlighted"); // default to not highlighted to account for the extra iteration after stopping

    if (blinking) {
        if (x%2 == 0) $("#element").addClass("highlighted"); // highlight on even numbers of x
        setTimeout(function(){blink(++x)},500); // increment x and recurse
    }
}

请不要。如果必须的话,只需用高亮效果()高亮显示它,但不要让它闪烁。@tv我想短暂的两到三次“闪烁”(其中“闪烁”可能是一些微妙的东西,比如动画边框发光或类似的东西)好的,没有刺激性,但是长时间的老式眨眼肯定是不好的。呵呵,我知道眨眼很刺激,但实际上它在这里是有目的的。用户不希望整天坐在显示器旁边,所以他必须看看距离是否有变化。你们这些家伙很搞笑。网页只用于什么你们不认为他们是对的吗?我不想强调,我需要一个眨眼,因为我正在写一个过程监视器页面,在大屏幕电视上观看,它需要闪烁红色并继续,所以人们的眼睛被吸引。可能重复的脉动是我要找的。非常感谢。只是,有没有办法阻止它完全褪色。只是为了褪色,比如说50%的不透明度?也许只是为了链接高亮效果几次?仍然需要jQuery UI“效果”@JeromeJaglale我在没有jQuery UI的情况下使用它,因为不透明度的改变可以在jQuery中单独完成。它应该是
$('#element').blink(3); // 3 Times.
var blinking = false; // global scope

function start_blinking() {
    blinking = true;
    blink();
}

function stop_blinking() {
    blinking = false;
}

function blink(x=0) {
    $("#element").removeClass("highlighted"); // default to not highlighted to account for the extra iteration after stopping

    if (blinking) {
        if (x%2 == 0) $("#element").addClass("highlighted"); // highlight on even numbers of x
        setTimeout(function(){blink(++x)},500); // increment x and recurse
    }
}