1

フォームを検証する小さなプラグインを構築しています。入力背景を白色から赤色にアニメーション化するアニメーションを追加しようとしています (警告のサインとして)。私はまだ CSS3 アニメーションに慣れていません。入力フィールド内で左から右にスライドし、白から赤にスライドする CSS3 アニメーションを実現する最良の方法は何ですか?

以下は、アニメーションが発生するためのクラスを追加します。

$(this).addClass('animationBG');

次に、アニメーション自体は次のとおりです。

.animationBG{
    -webkit-animation-name: bgAnimation;
    -webkit-animation-duration: 3s;
    animation-iteration-count: infinite;
}

@-webkit-keyframes bgAnimation {
  from {
    background-color:#fff;
  }

  to {
    background-color:red;
  }
}

完全なコードはこちら。

4

1 に答える 1

1

これが解決策のフィドルです。これには、透明度のある別の絶対配置 div を使用することが含まれます。

http://jsfiddle.net/jessekinsman/xywKm/3/

HTML

    <div class="container">
    <div class="background">  
    </div>
    <input type="text" name="test" class="white" /> 
</div>

CSS

* {
    box-sizing: border-box;
    -webkit-box-sizing: border-box;

}
.container {
    width: 200px;
    height: 50px;
    overflow: hidden;
    position: relative;
}

.background {
    position: absolute;
    left: 100%;
    background: red;
    width: 100%;
    height: 100%;
    -webkit-transition: left 300ms linear;
    transition: left 300ms linear;
    opacity: 0.5;
    -webkit-opacity: 0.5;
    z-index:0;
}
.background.view {
    left: 0;
}

.white {
    background-color: white;
}
.red {
    background-color: red;
}
input {
    background-color: transparent none;
    width: 100%;
    height: 100%;
    z-index: 100;
}

クラスを追加および削除するためだけのjQuery

$("input").focus(function(e){
    $(".background").addClass("view");
});
$("input").focusout(function(e){
    $(".background").removeClass("view");
});

入力要素に緩めたくない特定のスタイリングがない限り、おそらく最良のオプションです。次に、背景画像を使用する必要があります。

ここにそのフィドルへのリンクがあります http://jsfiddle.net/jessekinsman/5aL4L/1/

また、いくつかの基準が満たされるまでアニメーションをループさせたいかどうかもわかりませんでした。その場合は、css 変換オプションを使用して、条件が満たされるまでループさせる必要があります。

于 2013-03-12T17:40:34.163 に答える