点击添加动画链接时,我想使用动画功能突出显示 文本字段的边框
像这样:
Js在这里小提琴: http://jsfiddle.net/N9um8/20/
HTML:
<div>
<p>
<input type="text" name="search" id="search" placeholder="Search for people...." class="field_style">
</p>
<p> <a href="javascript:void(0);" class="add_animation">Add Animation</a> </p>
</div>
<p class="styling"> I want it like this when click on Add Animation :</p>
<div>
<p>
<input type="text" name="test_search" id="test_search" placeholder="Search for people...." class="test_field_style">
</p>
</div>
CSS:
.field_style { width:400px; }
.styling { color:red; }
.test_field_style {
border-color: #6EA2DE;
box-shadow: 0 0 10px #6EA2DE;
width:400px;
}
Jquery:
$(".add_animation").click(function (){
$("#search").focus().animate({ "background-color": "#B6DADA" }, 800, "linear");
});
答案 0 :(得分:1)
backgroundColor
不是jQuery动画的动画属性。通常,它不能为颜色设置动画。使用简单的CSS转换会有更好的时间,尽管它们不受广泛支持(IE9-不会)。
.field_style {
width:400px;
transition: box-shadow .8s linear;
outline: 0;
}
.field_style:focus {
box-shadow: 0 0 10px #6EA2DE;
border-color: #6EA2DE;
}
顺便说一下,.8s对于动画有点长。
答案 1 :(得分:1)
您有几种不同的选择。最好的表现肯定是CSS:
JS:
$(".add_animation").click(function (){
$("#search").focus(function() {
$(this).css({backgroundColor: '#B6DADA'});
}).blur(function() {
$(this).css({backgroundColor: '#fff'});
}).focus();
});
CSS:
#search {
-webkit-transition: .8s background linear;
-moz-transition: .8s background linear;
-ms-transition: .8s background linear;
-o-transition: .8s background linear;
transition: .8s background linear;
}
另一种方法是使用jQuery插件或其他东西(我最喜欢的名为jquery color)来为你的颜色设置动画。
$(".add_animation").click(function (){
$("#search").focus(function() {
$(this).animate({backgroundColor: '#B6DADA'}, 800, 'linear');
}).blur(function() {
$(this).animate({backgroundColor: '#fff'}, 800, 'linear');
}).focus();
});
答案 2 :(得分:0)
尝试使用此插件:http://www.bitstorm.org/jquery/color-animation/并附加:
<script src="http://www.bitstorm.org/jquery/color-animation/jquery.animate-colors-min.js"></script>
这里有一个例子: