我有以下Jquery Color Fade脚本,它在“rollover”上引入了悬停类,然后在“rollout”上删除它。目前,文字和背景都淡入淡出。理想情况下,使用这种性质的脚本,我只希望在文本保留时淡入背景或背景图像。我知道使用颜色Jquery插件的背景颜色淡入淡出选项。但是,当我使用背景图像时,我想要这个工作。这就是我希望调整现有脚本的原因。任何关于如何使背景(无论是颜色还是图像)淡入的帮助都将非常受欢迎。
Jsfiddle:http://jsfiddle.net/RV6fE/3/
Jquery的
$(document).ready(function () {
//Set the anchor link opacity to 0 and begin hover function
$("#menu-sample-menu li a").hover(function () {
//Fade to an opacity of 1 at a speed of 200ms
$(this).fadeOut(0).addClass('hover').fadeIn(300);
//On mouse-off
}, function () {
//Fade to an opacity of 0 at a speed of 100ms
$(this).fadeOut(300)
.queue(function () {
$(this).removeClass('hover').fadeIn(0).dequeue()
});
});
});
HTML
<nav id="access">
<ul id="menu-sample-menu" class="menu">
<li id="menu-item-198" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-198"><a href="http://www.threecell.com/demo/category/health-care-professional/">Health Care Professional</a>
</li>
<li id="menu-item-197" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-197"><a href="http://www.threecell.com/demo/category/web-designer/">Web Designer</a>
<ul class="sub-menu">
<li id="menu-item-199" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-199"><a href="http://www.threecell.com/demo/category/construction-worker/">Construction Worker</a>
</li>
</ul>
</li>
</ul>
</nav>
样式
#access {
padding:0 20px;
background:#111;
box-shadow:0 0 7px rgba(0, 0, 0, .1);
}
#access ul {
float:left;
padding:0;
margin:0;
list-style:none;
font-weight:600;
text-transform:uppercase;
}
#access li {
position:relative;
float:left;
padding:0;
margin:0;
}
#access ul li:first-child {
padding-left:0;
}
#access a {
display:block;
padding:15px 24px;
color:#f0f0f0;
text-decoration:none;
}
#menu-sample-menu li {
color: black;
text-shadow: 0px 1px 4px #777;
background-color: green;
padding: 0 12px 0 12px;
}
#menu-sample-menu li a.hover {
background: orange;
}
#access li.current_page_item > a,
#access li.current-menu-item > a {
background: orange;
color: white;
text-decoration:none;
}
#access a span {
color:#999;
font-size:11px;
font-style:italic;
font-weight:normal;
line-height:1.62em;
text-transform:none;
}
答案 0 :(得分:1)
您可以在li中添加一个额外的跨度,使用相同的文本
<ul id="menu-sample-menu" class="menu">
<li id="menu-item-198" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-198">
<span>Health Care Professional</span>
<a href="http://www.threecell.com/demo/category/health-care-professional/">Health Care Professional</a>
</li>
//...
</ul>
http://jsfiddle.net/RV6fE/13/
选项2
您可以使用CSS3过渡仅更改背景http://jsfiddle.net/RV6fE/14/
选项3
如果你想淡化背景图片而不重复文本或更改html你可以用jQuery创建一个空元素,只改变背景并淡化它
<li id="menu-item-198" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-198">
<a href="http://www.threecell.com/demo/category/health-care-professional/">Health Care Professional</a>
</li>
在$(文件)之后。你得到了
<li id="menu-item-198" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-198">
<span style="display: block;" class=""></span>
<a href="http://www.threecell.com/demo/category/health-care-professional/">Health Care Professional</a>
</li>
js
$(document).ready(function () {
$("#menu-sample-menu li").each(function(){ //add the empty span with the background
$(this).prepend("<span>");
});
$("#menu-sample-menu li").hover(function () {
$(this).children("span").fadeOut(0).addClass('hover').fadeIn(300);
}, function () {
$(this).children("span").fadeOut(300)
.queue(function () {
$(this).removeClass('hover').fadeIn(0).dequeue()
});
});
});