如何停止CSS转换第一次运行?

准刺

当屏幕宽度小于768px时,我的网站的菜单将变为非画布菜单。然后,可以通过单击触发菜单,并translate使用CSS过渡来输入和输出菜单

问题是当浏览器> 768px,然后将其大小调整为<​​768px时。菜单快速过渡出来,而不是最初脱离画布。

您可以在此处查看示例:http : //codepen.io/anon/pen/RPoQzO(下面的代码)

  1. 将预览部分真正变宽,您会看到白框填充了整个宽度
  2. 将部分调整为窄尺寸,您会看到它滑出。我不想要-我只希望它立即消失。
  3. 单击绿色区域,您将看到所需的过渡效果。(这当然是一个混蛋,但它例证了这个问题)

我想用CSS解决这个问题(如果可能的话)。我不想添加用于大小调整的Javascript侦听器。我宁愿继续使用它,也不愿使用Javascript。

编辑:这是代码:

<div id="menu">
  This is the menu
</div>

和CSS

body{
  background:green;
}
#menu{
  background:white;
}

@media(max-width:768px){
    #menu{
        transform:translateX(-100%);
        -webkit-transform:translateX(-100%);
        transition:transform 0.3s;
        -webkit-transition:-webkit-transform 0.3s;
    }

    #menu.in{
            transform:translateX(0);
            -webkit-transform:translateX(0);
    }
}
dfsq

您可以尝试使用另外一个设置过渡的帮助器类来实现此目的:

#menu {
  background:white;
}

@media (max-width: 768px) {
  #menu {
    transform:translateX(-100%);
    -webkit-transform:translateX(-100%);
  }
  #menu.clicked {
    transition: transform 0.3s;
    -webkit-transition:-webkit-transform 0.3s;
  }
  #menu.in {
    transform:translateX(0);
    -webkit-transform:translateX(0);
  }
}

和JS部分:

$(window).on('click',function() {
    $("#menu").toggleClass('in').addClass('clicked');
    setTimeout(function() {
        $("#menu").removeClass('clicked');
    }, 100);
});

请注意,您需要在短暂的超时后删除助手类,以便仅在单击的情况下才激活过渡,而在调整窗口大小时则不会激活。

演示: http //codepen.io/anon/pen/aOBYYP

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

第一次运行jstree

来自分类Dev

运行测试容器 *.dll 文件时在第一次失败时停止 MStest

来自分类Dev

第一次运行后没有运行CSS动画

来自分类Dev

第一次比赛后停止MySQL

来自分类Dev

第一次比赛后停止

来自分类Dev

套接字在第一次接收后停止

来自分类Dev

为什么在第一次迭代后就停止了?

来自分类Dev

inotify脚本在第一次更改后停止

来自分类Dev

第一次匹配时停止ssh配置

来自分类Dev

第一次后停止读取NFC标签

来自分类Dev

Ajax 代码在第一次计算后停止

来自分类Dev

RedirectMatch - 停止匹配第一次出现

来自分类Dev

mod_rewrite:第一次比赛后如何停止?

来自分类Dev

第一次失败后如何停止async.queue?

来自分类Dev

如何使Hibernate Validator在第一次违反字段时停止验证?

来自分类Dev

第一次演练后如何停止触发Introjs?

来自分类Dev

第一次比赛后如何停止find命令?

来自分类Dev

第一次单击后如何停止jQuery代码块执行

来自分类Dev

在第一次编辑后编辑列时如何停止时间戳更新

来自分类Dev

CSS过渡不适用于React中的第一次运行

来自分类Dev

第一次尝试运行KIVY

来自分类Dev

第一次运行机器学习项目

来自分类Dev

第一次尝试运行KIVY

来自分类Dev

Observable<String?> 仅第一次运行

来自分类Dev

PagerAdapter第一次转换缓慢

来自分类Dev

XML到XSLT的转换-第一次

来自分类Dev

XML到XSLT的转换-第一次

来自分类Dev

PagerAdapter第一次转换缓慢

来自分类Dev

我如何在工作簿第一次打开时运行宏?