3

当单击Add Animation Link时,我想使用animate函数突出显示文本字段的边框。

像这样:

在此处输入图像描述

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;  
}   

查询:

$(".add_animation").click(function (){

    $("#search").focus().animate({ "background-color": "#B6DADA" }, 800, "linear");     

});
4

3 回答 3

1

backgroundColor默认情况下,它不是 jQuery animate 的动画属性。通常,它不能为颜色设置动画。尽管没有得到广泛支持(IE9-不会),但使用简单的 CSS 过渡效果会更好。

.field_style {
    width:400px;
    transition: box-shadow .8s linear;
    outline: 0;
}
.field_style:focus {
    box-shadow: 0 0 10px #6EA2DE;
    border-color: #6EA2DE;
}

http://jsfiddle.net/N9um8/31/

顺便说一句,.8s 对动画来说有点长。

于 2013-09-21T15:38:30.597 回答
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();

});

小提琴

于 2013-09-21T15:39:15.813 回答
0

试试这个插件: http: //www.bitstorm.org/jquery/color-animation/并附加:

<script src="http://www.bitstorm.org/jquery/color-animation/jquery.animate-colors-min.js"></script>

这里有一个例子:

http://jsfiddle.net/N9um8/20/

于 2013-09-21T15:36:19.143 回答