[英]Gradual on hover background color change on list item
好的,那么代码应该做的就是更改li标签的背景颜色。 但是,必须以动画方式完成。 即,背景颜色不应立即更改。 应在几秒钟的时间内逐渐设置背景色。
我已经写了这个,尽管它确实很好地设置了背景颜色,但是并没有逐步做到:
// Subtle navigation on hover color animation
$(document).ready(function () {
$(".navigation li").hover(
function () {
// Over
$(this).animate(
$(this).css("background", "rgba(159,223,188, 0.9)"),
300);
},
function () {
// Out
$(this).animate(
$(this).css("background", "none"),
300);
}
);
});
html很简单:
<ul class="navigation">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
感谢您指出正确的方向!
如果您想使用JavaScript解决方案,请查看Color动画插件 。
另外,我建议使用CSS3过渡。 您甚至不需要JavaScript:
li {
background-color: rgba(159,223,188, 0.9);
-webkit-transition: background-color 0.3s linear;
-moz-transition: background-color 0.3s linear;
-ms-transition: background-color 0.3s linear;
-o-transition: background-color 0.3s linear;
transition: background-color 0.3s linear;
}
li:hover {
background-color: transparent;
}
演示
您应该这样做:
$(document).ready(function () {
$(".navigation li").hover(
function () {
// Over
$(this).animate({
background: 'rgba(159,223,188, 0.9)'
}, 300);
},
function () {
// Out
$(this).animate({
background: 'none'
}, 300);
}
);
});
您不需要.css()
,只需将样式传递给.animate()
函数即可。 您还可以传递多种效果。
转到此处获取更多信息。
您也可以尝试执行以下操作:
将以下CSS添加到第二个函数中
"background": "none",
"transition-property": "background",
"transition-duration": "1s",
"transition-timing-function": "linear"
检查下面的代码
您可以将“ transition-duration”:“ 1s”的值增加到任意秒,以获得更多延迟。
希望这可以帮助
$(document).ready(function(){
$(".navigation li").hover(
function(){
// Over
$(this).animate(
$(this).css("background","rgba(159,223,188, 0.9)"),
300
);
},
function(){
// Out
$(this).animate(
$(this).css(
{
"background": "none",
"transition-property": "background",
"transition-duration": "1s",
"transition-timing-function": "linear"
}
),
300
);
}
);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.