css - 动画旋转线 css?

标签 css css-animations css-transforms

我正在为一条从 0 到 100% 的线条设置动画。

关键帧 CSS:

@keyframes animate-line {
    0% {
        width: 0%;
    }
    100% {
        width: 100%;
    }
}

线条 CSS:

.line {
    animation: animate-line 5s infinite;
    background: none repeat scroll 0px 0px transparent;
    border-top: 2px solid rgba(255, 255, 255, 0.5);
    display: block;
    position: absolute;
    z-index: 9;
    height: 1px;
    -moz-transform: rotate(16deg);
    -webkit-transform: rotate(16deg);
    transform: rotate(16deg);
    left: 20px;
    top: 200px;
}

我在实时代码中到处都使用供应商前缀,为了便于阅读这里省略了。

你可以看到我用 transform: rotate(); 旋转了这条线;这样做会使直线从 0 变为 100%。我可以从逻辑上思考它为什么这样做,我定义了 left/top 属性,所以我认为它从 top: 200pxleft: 20px 开始并按预期扩展但是为什么它还想转向?

Running demo on jsfiddle

希望有人能指出这一点,我相信这很简单。

回答:感谢@barrett,刚刚了解了一个新属性 transform-origin: 0 0。为旋转的线设置动画可能很有用,如果其他人使用 transform-origin: 0; 这样做是一件大事,谢谢。

最佳答案

将此添加到 .line 上的样式表:

.line {
  -webkit-transform-origin: 0 0;
  -moz-transform-origin: 0 0;
  transform-origin: 0 0;
}

默认情况下它会从中心变换,这就是它向上移动的原因。

Running demo

关于css - 动画旋转线 css?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19931874/

相关文章:

javascript - 为每个表格单元格随机分配不同的名称

css - 将 CSS 动画应用到文本——如何正确使用?

html - 为什么 rotate(0deg) 很重要?

html - 如何使用CSS转换translateX元素直到其内容的末尾到达父元素的右侧?

css - 完整的 CSS 3D 页面 - 相机实现

css - font-awesome 在 mvc5 中不起作用

css - 在 Ruby on Rails 中将图像加载到 View 中时出错

javascript - 如何显示来自文本字段的用户输入

css - 使用 GSAP 以倾斜 Angular 围绕 Y 轴旋转 Div

javascript - ng-style 不适用于 stroke-dasharray 和 stroke-dashoffset CSS 元素