JQuery 动画不工作

发布于 2024-11-02 03:45:21 字数 1239 浏览 7 评论 0原文

由于某种原因,我似乎无法让 .animate 正常运行。有人能看出为什么吗?

我正在用这个 一个容器 div...

#valve-menu {
    position: absolute;
    width: 780px;
    top: 200px;
    background-color: #9C3;
    margin-right: 9px;
    margin-left: 10px;
}

然后...

#control-cover{
    height: 50px;
    width: 180px;
    overflow: hidden;
    position: absolute;
    }
#control{
    background-color: #0C9;
    height: 200px;
    width: 180px;
    margin-right: 10px;
    position: absolute;
    }

我的 Jquery 是这样的,

$(document).ready(function(){

    //When mouse rolls over
    $("#control-cover").mouseover(function(){
        $(this).stop()
               .animate({height:'150px'},
                        {queue:false, duration:600, easing: 'easeOutBounce'})
    });

    //When mouse is removed
    $("#control-cover").mouseout(function(){
        $(this).stop()
               .animate({height:'50px'},
                        {queue:false, duration:600, easing: 'easeOutBounce'})
    });

});

我想让控件 div 部分隐藏,然后在鼠标悬停时展开。

For some reason I can' t seem to get .animate to function properly. Can anybody see why?

I'm using this
a container div...

#valve-menu {
    position: absolute;
    width: 780px;
    top: 200px;
    background-color: #9C3;
    margin-right: 9px;
    margin-left: 10px;
}

then..

#control-cover{
    height: 50px;
    width: 180px;
    overflow: hidden;
    position: absolute;
    }
#control{
    background-color: #0C9;
    height: 200px;
    width: 180px;
    margin-right: 10px;
    position: absolute;
    }

My Jquery is this

$(document).ready(function(){

    //When mouse rolls over
    $("#control-cover").mouseover(function(){
        $(this).stop()
               .animate({height:'150px'},
                        {queue:false, duration:600, easing: 'easeOutBounce'})
    });

    //When mouse is removed
    $("#control-cover").mouseout(function(){
        $(this).stop()
               .animate({height:'50px'},
                        {queue:false, duration:600, easing: 'easeOutBounce'})
    });

});

I want to have the control div partially hidden and then onmouseover expand.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

眼泪都笑了 2024-11-09 03:45:21

这是有效的。如果您不使用 Easing 插件,则默认情况下 jQuery SwingLinear 中只有两个可用:
来自 jQuery 网站 http://api.jquery.com/animate/

宽松

.animate() 的剩余参数
是一个命名缓动函数的字符串
使用。缓动函数指定
动画的速度
在不同的点上取得进展
动画。唯一的缓和
jQuery 库中的实现
是默认值,称为 swing,还有一个
以恒定的速度进步,
称为线性。更多缓动功能
可以使用
插件,尤其是 jQuery UI
套房。

    $(document).ready(function(){

        //When mouse rolls over
        $("#control-cover").bind('mouseover mouseenter',function(){
            $(this).stop()
            .animate({height:'150px'},
            {queue:false, duration:600, easing: 'swing'})
        });

        //When mouse is removed
        $("#control-cover").bind('mouseout mouseleave',function(){
            $(this).stop().animate({height:'50px'},
            {queue:false, duration:600, easing: 'swing'})
        });

    });

This is working. If you're not using an Easing plugin there are only two available by default inside jQuery Swing and Linear:
From jQuery website http://api.jquery.com/animate/

Easing

The remaining parameter of .animate()
is a string naming an easing function
to use. An easing function specifies
the speed at which the animation
progresses at different points within
the animation. The only easing
implementations in the jQuery library
are the default, called swing, and one
that progresses at a constant pace,
called linear. More easing functions
are available with the use of
plug-ins, most notably the jQuery UI
suite.

    $(document).ready(function(){

        //When mouse rolls over
        $("#control-cover").bind('mouseover mouseenter',function(){
            $(this).stop()
            .animate({height:'150px'},
            {queue:false, duration:600, easing: 'swing'})
        });

        //When mouse is removed
        $("#control-cover").bind('mouseout mouseleave',function(){
            $(this).stop().animate({height:'50px'},
            {queue:false, duration:600, easing: 'swing'})
        });

    });
何时共饮酒 2024-11-09 03:45:21

jQuery 中的 $('#control-over') 选择器将在 html 中搜索 idcontrol-over 的元素,例如

。从您的代码示例来看,您似乎有一个名为 control-over 的 CSS class。两者并不相同。

您需要将 id= 属性添加到 html 元素,或者按类名称搜索元素,例如 $('.control-over')

The $('#control-over') selector in jQuery will search your html for an element that has an id of control-over, e.g. <div id="control-over">. From your code sample, it looks like you have a CSS class called control-over. The two are not the same.

You need to either add the id= attribute to your html element, or search for the element by class name, like $('.control-over').

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文