【问题标题】:display: inline does not work with jquery animate ()显示:内联不适用于 jquery animate()
【发布时间】:2013-05-18 02:39:16
【问题描述】:

我正在尝试将鼠标悬停在网站标题上时默认隐藏的 div 动画,这里是当前不起作用的 jquery 代码:

    $("#header_title").mouseenter(function() {
        $('#header_links').animate({
            display: "inline",
            width: "600px"
            }, 1500 );
    });

    $("#header").mouseleave(function() {
        $('#header_links').css({
            display: "none",
            }, 1500 );
    });

当我将动画更改为 css 时它工作正常,但是我不希望菜单只出现,我希望它在隐藏后进行动画处理。有什么建议吗?

【问题讨论】:

标签: jquery jquery-animate


【解决方案1】:

您忘记将其动画回零宽度,并且您无法动画显示属性,无论是否可见,中间没有任何动画,因为它不是数字属性?

$("#header_title").mouseenter(function() {
    $('#header_links').css('display','inline').animate({
        opacity: 1,
        width: 600
    }, 1500 );
});

$("#header").mouseleave(function() {
    $('#header_links').animate({
        opacity: 0,
        width: 0
    }, 1500, function() {
        $(this).css('display','none');
    });
});

【讨论】:

  • 其实这个解决方案有问题,链接还是可以点击的...这就是为什么我需要使用显示属性并在动画前后以某种方式将其更改为无...
  • @pwneth - 你总是可以只设置显示属性,但你仍然不能为它设置动画,编辑答案。
猜你喜欢
  • 2018-04-17
  • 1970-01-01
  • 2012-03-20
  • 1970-01-01
  • 1970-01-01
  • 2013-09-24
  • 2014-05-13
  • 2021-04-12
  • 1970-01-01
相关资源
最近更新 更多