使用 jQuery 淡化 div 背景颜色的简单方法?

发布于 2024-10-26 11:45:15 字数 1055 浏览 2 评论 0原文

修改字段时,我想突出显示该行的

的背景颜色。然后慢慢褪去,恢复正常。所以我使用jQuery和jQuery UI的颜色动画效果:

$('.example_row')
    .css('backgroundColor', '#ff7f0')
    .animate({backgroundColor: '#d4d4d4'}, 5000)
    .html(modifiedContent);

问题是整体背景不是#d4d4d4,它是一个渐变。因此,理想情况下,我只需将该行的

的背景不透明度从 1 更改为 0。我该怎么做?我尝试了jQuery UI的removeClass效果:

$('.example_row')
    .addClass('modified')
    .removeClass('modified', 5000)
    .html(modifiedContent);

.modified只有1个css规则background-color: #ff7f00。 这里的问题是,删除该类意味着背景淡入纯白色,直到完全删除该类,然后突然变为真正的背景渐变。看起来很糟糕...

所以我知道我可以简单地在该行的

中注入一个宽度和高度为 100% 的新
,然后做一个简单的 .animate({opacity: 0})。但由于其他原因我不想这样做......这里有一个简单的解决方案不需要注入额外的背景
吗?

更新:我创建了一个我的情况示例 在 jsfiddle 上以获得更清晰的解释。

When a field is modified I want to highlight the background color of the <div> for that row. Then slowly fade it back to normal. So I use jQuery and jQuery UI's color animation effect:

$('.example_row')
    .css('backgroundColor', '#ff7f0')
    .animate({backgroundColor: '#d4d4d4'}, 5000)
    .html(modifiedContent);

The problem is the overall background is not #d4d4d4, it's a gradient. So ideally I would just change the background opacity from 1 to 0 for the <div> for that row. How do I do this? I tried jQuery UI's removeClass effect:

$('.example_row')
    .addClass('modified')
    .removeClass('modified', 5000)
    .html(modifiedContent);

.modified just has the 1 css rule of background-color: #ff7f00.
The problem here is that removing the class means the background fades to solid white until the class if fully removed, then suddenly it changes to the true background gradient. Looks bad...

So I know that I could simply inject a new <div> with a 100% width and height within the <div> for that row and do a simple .animate({opacity: 0}). But I don't want to do that for other reasons... is there a simple solution here that doesn't require injecting an extra background <div>?

UPDATE: I created an example of my situation on jsfiddle for a clearer explanation.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

晨光如昨 2024-11-02 11:45:16

UI 中已存在突出显示效果,

$('input').focus(function(){
$(this).parent().effect("highlight", {},  1000);
})

请查看工作示例 http://jsfiddle.net/9YW​​Ww/1/

A highlight effect already exist in UI,

$('input').focus(function(){
$(this).parent().effect("highlight", {},  1000);
})

Check working example at http://jsfiddle.net/9YWWw/1/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文