【问题标题】:Flicker when animating a burger menu on WebKit在 WebKit 上为汉堡菜单设置动画时闪烁
【发布时间】:2017-03-30 23:58:30
【问题描述】:

我正在为汉堡菜单设置动画,更改两个 div 的 marginwidth(带有过渡),同时,它是一个 汉堡图标动画切换类is-active

如您所见,结果是汉堡菜单内容(绿色区域)的闪烁效果: http://www.codeply.com/go/g7Zp98paz5

执行汉堡按钮:您可以看到,在几毫秒内,绿色区域消失了。 执行切换按钮:可以看到没有跳转。

我只在谷歌浏览器中复制它。

发生了什么?我该如何解决这种奇怪的行为?

我正在使用这个库:https://github.com/callmenick/Animating-Hamburger-Icons

【问题讨论】:

  • 使用第一个按钮(动画按钮),切换按钮应该可以工作,但第一个按钮在绿色区域会闪烁。我也使用 Chrome 54
  • 这也发生在我身上。适用于 Windows 的版本 54.0.2840.99。

标签: html css transition flicker hamburger-menu


【解决方案1】:

这似乎与旋转有关;将它们注释掉会使转换正常工作:

/* active state, i.e. menu open */
.c-hamburger--htx.is-active span {
  background: none;
}

.c-hamburger--htx.is-active span::before {
  top: 0;
  /*transform: rotate(45deg);*/
}

.c-hamburger--htx.is-active span::after {
  bottom: 0;
/*  transform: rotate(-45deg);*/
}

【讨论】:

  • 我很好奇这些轮换应该做什么:它们似乎不是过渡的一部分,因为没有它们也可以工作;他们在 FF 上也不做任何事情(不管有没有他们看起来都一样),而在 Chrome 上,他们会导致问题。
  • 是的,这真的很奇怪@Haroldo_OK,非常令人沮丧
  • 我认为那些是错误地放在那里的,可以安全地删除。
猜你喜欢
  • 1970-01-01
  • 2017-12-01
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
  • 2021-01-01
相关资源
最近更新 更多