关于 slider 的 无缝滚动
<template>
<div class="swiper-wrapper-pro">
<!-- 缓加载loading组件 -->
<!-- <div class="loading-container" v-if="!dataImg.length">
<me-loading></me-loading>
</div> -->
<!-- 幻灯片组件 -->
<me-slider
v-bind:direction="direction"
v-bind:interval="interval"
v-bind:loop="loop"
v-bind:pagination="pagination"
>
<swiper-slide v-for="(item, index) in dataImg.slider" v-bind:key="index">
<div class="slider-img-container">
<img v-lazy="item" alt="" class="slider-img">
</div>
</swiper-slide>
</me-slider>
</div>
</template>
<script>
import MeSlider from 'base/slider';
import MeLoading from 'base/loading';
import {swiperSlide} from 'vue-awesome-swiper';
import {swiperOption} from './config';
export default {
name:'productSlider',
data () {
return {
sliders: [],
direction: swiperOption.direction, //幻燈片滑動方向
loop: swiperOption.loop, //無縫滾動
interval: swiperOption.interval, //輪播開關(0<開啟)及速度
pagination: swiperOption.pagination, //分頁器
};
},
// index.vue 已经将图片赋值了, 所以这里不需要再赋值
props:{
dataImg: {
type: [Array, Object],
default:[],
},
},
components: {
'me-slider':MeSlider,
'me-loading':MeLoading,
'swiper-slide':swiperSlide,
},
created() {
this.con();
},
methods: {
con() {
setTimeout(() => {
// console.log('dataImg', this.dataImg);
},3000);
},
},
watch: {
dataImg(val) {
console.log('watch-Val',val);
this.sliders = val;
console.log('sliders', this.sliders.slider)
}
}
}
</script>
<style lang='scss' scoped>
.swiper-wrapper-pro {
height: 283px;
}
.slider-img {
width: 100%;
height: 100%;
}
.loading-container {
padding-top: 100px;
}
</style>请问老师:
为什么 我已经挂入 loop 了,但 最后一张 没办法 向右滑动,立刻回到第一张?
请老师解惑,谢谢您。
1
收起
正在回答
1回答
同学你好,首先, 我们来分析为什么传入loop但是无法实现无缝轮播
因为在base/slider组件中, 通过监听父组件传入的dataSlider值来判断是给swiper组件设置loop属性, 你在product.vue中没有传入dataSlider, 所以无法开启无缝轮播

建议:给组件绑定dataSlider值

这样修改之后,虽然可以实现无缝轮播, 但是由于同学给轮播图片添加了懒加载, 导致最后一张切换到第一张之间显示空白。
建议:可以不使用懒加载技术,在显示整个banner区域之前添加一个判断,判断是否有数据,如果没有数据, 显示loading效果, 如果有数据的时候,直接显示轮播图片就可以了。 这样就不用在每一张加载的时候都显示loading过程了,

另, 需要注意一下, dataImg包括content和slider信息, 可以将slider直接赋值给sliders,方便后续的操作哦

如果帮助到了你, 欢迎采纳!
祝学习愉快~~~~
4.Vue与React高级框架开发
- 参与学习 人
- 提交作业 239 份
- 解答问题 10739 个
本阶段带你深入前端开发的肌理,通过ES6基础知识和前端主流高级框架的学习,助你快速构建企业级移动webAPP应用,进入职场的终极battle
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星