2

我试图让图像在悬停时滑出,然后在它们悬停到新链接后滑回,但我似乎无法让它工作。

这是JS

$(function() {
  $('#menu_seo > li').hover(
    function () {
        var $this = $(this);
        $('span',$this).stop().animate({
            'right':'70px'
        }).css({
            'zIndex':'10'
        });
    },
    function () {
        var $this = $(this);
        $('span',$this).stop().animate({
            'right':'-10px'
        }).css({
            'zIndex':'-1'
        });
    }
  );
});

和我的 CSS:

#menu_seo {
    position:relative;
}

ul#menu_seo li span {
    height:60px;
    width:15px;
    position:absolute;
    z-index:-1;
    cursor:pointer;
}

ul#menu_seo li span.arrowout1 {
    background-image:url(../arrow.png);
    top:8px;
    left:230px;
}

有人在这里看到我的问题吗?

4

1 回答 1

2

首先你不能用 做这个动画z-index,你应该用 cssoverflow:hidden属性创建一个遮罩区域并用 隐藏动画对象position

right第二件事,当对象的 css 获得属性时,您不能为对象设置动画left,这会产生冲突并且不起作用。位置值必须准确。

我建议你使用 jQuery 绑定方法,它是可靠的,你可以使用多个事件,比如:click、hover、mouseenter、mouseleave。

这是工作的jsFiddle:http: //jsfiddle.net/ATPG9/11/

jQuery:

$('#menu_seo li').bind({
    mouseenter: function() {
        $(this).children('span').stop().animate({'right':'70px'},200);
    },
    mouseleave: function() {
        $(this).children('span').stop().animate({'right':'-50px'},200);
    }
});

CSS:

#left_aside {
    overflow:hidden;
    float:left;
    width:230px;
    height:900px;
    background-color:#f2dada;
}

ul#menu_seo li span    {
    height:50px;
    width:50px;
    position:absolute;
    cursor:pointer;
    right:-50px;
}
于 2012-12-09T02:42:23.483 回答