我正在尝试使用以下代码创建鼠标悬停动画:
var menu = {
colors: [ '#B8410D', '#1C70A8', '#27A328', '#B59215' ],
alignMenuLeft: function() {
var slider_div = jQuery('#slider-1');
var menu_div = jQuery('#dupl-menu');
var offset = slider_div.offset();
menu_div.css({
'top': offset.top,
'left': offset.left + slider_div.width() - menu_div.width()
});
}
}
jQuery(document).ready(function($) {
$('#slider-1').nivoSlider({
effect: 'fade',
animSpeed: 500,
pauseTime: 4000,
controlNav: false,
captionOpacity: 0,
directionNav: false,
afterLoad: menu.alignMenuLeft
});
$('#dupl-menu .menu-item').mouseover(function() {
console.log('mouseover');
$(this)
.stop()
.animate({
borderRightColor: menu.colors[$(this).index()],
borderRightWidth: '6px',
borderRightStyle: 'solid'
},
{ queue: false, duration: 600 });
});
});
jQuery(window).resize(menu.alignMenuLeft);
(小提琴)
但是,它不起作用。如果我添加一个函数作为.animate
记录完成的第三个参数,它永远不会被调用。但如果我使用.css
代替.animate
,它确实有效,所以选择器是正确的。什么可能导致这个问题?
编辑:
这是 HTML:
<div id="dupl-menu">
<div class="menu-main-container">
<ul id="menu-main" class="menu">
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-50"><a href="#item1">item1</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-51"><a href="#item2">item2</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-52"><a href="#item3">item3</a></li>
<li class="menu-item menu-item-type-custom menu-item-object-custom menu-item-53"><a href="#item4">item4</a></li>
</ul>
</div>
</div>