html - 容器在我的 Vue Swiper 中没有内联
问题描述
我在我的 vue 应用程序中编写了简单swiper
的内容,但我遇到了非内联容器的问题。第二个在第一个之下。第二个问题是滑块元素应该只在视口中可见,swiper
但它不是(视口是边框是蓝色的)。
我想实现流畅的幻灯片放映的漂亮效果。
您可以在我的示例中看到它:
https://jsfiddle.net/eywraw8t/547878/
我该如何解决?
<template>
<div class="swiper">
<transition-group
tag="div"
class="slides-group"
:name="transitionName"
>
<div :key="currentIndex" class="slide">
<slot v-bind:element="current" />
</div>
</transition-group>
<div class="pagination">
<button @click="next">next</button>
</div>
</div>
</template>
<script>
export default {
props: {
data: {
type: Array,
default: []
}
},
data() {
return {
currentIndex: 0,
transitionName: 'slide-next'
}
},
computed: {
current() {
return this.data[this.currentIndex];
}
},
methods: {
next() {
this.currentIndex++;
}
}
}
</script>
<style lang="scss" scoped>
.swiper {
width: 100%;
position: relative;
}
.slide-next-enter-active,
.slide-next-leave-active {
transition: transform 0.5s ease-in-out;
}
.slide-next-enter {
transform: translate(100%);
}
.slide-next-leave-to {
transform: translate(-100%);
}
.slide-prev-enter-active,
.slide-prev-leave-active {
transition: transform 0.5s ease-in-out;
}
.slide-prev-enter {
transform: translate(-100%);
}
.slide-prev-leave-to {
transform: translate(100%);
}
</style>
解决方案
尝试以下 CSS 更改 1) 到 .swiper,添加: overflow:hidden; 2)在.slide中,添加: display:inline-block;
然后,更改美学的过渡设置。
.swiper {
margin-left: 100px;
position: relative;
border: 1px solid blue;
overflow:hidden;
}
.slide {
border: 1px solid red;
width: 200px;
height: 200px;
display:inline-block;
}
inline
请注意,如果线宽超过容器宽度,使用显示器会导致它分成多行。您可能希望在它们上设置具有固定位置的绝对显示,并操纵这些位置以实现所需的效果。
推荐阅读
- android - 滚动视图和 layout_constraintHeight_max 使视图消失
- java - 通过 XML 进行第二次循环的空指针?
- r - 如何调用`function`函数?
- excel - Excel 数字后斜线
- sql - SQL Server:我无法在查询标记错误时恢复 .bak 文件,并且在 GUI 上不显示任何内容
- c - 为什么 __thread 必须遵循 extern 或 static
- vue.js - Vue CLI 项目在 yarn -> npm 切换后不会热重载。也没有配置文件?
- ruby-on-rails - 如何将 `DateTime` 转换为柏林的相应日期和时间?
- python - 无法为 Keras 模型开发自定义指标
- python - 来自两个 pandas DF 的交叉引用列。如果找到匹配项,则将信息从一个 DF 填充到另一个