我有这张桌子:
<table id="social" border="5">
<tr>
<td>
<iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fyannbane.blogspot.com%2F&send=false&layout=button_count&width=100&show_faces=true&action=like&colorscheme=light&font&height=21&appId=177127339057410" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:100px; height:21px;" allowTransparency="true"></iframe>
</td>
<td>
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://yannbane.blogspot.com/" data-via="Yannbane">Tweet</a>
</td>
<td>
<g:plusone></g:plusone>
</td>
</tr>
</table>
我想用jquery为它的边界设置动画,如下所示:
$("#social").animate({"borderTopColor": "#f00", "borderBottomColor": "#fff"}, 800);
但是,它不起作用!什么都没发生,即使没有显示错误......
我也试过这个:
$("#social").animate({"border-top-tolor": "#f00", "border-bottom-color": "#fff"}, 800);
但结果相同......你是怎么做到的?
答案 0 :(得分:7)
来自jQuery animate reference(我的重点)
所有动画属性都应设置为单个数值, 除非如下所述; 大多数非数字属性都不能 使用基本的jQuery功能进行动画处理(例如,宽度, 高度或左边可以设置动画,但背景颜色不能, 除非使用了jQuery.Color()插件)。属性值被处理 除非另有说明,否则为多个像素。单位em和% 可以在适用的地方指定。
简而言之,您似乎需要Color()插件,或者需要自己动手。
安德鲁对this question的回答似乎可以帮助您完成所需的工作。
答案 1 :(得分:3)
你应该像其他人已经指出的那样使用Color插件。
但是,作为旁注,您可以使用一种有趣的技术,其中包含动画变量(在本例中为color
变量),然后在step
函数中执行您的操作。
这可能有点矫枉过正,但为您提供了很多自定义动画的灵活性:
// animate color variable from 0x0 to 0xF
$({ color: 0 }).animate({ color: 15}, {
duration: 800,
step: function(now, fx) {
var hexValue = Math.round(now).toString(16);
$("#social").css({
'border-top-color': '#' + hexValue + '00',
'border-bottom-color': '#' + hexValue + hexValue + hexValue
});
}
});
以下是关于此技术的another answer。