【问题标题】:jQuery animated header on hover悬停时的jQuery动画标题
【发布时间】:2013-09-16 20:00:57
【问题描述】:

我在这里找到了有用的代码。我真的希望有人可以帮助我。

代码如下:

$(function(){
    $('#header_nav').data('size','big');
});

$(window).scroll(function(){
    if($(document).scrollTop() > 0)
    {
        if($('#header_nav').data('size') == 'big')
        {
            $('#header_nav').data('size','small');
            $('#header_nav').stop().animate({
                height:'40px'
            },600);
        }
    }
    else
    {
        if($('#header_nav').data('size') == 'small')
        {
            $('#header_nav').data('size','big');
            $('#header_nav').stop().animate({
                height:'100px'
            },600);
        }  
    }
});

http://jsfiddle.net/JJ8Jc/76/


问题:如何只在悬停(而不是滚动)时做同样的事情?


非常感谢。

【问题讨论】:

    标签: jquery header hover animated


    【解决方案1】:

    这比您想象的要简单得多。

    (1) $('#header_nav').data('size','small');
    

    关于 (1),您粘贴的代码的确切 sn-p 实际上只是添加了一个数据属性,我猜您不需要,因为您在网上找到了代码。

    (2) $('#header_nav').stop().animate({
    

    关于 (2),.stop() 只是突然停止动画而不让它完成

    关键是针对鼠标进入div的事件如下图:

    $("#header_nav").mouseenter(function(){
    

    然后当它离开时再次给你鼠标悬停效果如下所示:

    $("#header_nav").mouseleave(function(){
    

    我已经剥离了代码以使其尽可能简单以便您阅读(下面的演示)

    DEMO

    这是非常不言自明的,在 mouseenter/mouseleave 'animate'(逐渐减小/增加)容器的高度。

    【讨论】:

    • 非常感谢。这很有用,但揭示了另一个问题。如果您在该区域上快速移动,它仍然会响应(这很烦人)。它比结果更好:coffeesurfing.illy.com 如何做到这一点?对不起我的英语。
    • 在coffeesurfing.illy 上,如果您快速滚动过去,您会看到它会轻微移动。我认为他们正在使用 .stop() 像这样jsfiddle.net/JJ8Jc/318
    • 快接近了。谢谢你。我不确定您现在是否正确理解我的意思,但是是否可以设置停止时间(如果您将鼠标悬停在该区域没有响应的时间)?目前,它仍然响应。
    • 是的。您需要为我提出另一个问题来编写代码。但基本上有一个计时器,它会在鼠标悬停时重置并在鼠标离开时完成。
    • 我已经得到了我的问题的答案:stackoverflow.com/questions/18872316/…
    猜你喜欢
    • 1970-01-01
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 2012-03-31
    相关资源
    最近更新 更多