3

我试图从左到右为列表设置动画,反之亦然,现在我想要当鼠标悬停在 div 列表上时从左到右设置动画,当鼠标离开该 div 时,它会从右到左列出动画,任何人都可以帮助我。

$('.ul_div').mouseover(function () {
    $('.ul_div').css({ display: 'block' });
    $('.ul_div ul').animate({ left: '100px', background: '#ccc' }, 100);
});
<div class="ul_div">Hover Me<div>
<ul id='ulEle'>
    <li><a href="">demo</a></li>
    <li><a href="">demo</a></li>
    <li><a href="">demo</a></li>
    <li><a href="">demo</a></li>
</ul>

在这里演示

4

2 回答 2

2

jsFiddle 演示

CSS:

.ul_div ul {
    position: absolute;
    display: none
}
.ul_div {
    border:2px solid Red;
    position: relative;
}

Javascript:

$('.ul_div').hover(

 function () {
     $('.ul_div ul').css({
         display: 'block'
     });
     $('.ul_div ul').animate({
         left: '100px',
         background: '#ccc'
     }, 100);
 },

 function () {
     $('.ul_div ul').animate({
         left: '0',
         background: '#ccc'
     }, 100, function () {
         $('.ul_div ul').css({
             display: 'none'
         });
     });
 });
于 2013-09-09T10:57:53.597 回答
1

您需要在ul元素上指定定位才能使用 CSSleftright属性。

按如下方式更新您的 CSS:

#ulEle {
    position: absolute;
}

.ul_div {
    border:2px solid Red;
    position: relative;
}

然后您应该更新您的 jQuery 代码以使用该hover()函数,并使用以下代码:

$('.ul_div').hover(function () {
    $('.ul_div ul').animate({ left: '100px', background: '#ccc' }, 100);
}, function() {  
     $('.ul_div ul').animate({ left: '0px', background: '#ccc' }, 100);
});

请参阅updated jsFiddle演示。

于 2013-09-09T10:55:37.967 回答