javascript - 流畅的动画没有滞后

标签 javascript jquery css

我刚刚创建网站,但遇到了一个变化很大的问题。

这是网站网址:http://www.mphotography.lt

问题是当我们点击菜单图标时,侧边菜单动画被触发,侧边菜单通过 jquery 动画变得可见。

这是js文件:

    $(document).ready(function()
    {
         $( "#show-menu" ).click(function() 
         {
            $('.content .column').animate(
            {
              width: '33.333%'
            }, 500);

            $('.first-side-menu').animate(
            {
              width: '0px'
            }, 500);

            var newWidth = $('body').width() - 280;
            $('.side-menu').css("display", "block");
            $('.side-menu').animate(
            {
              width: '280px'
            }, 500);
            $('.content').animate(
            {
              width: newWidth,
            }, 500);
            if($('.photopreview').css("display") == "none" || $('.photopreview').css("display") === undefined)
            {
                $('.content').css("overflow-y", "scroll");
            }
    });

});

问题是动画不流畅且没有延迟。

最佳答案

jQuery 的动画速度很慢。最好用 CSS 做动画。下面的代码切换主要内容和侧边菜单的类。

$(document).ready(function() {
  $("#show-menu").click(function() {
    $(".side-menu").toggleClass("show");
    $(".container").toggleClass("hide");
  });
});
.wrapper {
  display: flex;
}

#show-menu {
  cursor: pointer;
}

.container {
  background: lightgray;
  width: calc(100% - 50px);
  transition: width 1s ease;
}

.side-menu {
  background: darkgray;
  width: 50px;
  transition: width 1s ease;
}

.show {
  width: 280px;
  transition: width 1s ease;
}

.hide {
  width: calc(100% - 280px);
  transition: width 1s ease;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrapper">
  <div class="side-menu"><span id="show-menu">Click</span></div>
  <div class="container">Container</div>
</div>

关于javascript - 流畅的动画没有滞后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45561695/

相关文章:

jquery - 组合按键和按键 - jQuery

javascript - animate.css 的滚动效果

javascript - 如何返回选定的文本父元素html

javascript - 在函数式编程中重用功能

jquery - append 每个元素的 id

javascript - 将行中的 <TD> 值相加

javascript - Ajax jquery 自动完成隐藏 id

javascript - 浏览器事件会中断 JavaScript 代码执行吗?

css - 是否有 "previous sibling"选择器?

javascript - 禁用/启用按钮时的辅助功能问题