【发布时间】:2014-12-29 06:34:52
【问题描述】:
我正在尝试为导航链接实现文本悬停效果,在 mouseenter 上,链接中的文本快速向上滑动(短暂消失),文本更改,然后向下滑动。在 mouseleave 时,原始文本会返回。
类似于以下网站导航链接:
http://wrapbootstrap.com/preview/WB08808B5
这是我尝试过的,似乎在 mouseenter 上触发了不止一次,并且动画从未像上面描述的那样执行:
<div class="navbar-right" >
<ul class="nav navbar-nav" >
<li><a href="#" class="link">Cars</a><span class="nav_anim">to drive</span></li>
<li><a href="#" class="link">Wood</a><span class="nav_anim">to chop</span></li>
<li><a href="#" class="link">steak</a><span class="nav_anim">to eat</span></li>
</ul>
</div>
jQuery
var orig, anim;
$('.link').mouseenter(function () {
orig = $(this).text();
anim = $(this).parent().children('.nav_anim').text();
$(this).stop(true,false).slideUp(300).text(anim).slideDown(300);
}).mouseleave(function(){
$(this).stop(true,false).slideUp(300).text(orig).slideDown(300);
});
JSFiddle:http://jsfiddle.net/f0raekme/1/
【问题讨论】:
-
为什么不只使用 CSS 呢? (过渡)
-
那个网站有很多效果。你的问题不清楚。此外,如果该网站死亡,这个问题将变得过时......
-
@TJ 进行了相应的编辑。
-
这是我尝试过的 - 有什么问题?
-
@Jared Farrish,上面详细描述的工作示例以及一个现场示例,在 JS Fiddle 中复制了问题。进一步编辑。
标签: jquery css jquery-ui css-transitions