Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 滑动菜单平滑_Javascript_Jquery_Html_Css_Wordpress - Fatal编程技术网

Javascript 滑动菜单平滑

Javascript 滑动菜单平滑,javascript,jquery,html,css,wordpress,Javascript,Jquery,Html,Css,Wordpress,我做了一些jquery,所以当有人点击“2菜单”按钮时,画布外的导航栏会显示出来。但是我似乎不知道如何在有人打开/关闭菜单时获得平滑的滑动效果。谢谢你的帮助 我的Jquery是: $(".menutrigger").click(function() { $(".nav").toggleClass("show-nav"); $(".page-wrap").toggleClass("page-wrap-menu", { direction: "left" }, 1000); });

我做了一些jquery,所以当有人点击“2菜单”按钮时,画布外的导航栏会显示出来。但是我似乎不知道如何在有人打开/关闭菜单时获得平滑的滑动效果。谢谢你的帮助

我的Jquery是:

$(".menutrigger").click(function() {
    $(".nav").toggleClass("show-nav");
    $(".page-wrap").toggleClass("page-wrap-menu", { direction: "left" }, 1000);
});
网站:


您可以通过使用class
page wrap
向元素添加
transition
来实现这一点

.page-wrap {
    min-width: 100%;
    min-height: 100%;
    position: relative;
    top: 0;
    bottom: 100%;
    left: 0;
    z-index: 1;

    /* Transition */
    transition: left ease-in-out 0.3s; 
}
CSS转换提供了一种在更改CSS属性时控制动画速度的方法。您可以使属性更改在一段时间内发生,而不是立即生效。例如,如果您将元素的颜色从白色更改为黑色,则更改通常是瞬时的。使用CSS转换如果启用了位置,则会按照加速曲线的时间间隔进行更改,所有这些都可以自定义

资料来源:

编辑

根据您的更新添加

.nav {
    list-style: none;
    background: #fff;
    width: 360px;
    height: 100%;
    position: fixed;
    z-index: 999;
    top: 0;
    display: block;
    right: 0;
    transform: translateX(360px);
}

.page-wrap {
    min-width: 100%;
    min-height: 100%;
    position: relative;
    top: 0;
    bottom: 100%;
    z-index: 1;
    transform: translateX(0px);
    overflow: visible;
    transition: all 0.9s ease;
    overflow: visible !important;
}

您可以通过使用class
page wrap
向元素添加
transition
来实现这一点

.page-wrap {
    min-width: 100%;
    min-height: 100%;
    position: relative;
    top: 0;
    bottom: 100%;
    left: 0;
    z-index: 1;

    /* Transition */
    transition: left ease-in-out 0.3s; 
}
CSS转换提供了一种在更改CSS属性时控制动画速度的方法。您可以使属性更改在一段时间内发生,而不是立即生效。例如,如果您将元素的颜色从白色更改为黑色,则更改通常是瞬时的。使用CSS转换如果启用了位置,则会按照加速曲线的时间间隔进行更改,所有这些都可以自定义

资料来源:

编辑

根据您的更新添加

.nav {
    list-style: none;
    background: #fff;
    width: 360px;
    height: 100%;
    position: fixed;
    z-index: 999;
    top: 0;
    display: block;
    right: 0;
    transform: translateX(360px);
}

.page-wrap {
    min-width: 100%;
    min-height: 100%;
    position: relative;
    top: 0;
    bottom: 100%;
    z-index: 1;
    transform: translateX(0px);
    overflow: visible;
    transition: all 0.9s ease;
    overflow: visible !important;
}

您可以通过添加一些css更改来做到这一点:

.nav {
list-style: none;
background: #fff;
width: 360px;
height: 100%;
position: fixed;
z-index: 0;
right: -360px; // changed from 0 to -360px
top: 0;
/* display: none; */
}

.show-nav {
/* display: block !important; */
right: 0; // add this line
}
然后再加上这个

.page-wrap, .nav {
transition: all 0.2s ease;
}

您可以通过添加一些css更改来做到这一点:

.nav {
list-style: none;
background: #fff;
width: 360px;
height: 100%;
position: fixed;
z-index: 0;
right: -360px; // changed from 0 to -360px
top: 0;
/* display: none; */
}

.show-nav {
/* display: block !important; */
right: 0; // add this line
}
然后再加上这个

.page-wrap, .nav {
transition: all 0.2s ease;
}


使用类似于上述答案的过渡,但不要设置
动画,这将非常缓慢和滞后。请改用变换。

使用类似于上述答案的过渡,但不要设置
动画,这将非常缓慢和滞后。改用变换。

也可能会影响我或者使用transform:translateY(0px)transform:translateY(-360px),这样就可以在gpu上抛出它(与左相反)@AndrewBone绝对正确。最好让设备设计用于此目的:)@AndrewBone这是一个很好的建议,因为它可以防止动画过程中出现任何抖动,而这种抖动往往会发生在某些设备上。我已经这样做了。唯一的问题是我无法让导航显示在右侧(它现在不可见)完成后,ubie-global.ubieportal.co。uk@BenAnderson看起来您做了一些更改。请从.page wrapals中删除clear类。这样可能值得使用transform:translateY(0px)transform:translateY(-360px),以便可以在gpu上抛出它(与左相反)@AndrewBone绝对正确。最好让设备设计用于此目的:)@AndrewBone这是一个很好的建议,因为它可以防止动画过程中出现任何抖动,而这种抖动往往会发生在某些设备上。我已经这样做了。唯一的问题是我无法让导航显示在右侧(它现在不可见)完成后,ubie-global.ubieportal.co。uk@BenAnderson看起来您做了一些更改。从.page wrapPerfect中删除clear类。唯一的问题是“.nav”由于某种原因现在没有显示。很抱歉,我没有添加正确的:0;在“show nav”上很抱歉。我的错误完美。唯一的问题是“.nav”“由于某些原因现在未显示抱歉,我没有添加正确的:0;在“显示导航”上抱歉。我的错我做了这件事。唯一的问题是我做了这件事后不能让导航显示在右边它是对的:0这就是问题所在。使用左边:-360px我已经这样做了。唯一的问题是我做了之后不能让导航显示在右边它是正确的:0这就是问题所在。使用左键:-360px