1

これは私のHTMLです

<div id="c">
    <div class="base">
        <div class="cb out" id="red" data-color="Red">
        </div>
    </div>
    <div class="base">
        <div class="cb out" id="green" data-color="Green">
        </div>
    </div>
    <div class="base">
        <div class="cb out" id="blue" data-color="Blue">
        </div>
    </div>
</div>

クラスを削除し、jquery-uiを使用してoutクラスを追加したいと思います。inこれはコードです:

    //focuse mouseower
    function fmo(element) {
        var $element = $(element);
        $element.removeClass("out");
        $element.addClass("in",300);
    }

    //blur mouseout
    function bmo(element) {
        var $element = $(element);
        $element.removeClass("in");
        $element.addClass("out",300);

    }
    function ready() {
        $(".cb").mouseover(function () { fmo(this); });
        $(".cb").mouseout(function () { bmo(this); })
        $(".cb").focus(function () { fmo(this); });
        $(".cb").blur(function () { bmo(this); });
    }
    $(function () { ready(); });

上記のコードは機能しませんが、jquery-ui参照を削除し、jqueryを使用してこのコードでジョブを実行すると、次のようになります。

    //focuse mouseower
    function fmo(element) {
        var $element = $(element);
        $element.removeClass("out");
        $element.addClass("in");
    }

    //blur mouseout
    function bmo(element) {
        var $element = $(element);
        $element.removeClass("in");
        $element.addClass("out");

    }
    function ready() {
        $(".cb").mouseover(function () { fmo(this); });
        $(".cb").mouseout(function () { bmo(this); })
        $(".cb").focus(function () { fmo(this); });
        $(".cb").blur(function () { bmo(this); });
    }
    $(function () { ready(); });

できます。どうしたらいいかわかりませんが、本当に助けが必要です。 これを更新 するのが私のスタイルです(結果に影響する可能性があると思います)

<style type="text/css">
    .out {
        display: inline-block;
        margin-left: 5px;
        background-color: #56a100;
        opacity: 0.5;
        margin: auto;
        width: 70%;
        height: 70%;
    }

    .in {
        display: inline-block;
        margin-left: 5px;
        background-color: #56a100;
        opacity: 1;
        margin: auto;
        width: 100%;
        height: 100%;
    }

    .base {
        display: inline-block;
        width: 50px;
        height: 50px;
        margin-left: 5px;
        margin-top: 100px;
    }
</style>

ここにコードをアップロードしました

4

2 に答える 2

3

これを試して

$(function(){ 
    $(".cb").on('mouseenter', function(){ 
        $(this).stop(1,1).removeClass("out").addClass("in", 300);
    })
    .on('mouseleave', function(){ 
        $(this).stop(1,1).removeClass("in").addClass("out",300); 
    });
});​

デモ。

于 2012-07-21T14:04:08.680 に答える
0

add / removeクラスの2番目のパラメーターはどこで取得しましたか?

キューを使用し、連鎖を使用し、関数を作成してコードを再利用します。

function helper (_elem, add, remove){
  var elem = $(_elem);
    elem.removeClass(remove).delay(300).queue(
     function(next){
        elem.addClass(add);
        next();
     }
  );
}

//focus mouseower
function fmo() {
  helper(this, "in","out");
}

//blur mouseout
function bmo() {
  helper(this, "in","out");
}

function ready() {
    $(".cb").on("mouseover focus", fmo).on("mouseout blur", fmo);
}
$(ready);
于 2012-07-21T13:09:19.463 に答える