-3

Webサイトにテキストを配置して、マウスオーバーの色を変更し、しばらく(たとえば2秒)遅れて元のマウスアウトの色に戻すようにします。

JavaScriptを使用してそれを行うことは可能ですか?

4

4 に答える 4

1

jQueryを使用すると、次のようなことができます(JSFiddleはこちら

HTML:

<a id='v1'>Hello</a>​

JS:

​setTimeout(function() {
    $('#v1').css('color','#777');
}​,2000);​

編集:完全なJSFiddleの例はこちら

JS:

$('#v1').hover(function() {
     $(this).css('color','#777');   
}, function() {
    setTimeout(function() {
        $('#v1').css('color','#000');
     },2000);
});

</ p>

于 2012-04-16T13:31:38.423 に答える
1

この種の機能は、setTimeout やその他の種類の JavaScript を使用せずに、可能な場合は CSS3 で提供する必要があります。したがって、以前に提案された IE 用の Javascript ソリューションの 1 つを選択すると仮定すると、この CSS を他のすべての最新ブラウザーに使用するだけです。

html/css

<span>hover me</span>

span {
    color : green;
    -webkit-transition : color 2s linear;
    -msie-transition : color 2s linear;
    -moz-transition : color 2s linear;
    -o-transition : color 2s linear;
    transition : color 2s linear;
}

span:hover {
    color : red;
}
于 2012-04-16T13:45:31.107 に答える
0

この関数を使用して、テキストに追加onmouseout="timedFunction()"します。

function timedFunction{    
    var timeout = setTimeout("changeColor()",timeInMilliseconds);
}
于 2012-04-16T13:32:10.130 に答える
-2

以下は、setTimeout を使用した実際の例です。

css: .text { 色: 赤; } .text.hover { color: yellow; }

JavaScript:

var timeoutId = null;
$(".text").hover(function() {
    if (timeoutId != null) {
        clearTimeout(timeoutId);
        timeoutId = null;
    }
    $(this).addClass("hover");
}, function () {
    var $element = $(this);
    timeoutId = setTimeout(function() {
        $element.removeClass("hover");
    }, 500);
});​

そして、ここに jsfiddle があります: http://jsfiddle.net/9TJfD/8/

于 2012-04-16T13:43:20.523 に答える