首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery坏掉的动画- Div有时不会消失

问jQuery坏掉的动画- Div有时不会消失
EN

Stack Overflow用户
提问于 2016-01-03 12:17:37
回答 1查看 148关注 0票数 1

最近几天,我一直试图用jQuery动画制作一个侧边栏,但可能出了点问题,它似乎坏了,不能完全工作,因为#导航( div )有时甚至不会消失,这可能取决于我把鼠标从div中取出的位置,因为它只会在某些地方消失。我在代码中发现的另一件事/问题是,当您多次点击左角时,#导航就会不断出现,并一次又一次地消失,就像我碰到的拐角处一样。我怎样才能解决这些小问题,但却引发了一些问题?

以下是我今天编写的代码:

代码语言:javascript
复制
<div id="navigation">
    <div id="hidden">
        <h3>Navigation</h3>
        <hr></hr>
        <a href="#">Blog</a>
        <a href="#">Live</a>
        <a href="#">Events</a>
        <a href="#">Genres</a>
        <a href="#">The team</a>
        <a href="#">Changelog</a>

        <div class="userpanel">
            <a href="#">Sign in</a>
            <a href="#">Sign up</a>
        </div>
    </div>
</div>

<script type="text/javascript">
$("#navigation").mouseover(function(){
    $(this).animate({
        width: '300px',
        opacity: '1',
    }, 400);
    $("#hidden").css({
        display: 'block',
    });
});

$("#navigation").mouseleave(function(){
    $(this).animate({
        width: '5px',
        opacity: '0.0',
    }, 400);
    $("#hidden").css({
        display: 'none',
    });
});
</script>

而且呃..。下面是CSS:

代码语言:javascript
复制
#navigation {width: 5px; height: calc(100vh - 50px); background: #171C21; opacity: 0.0; padding-top: 10px; padding-bottom: 10px;}
#navigation #hidden {width: 90%; margin: auto; height: 100%; display: none; text-align: center;}
#navigation #hidden > h3 {color: #FFFFFF; text-transform: uppercase;}
#navigation #hidden a {width: 200px; color: #FFFFFF; text-decoration: none; display: block; padding-top: 2px; padding-bottom: 2px; text-transform: uppercase; font-size: 14px; margin: auto;}
#navigation #hidden a:hover {color: #8e44ad;}
#navigation .userpanel > a {font-size: 16px; font-weight: 600;}

我正在使用这个版本的jQuery:

代码语言:javascript
复制
<script src="http://code.jquery.com/jquery-1.7rc2.js"></script>

预览:http://awesomeness.adam.zur.io/ (点击屏幕的左侧)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-03 12:28:13

您似乎并不打算停止使用.stop()的当前动画,因为当鼠标进入/离开并缓存它时,它会出现故障。因为你应该把摩丝改为鼠标,因为它只会触发一次事件。

代码语言:javascript
复制
$("#navigation").mouseenter(function(){
    $(this).stop().animate({
        width: '300px',
        opacity: '1',
    }, 400);
    $("#hidden").css({
        display: 'block',
    });
});

$("#navigation").mouseleave(function(){
    $(this).stop().animate({
        width: '5px',
        opacity: '0.0',
    }, 400);
    $("#hidden").css({
        display: 'none',
    });
});

工作代码

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34576448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档