css - Sass mixins:遇到 translateX 和 translateY 的问题
问题描述
我创建了一个 mixin 来为不透明度和水平/垂直位置设置动画。我已经阅读了 SASS 网站上的文档。mixin 当前为不透明度设置动画,但无法移动元素—— translateX 和 translateY。
@mixin keyframes($animation-name, $axis, $start, $end) {
@keyframes #{$animation-name} {
0% {
opacity: 0;
transform: #{$axis}(#{$start});
}
50% {
opacity: 1;
}
100% {
opacity: 1;
transform: #{$axis}(#{$end});
}
}
}
@include keyframes(slideLeft, translateX, 0, 200px);
.slide-left {
animation: slideLeft 2s ease .1s forwards;
}
.redbox {
opacity: 0;
height: 100px;
width: 100px;
background: red;
}
<div class="redbox slide-left">
</div>
这是支持 SCSS 的 JS fiddle 的链接:在此处输入链接描述
我一直在敲我的头,试图找出我做错了什么。任何帮助表示赞赏。
解决方案
问题在于 Sass 是如何编译代码的。您需要使用文字字符串来定义转换值(translate
函数)。因此,您需要将属性的值创建为字符串,然后使用unquote
函数输出该值:
@mixin keyframes($animation-name, $axis, $start, $end) {
@keyframes #{$animation-name} {
0% {
opacity: 0;
transform: unquote("#{$axis}(#{$start})");
}
50% {
opacity: 1;
}
100% {
opacity: 1;
transform: unquote("#{$axis}(#{$end})");
}
}
}
演示在这里。
希望能帮助到你。
推荐阅读
- php - 确定用户的订阅状态
- python - 我正在尝试为 scrapy 请求打印 301 状态。但是,页面每次重定向并显示 200
- iis - 如何创建删除子域 IIS 重定向规则?
- php - 将 API 端点从 .php 重命名为 .json
- python - 将 matplotlib.pyplot.plot() 与 pd.plot() 结果匹配(x 刻度线和图例)
- javascript - 承诺不提供堆栈跟踪
- docker - 将 Docker 容器部署到 Cloud Foundry 时,MQTT 端口连接被拒绝
- java - 当片段中的recyclerview滚动时CollapsingToolbarLayout不折叠
- iis - http2 请求返回 - http 错误 400。请求动词无效
- pytorch - pytorch中张量torch.Size([])和torch.Size([1])的形状差异