【问题标题】:jquery animate image sliding out behind ul listjquery动画图像滑出ul列表后面
【发布时间】:2012-12-10 06:45:21
【问题描述】:

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

这是 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;
}

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

【问题讨论】:

标签: javascript jquery css animation jquery-animate


【解决方案1】:

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

第二件事,当对象的 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;
}

【讨论】:

  • 谢谢你我一直在摸不着头脑,工作完美
  • 快速提问 我已经完全复制了您的代码,并且我使用的是最新版本的 firefox 无标题文档 ...这在我的头部,但现在它没有滑动,因为我在 jsfiddle 之外做的
  • 您应该使用document.ready() { .. } api.jquery.com/ready 在您使用不同类型的准备好的问题中包装此代码:$(function() { .. }
猜你喜欢
  • 2011-09-10
  • 1970-01-01
  • 2020-11-26
  • 1970-01-01
  • 2013-02-21
  • 2013-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多