html - 如何解决此图像幻灯片的 css 问题?
问题描述
当一个图像每次更改为另一个图像时,它会移动一点底部和右侧,并在动画后返回,直到下一个图像更改。这是简单的幻灯片。这是代码:
<div>
<transition-group name='fade' tag='div'>
<div v-for="n in [currentN]" :key='n'>
<img :src="Image" />
</div>
</transition-group>
</div>
CSS
.fade-enter-active,
.fade-leave-active {
transition: all 0.8s ease;
overflow: hidden;
visibility: visible;
opacity: 1;
position: absolute;
width:100%
}
.fade-enter,
.fade-leave-to {
opacity: 0;
visibility: hidden;
width:100%
}
img {
height:600px;
width:100%
}
出了什么问题,如何解决该图像更改动画问题并始终保持图像的屏幕全宽和高度 600 像素而不改变其位置?
几天前我在 jsfiddle 中找到了它,并试图对其进行更改。
解决方案
推荐解决方案
为宽度提供静态数字img
将解决问题。从 更改100%
为您喜欢的宽度px
,如下所示:
img{
height:200px;
width:300px;
}
替代解决方案:
body{
margin:0px;
}
这可以防止您的图像从网格中流出,并使您能够100%
像最初一样在图像标签上使用。示例:https ://jsfiddle.net/L5y2hqua/
代码片段
new Vue({
el: 'image-slider',
data: {
images: ['http://i.imgur.com/vYdoAKu.jpg', 'http://i.imgur.com/PUD9HQL.jpg', 'http://i.imgur.com/Lfv18Sb.jpg', 'http://i.imgur.com/tmVJtna.jpg', 'http://i.imgur.com/ZfFAkWZ.jpg'],
currentNumber: 0,
timer: null
},
mounted: function () {
this.startRotation();
},
methods: {
startRotation: function() {
this.timer = setInterval(this.next, 3000);
},
next: function() {
this.currentNumber += 1
},
prev: function() {
this.currentNumber -= 1
}
},
computed: {
currentImage: function() {
return this.images[Math.abs(this.currentNumber) % this.images.length];
}
}
});
.fade-enter-active,
.fade-leave-active {
transition: all 0.8s ease;
overflow: hidden;
visibility: visible;
opacity: 1;
position: absolute;
width:100%;
}
.fade-enter,
.fade-leave-to {
opacity: 0;
visibility: hidden;
width:100%;
}
img {
height:200px;
width:300px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.6/vue.js"></script>
<body>
<div class="slider-wrapper">
<image-slider>
<transition-group name='fade' tag='div'>
<div
v-for="number in [currentNumber]"
:key='number'
>
<img
:src="currentImage"
/>
</div>
</transition-group>
</image-slider>
</div>
</body>
推荐阅读
- python - 将两个相关的 DataFrame 列拆分为两个新的 DataFrame
- reactjs - 用于检查要调用的调度的单元测试功能
- python - Python TypeError:'set'对象不可下标
- javascript - d3v4 为什么我的线元素没有出现?
- python - 为什么 pandas read_csv 操作不按列尊重 dtype 选项?
- java - Java中带有信号量的多线程状态
- video - Gradle 任务 assembleDebug 在使用 firebase 安装包“youtube_player_flutter:”时出现退出代码 1 错误失败
- html - 如何在 vuetify 上使标题栏动态化?
- arrays - 将特定顺序强制分组
- python - 我可以在 AWS Cost Explorer API 调用中获取关联账户名称吗?