Jquery div strobe

时间:2011-05-17 03:54:44

标签: javascript jquery

我想像jquery那样用闪光灯做一个div。每500毫秒基本上将背景颜色从黑色更改为白色。

我该怎么做?

<div id="strobe"></div>

谢谢!

3 个答案:

答案 0 :(得分:5)

setInterval()功能是你的朋友。

你不需要使用JQuery,你可以在纯粹的javascript中做到这一点 - 你就是这样做的:

var elem = document.getElementById("strobe");
var strobeBackground = function() {
   (elem.style.backgroundColor == "white") ? elem.style.backgroundColor = "black" : elem.style.backgroundColor = "white";
}

setInterval(strobeBackground, 500);

但是如果你想在jQuery中这样做,那么它是:http://jsfiddle.net/Ru9xt/2/

HTML看起来像这样:

 <div id="strobe" class="white">Hello</div>

CSS看起来像这样:

.white {
    background-color: white;
}
.black {
    background-color: black;
}

JS在这里:

setInterval(function () {
        $("#strobe").toggleClass('black');
    }, 500);

答案 1 :(得分:1)

您可以使用jQuery检查元素的背景颜色,并使用获取或设置元素样式的$.css()方法以及setInterval()方法设置它闪烁的时间间隔它设置了一个重复发生的方法调用。

function toggle(){
    var strobe = $('#strobe');
    if(strobe.css('background-color') == '#FFFFFF'){
        strobe.css('background-color', '#000000');
    }else{
        strobe.css('background-color', '#FFFFFF');
    }
}

setInterval(toggle, 500);

答案 2 :(得分:0)

我改用了课程:

/**
 * Initialise strobe using classes. By Emmanuel Mahuni - 2015
 * @param {string} sel selector
 * @param {int} i speed in milli-seconds
 * @param {string} c1 class 1
 * @param {string} c2 class 2
 * @returns {int} the interval id so that you can clear it later
 */
function initStrobeClass(sel, i, c1, c2) {
    return setInterval(strobeClass, i,sel,c1,c2);
}

/**
 * Strobe using classes. By Emmanuel Mahuni - 2015
 * @param {string} sel selector
 * @param {string} c1 class 1
 * @param {string} c2 class 2
 */
function strobeClass(sel, c1, c2) {
    var s = $(sel);
    s.toggleClass(c1 + " " + c2);
}

/**
 * Clear the strobe to a particular class
 * @param {int} t interval id
 * @param {string} sel selector of the element
 * @param {string} c the class to set after clearing the strobe
 * @returns {null} returns null to make sure we don't come back here again, make sure the interval id is set by this and do the checking to eliminate errors.
 */
function clearStrobeToClass(t, sel, c) {
    clearInterval(t);
    $(sel).attr('class', c);
    return null;
}

用法:

当倒计时低于181时,下面的代码将开始扫描退出按钮。当它超过180时,它将恢复它。

if (autoLogoutCountdown <= 180 && (typeof strobeLogoutTimer !== typeof NaN)) {
    strobeLogoutTimer = initStrobeClass('#logout', 1000, 'logoutflash', 'logout');
} else if (autoLogoutCountdown > 180 && (typeof strobeLogoutTimer === typeof NaN)) {
    strobeLogoutTimer = clearStrobeToClass(strobeLogoutTimer, '#logout', 'logout');
}

我希望这有助于某人