【问题标题】:Strange CSS transition behavior on adding class添加类时奇怪的 CSS 过渡行为
【发布时间】:2018-04-20 11:48:20
【问题描述】:

Class Event 1 是我试图通过直接放置类而不添加悬停属性来实现的,尽管它适用于Hover Elements

请检查this笔,您可以按照以下说明找到问题:

  1. 在“名称”中输入任何内容
  2. 点击Tab

您应该到达第一个状态(左侧和底部的橙色边框和一些过渡效果),它从右上角拉自己,我不明白它为什么这样做。它在上面引用的Hover Example 中完全完美。

理解我的 CSS

.draw {

    transition: color 0.25s;

它给出了一个 2px 透明的假想边框,我们稍后会突出显示

  &::before,
  &::after {    
    border: 2px solid transparent;
    width: 0;
    height: 0;
  }

这是您从左上角开始转换 ::before 的地方

/*   This covers the top & right borders (expands right, then down) */
  &::before {
    top: 0;
    left:0;
  }

这将改变文本的颜色。

  &.dj {
    color: rgb(255,123,0);
  }

这里我想把它扩大到 66% 的宽度。

/*  Class styles */
  &.dj::before,
  &.dj::after {
    width: 66%;
    height: 100%;
  }

是否必须添加/推荐::after

  &.dj::before {
    border-bottom-color: rgb(255,123,0);
    border-left-color: rgb(255,123,0); // Make borders visible
    transition:
      height 0s ease-out, // Width expands first
     width 0.25s ease-out; // And then height
  }
} 

【问题讨论】:

    标签: javascript css css-transitions transition


    【解决方案1】:

    我可以看到悬停演示和选项卡实现之间存在一些差异。

    首先是在悬停演示中,左边框应用于.draw:before,下边框应用于.draw:after。在您的选项卡实现中,两个边框都应用于.draw:after,并且由于.draw:after 与按钮的底部对齐,这会弄乱垂直动画,您实际上希望从顶部开始并向下动画。这是通过提供.draw:after top:0 而不是bottom:0 来解决的。

    第二个问题是您同时应用了.draw.dj 类。结果,立即应用边框宽度和高度。您需要做的是在宽度高度开始和结束值之间切换。我建议将.draw 类直接应用于标记中的按钮,而不是切换两个类,只在用户选项卡时切换.dj 类。

    这是一个应用了这些更改的分叉笔:https://codepen.io/jnicol/pen/EbNavz

    还可以进行各种其他增强,但这些更改应该可以解决您所描述的直接问题。

    【讨论】:

    • 这正是我正在寻找的,也请您检查最后一部分。即draw2类。我也在努力实现最终的过渡。感谢您的帮助。
    猜你喜欢
    • 2012-11-28
    • 2015-08-06
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多