我做了一个按钮,当你点击它时,右边会出现一个固定的菜单,当你点击十字架时,它会相应地关闭

我怎么做才能让你点击按钮时,这个菜单不会立即出现,而是平滑地滑到右边?

关闭时也是如此,这样它就可以平稳地隐藏起来

let menuGeneral = $('#menu-general');

$('#menu-up-control').click(function () {
    menuGeneral.css("display", "block");
});

$('#menu-up-control-close').click(function () {
    menuGeneral.css("display", "none");
});
.menu-up-control {
  float:right;
  font-size:26px;
  top:3px;
  position:relative;
  cursor:pointer;
  padding:10px 100px 0 0;
}

.menu-up-control-close {
  width:15px;
}

.menu-up-control-close i {
  color:white;
  font-size:40px;
  top:3px;
  position:relative;
  cursor:pointer;
  padding:10px 0px;
  margin:50px 0 0 40px;
}

.menu-general {
  display:none;
}

.menu-general {
  position:fixed;
  width:350px;
  top:0;
  right:0;
  bottom:0;
  z-index:9999;
  padding:10px;
  background-color:black;
}

.menu-main li, .menu-main li a {
  font-size:36px;
  font-weight:700;
}
.menu-main li a {
  font-weight:bold;
  color:white;
  text-decoration:none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.3.0/css/font-awesome.css" 
          rel="stylesheet"  type='text/css'>

<a id="menu-up-control" class="menu-up-control">
                        <i class="fa fa-bars"></i>
                    </a>

<div id="menu-general" class="menu-general">
                <div id="menu-up-control-close" class="menu-up-control-close">
                    <i class="fa fa-times"></i>
                </div>
                <ul class="menu-main">
                    <li><a href="#">Link 1</a></li>
                    <li><a href="#">Link 2</a></li>
                    <li><a href="#">Link 3</a></li>
                    <li><a href="#">Link 4</a></li>
                </ul>
            </div>

推荐答案

因此,您希望将menuGeneral.css("Display","block");替换为滑动动画. 并将menuGeneral.css("Display","None");替换为滑动动画以关闭菜单.

<script>
    let menuGeneral = $('#menu-general');

    $('#menu-up-control').click(function () {
        menuGeneral.animate({ right: '0' }, 500);
    });

    $('#menu-up-control-close').click(function () {
        menuGeneral.animate({ right: '-350px' }, 500, function () {
            menuGeneral.hide();
        });
    });
</script>

另请参阅以下内容:

.menu-general {
  position: fixed;
  width: 350px;
  top: 0;
  right: -350px;
  bottom: 0;
  z-index: 9999;
  padding: 10px;
  background-color: black;
}

Javascript相关问答推荐

当在select中 Select 选项时,我必须禁用不匹配的 Select

格式值未保存在redux持久切片中

Google图表时间轴—更改hAxis文本 colored颜色

构造HTML表单以使用表单数据创建对象数组

在286之后恢复轮询

我正在建立一个基于文本的游戏在react ,我是从JS转换.我怎样才能使变量变呢?

使用POST请求时,Req.Body为空

正则表达式,允许我匹配除已定义的子字符串之外的所有内容

Webpack在导入前混淆文件名

如何在Node.js中排除导出的JS文件

当代码另有说明时,随机放置的圆圈有时会从画布上消失

在Odoo中如何以编程方式在POS中添加产品

用于部分字符串的JavaScript数组搜索

react 路由DOM有条件地呈现元素

如何在TransformControls模式下只保留箭头进行翻译?

如何使用Reaction路由导航测试挂钩?

调用特定数组索引时,为什么类型脚本不判断未定义

如何将值从后端传递到前端

使用jQuery每隔几秒钟突出显示列表中的不同单词

Rails 7:在不使用导入映射的情况下导入Java脚本