【问题标题】:Animating a borderColor with jQueryUI使用 jQueryUI 为边框颜色设置动画
【发布时间】:2011-12-15 04:49:54
【问题描述】:

我有一系列 div,我想用蓝色边框突出显示,在 mouseenter 上动画,在 mouseleave 上动画。当一个 div 被点击时,它应该保留它的边框,直到一个新的 div 被点击,然后将之前的选择动画化回一个白色的边框。

使用以下代码,边框会淡入,但不会淡出:

$('div').hover(function(){
  if (!$(this).hasClass('sel')) {
    $(this).stop().animate({borderColor:'#0000ff'}, 2000);      
  }
},function(){
  if (!$(this).hasClass('sel')) {
    $(this).stop().animate({borderColor:'#ffffff'}, 2000);
  }
}).click(function(e){
  $('.sel').not(this).stop().animate({borderColor:'#ffffff'}, 2000).removeClass('sel');
  $(this).addClass('sel');
});

http://jsfiddle.net/reEsa/

【问题讨论】:

  • 我将颜色切换为绿色 (jsfiddle.net/N4u8T) 并注意到 jQueryUI 在动画之前将颜色更改为白色。任何解决方法的想法?

标签: jquery jquery-ui


【解决方案1】:

好像是边框先变白了,然后变成了指定的颜色,而不是直接去颜色。如果还没有,也许可以向 jQuery 提交错误报告。

我做了一个解决方法,将 div 放置在父 div 中,并使用填充 4 来模拟边框。我给父 div 一个白色背景,然后为父 div 的背景颜色设置动画。我删除了点击只是为了显示问题案例。

jsfiddle here

我会将它封装在一个简短的小 jQuery 插件中,它将您调用它的 div 附加到该插件创建的新 div 中,以便在您实际应用它时更容易编码和阅读。

如果您有任何问题,请告诉我,我很乐意为您解答。

【讨论】:

  • 好电话。我不确定为背景颜色设置动画是否会遇到与边框颜色相同的问题。我将我所有的 div 都包裹在 div 中,现在看起来还不错。在bugs.jqueryui.com/ticket/7957 提交的错误报告
  • 很高兴它对您有用。只是为了保持帖子最新,您的错误报告已作为另一个错误的副本关闭。工作票是#6969
猜你喜欢
  • 2012-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-16
  • 2015-11-29
  • 2015-12-11
  • 1970-01-01
相关资源
最近更新 更多