CSS按钮过渡效果停止播放

3

我的CSS转换突然停止,如下图所示。

enter image description here

这只发生在Chrome上,而在Firefox上一切正常,除此之外我无法测试。

有趣的是,不仅转换无缘无故停止,而且一旦我右键单击具有此类的按钮,它就会在其余的浏览会话中正常工作。

以下是当工作转换结束时按钮的外观:

enter image description here

HTML和CSS代码

.main-link{
  position: relative;
  display: block;
  overflow: hidden;
  width: 200px;
  height: auto;
  color: #FFF;
  text-align: center;
  text-decoration: none;
  border: 2px solid #53c1f8;
}
.main-link::after {
  position: absolute;
  overflow: none;
  content: "";
  background: #53c1f8;
  left: 50%;
  top: 50%;
  height: 0%;
  width: 100%;
  z-index: -1;
  transition: 0.75s ease-in-out;
  transform: translateX(-50%) translateY(-50%) rotate(45deg);
}
.main-link:hover::after {
  height: 15em;
}
<body>
  <div id='main'>
    <div id='content'>
      <div id='main-image'>
        <div id='main-image-intro'>
          <ul id='main-image-cto'>
            <li>
              <a href='subscribe.html' class='main-link'> GET STARTED </a>
            </li>
            <li>
              <a href='subscribe.html' class='main-link'> GIFT IT </a>
            </li>
          </ul>
        </div>
      </div>
    </div>
  </div>
</body>

在Ubuntu 15.10下测试通过:

  • Chromium版本号为47.0.2526.73
  • Mozilla Firefox版本号为43.0.4

在Windows上的Chrome已确认。 - GolezTrol
1个回答

4

编辑: 我完全改变了答案。我认为这应该在任何现代浏览器中都可以工作,并且是更安全的选项。

a.button {
    color: black;
    height: 50px;
    width: 200px;
    border: 2px solid black;
    padding: 10px 30px;
    text-decoration: none;
    font-family: Helvetica;
    position: relative;
    display: inline-block;
    line-height: 50px;
    text-align: center;
    transition: color 0.2s ease-out;
    overflow: hidden;
}
a.button:after {
    position: absolute;
    content: '';
    background-color: black;
    height: 100%;
    width: 1px;
    left: 65%;
    top: 0;
    z-index: -1;
    transition: transform 0.4s ease-out;
    transform: skew(45deg) scale(0,1);
    margin-left: -20%;
}
a.button:hover {
    color: white;
}
a.button:hover:after {
    width: 1px;
    background-color: black;
    transform: skew(45deg) scale(400, 1);
}
<a class="button" href="">Button</a>


我把“after”变大了。这解决了你的问题吗? - RodrigoDela
遗憾的是,仍然没有任何进展。奇怪的是,转换已经翻转了,即现在它呈-45度角,而在Firefox上它仍然有效。此外,它延伸到转换中更远的位置。 - Ziyad Edher
谢谢,这解决了动画卡顿的问题,但现在当我移开鼠标时,::after 伪类被移除了视图,我找不到原因,有什么想法吗? - Ziyad Edher
抱歉,我无法确认这个问题。在我的Chrome和Firefox上可以正常工作,就像您的示例中那样放大和缩小。您是否正确地刷新了页面?您使用的是哪个版本的Chrome? - RodrigoDela
我真是太傻了。我的代码有一个小的语法错误。而且我还没有刷新这个页面,以便片段能够正常工作。非常感谢你的帮助! - Ziyad Edher
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接