如何更改项目's的背景颜色使用jquery平滑
How to change an item's background color smoothly using jquery?
我有一个网页,对于内部链接,我想强调访问者点击当前页面上的内部链接后跳转的位置。这就像SO的评论或回复通知。首先,目标的背景将是橙色,然后它将平滑地变回白色。
我本可以这样做,但颜色变化并不顺利。
HTML部分
<a href="#section1">go to section 1</a>
<a href="http://google.com">Google</a>
<a name="section1"><a><h3 id="section1">Section 1</h3>
jQuery部分
$(function () {
$("a[href^='#']").click(
function () {
var $id = $(this).attr("href");
$($id).css({"background-color":"#cc7733", "transition":"background-color"});
setTimeout(function () {
$($id).css("background-color", "#ffffff");
}, 2500);
});
});
JS Fiddle在这里
过渡应该有持续时间和缓和。
{"transition":"background-color 0.5s ease"}
注意:0.5s
是采样时间,请将其更改为您自己的时间。
演示
问题是您指定的是"transition":"background-color"
,而没有指定时间刻度。您需要将其更改为包含一个时间:
..."transition":"background-color 0.2s"
然而,更好的方法是在CSS本身上设置transition
属性,然后使用jQuery为元素提供一个新的类:
/* Select any element with a href attribute. */
:link { /* You could use [href], but :link has better browser support */
transition: 2.5s; /* Transition takes 2.5 seconds. */
}
.changedBackground {
background: #fff;
}
$($id).addClass('changedBackground');
通过这种方式,您可以将样式与JavaScript分离,只需修改CSS即可轻松更改样式。
你可以像这个一样使用.animate()
$($id).stop()
.css({"background-color":"#cc7733"},1000)
.animate({"background-color":"#FFF"},1000);
注意:您需要在项目中包含jQuery UI,才能使动画工作。
DEMO
相关文章:
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 如何使用jquery更改html中的背景颜色
- Javascript对象类在单击时打开窗口进行颜色选择,并在更改时替换对象背景颜色
- JS幻灯片与CSS背景颜色变化
- DT数据表背景颜色为黑色,但仍有悬停和选择颜色
- Javascript通过列表项的函数和css来更改背景颜色
- Javascript没有从数组中选择背景颜色
- 使用圆中的数组更改背景颜色项目
- 如何用jquery动画改变背景颜色,就像一个过渡
- 使用jquery交换并保存背景颜色
- j查询如何设置/取消设置下拉菜单的背景颜色
- 使用angularjs根据时间更改背景颜色
- 设置Dojo量表的背景颜色
- 如何使用颜色选择器来更改背景中的文本
- charts js更改折线图轴的字体大小/颜色和背景线
- javascript样式的背景颜色在设置时闪烁.ASP.NET
- 在背景颜色背景图像之间分层文本
- sliicknav菜单,每个li都有特定的颜色背景
- 尝试根据当前背景更改背景颜色:背景颜色没有值
- jQuery中的颜色/背景颜色改变动画