【发布时间】:2019-01-22 23:27:49
【问题描述】:
我正在创建一个仅包含 2 个项目的滑块元素。当我单击返回/下一步时,我希望它们能够顺畅地左右滑动。单击下一步时效果很好,元素滚动和淡出,但是当我单击返回时,无论我做什么,第一个元素都会及时跳转,这个 gif 更直观地解释了一点:
编辑:这是一个小提琴 - http://jsfiddle.net/eywraw8t/273583/
这是我的 CSS:
.first-slide-enter{
opacity: 0;
transform: translatex(-100%);
transition: all 1.5s ease-out;
}
.first-slide-enter-to{
opacity: 1;
transform: translatex(0);
transition: all 1.5s ease-out;
}
.first-slide-leave-to{
opacity: 0;
transform: translatex(-100%);
transition: all 1.5s ease-out;
}
.second-slide-enter{
opacity: 0;
transform: translatex(0);
transition: all 1.5s ease-out;
}
.second-slide-enter-to{
opacity: 1;
transform: translatex(-100%);
transition: all 1.5s ease-out;
}
.second-slide-leave-to{
opacity: 0;
transform: translatex(0);
transition: all 1.5s ease-out;
}
这是我的html:
<transition name="first-slide">
<div v-if="!newShortcut.link">
<div id="drop-shortcut" class="drag-file clickable" @click="addShortcut">
<i class="fas fa-file-upload fa-lg"></i>
<p style="margin:20px 0 0;">Drag file here
<br> or click to browse</p>
</div>
<div>
<button @click="newShortcut.link = !newShortcut.link">Next</button>
</div>
</div>
</transition>
<transition name="second-slide">
<div v-if="newShortcut.link">
<div id="drop-icon" class="drag-file" @click="">
<i class="far fa-file-image fa-lg"></i>
<p style="margin:20px 0 0;">Drag file here
<br> or click to browse</p>
</div>
<div>
<button @click="newShortcut.link = !newShortcut.link">back</button>
</div>
</div>
</transition>
如何做到这一点?
【问题讨论】:
-
我正在看它,但如果你能发布一个有用的小提琴,那会很有帮助
-
@raphadko 小提示:使用
will-changecss 属性来提高动画的 fps(对我来说似乎有点滞后)。 developer.mozilla.org/ru/docs/Web/CSS/will-change(仅现代浏览器支持)
标签: javascript vue.js vuejs2