javascript - jquery 动画的意外行为

标签 javascript jquery html css animation

所以我制作了这个动画侧边栏:

HTML

<div class="sidebar">
    <div class="block"><a class="link" href="#link1">Menu Option 1</</div>
    <div class="block">Menu Option 2</div>
    <div class="block">Menu Option 3</div>
    <div class="block">Menu Option 4</div>
</div>

CSS

.sidebar{
    position:fixed;
    height:100%;
    width:200px; 
    top:0;
    left:0;
    z-index: 100;
}

.block{
    width:5%;
    height: 20px;
    border-style: solid;
    border-width: 1px;
    text-indent: 100%;
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
    background-color: red;
    padding: 10px;
}

.link{
    text-indent: 100%;
    text-align: right;
    white-space: nowrap;
    width:100%;
    height: 100%;
}

#slider {
    border:1.5px solid black;
    width:10px;
    position:fixed;
}

jQuery

//Sidbar Animations
$(".block").mouseover(function() {
  $(this)
    .animate({
      width: "90%"
    }, {
      queue: false,
      duration: 400
    }).css("text-indent", "0");
});
$(".block").mouseout(function() {
  $(this)
    .animate({
      width: "5%"
    }, {
      queue: false,
      duration: 500
    }).css("text-indent", "100%");
});

它有点管用,但并不完全符合预期。 因此,如果我在 div 中添加链接,它仍然会显示动画,但有时动画会中断并且 div 会崩溃,并且很难真正点击链接。

JSFiddle:http://jsfiddle.net/znxygpdw/

我怎样才能避免这种情况?

最佳答案

在这种情况下最好使用hover 功能:

//Sidbar Animations
$(".block").hover(function() {
    $(this)
    .animate({
        width: "90%"
    }, {
        queue: false,
        duration: 400
    }).css("text-indent", "0");
}, function() {
    $(this)
    .animate({
        width: "5%"
    }, {
        queue: false,
        duration: 500
    }).css("text-indent", "100%");
});

fiddle :https://jsfiddle.net/lmgonzalves/znxygpdw/1/

关于javascript - jquery 动画的意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30684594/

相关文章:

javascript - 使用javascript,如何选择相对于特定其他li的li

javascript - 是否可以为 jQuery 函数创建自定义前缀或命名空间?

javascript - 如何使用jquery获取表之前的div的id

javascript - 轮播宽度问题

javascript - 为表单向导拖放显示 div

php - 解析错误<br/>错误

javascript - 如何将 item 更新到 PostgreSQL 中的 jsonb 数据类型列

javascript - 如何通过 `number_entered_by_user` 事件在 Javascript 中传递 `onfocusout(number_entered_by_user)`

javascript - 使用 JSON 创建数组

jquery - 在 ASP.NET MVC 3 中将参数从 JQuery 传递到 Controller 操作