关于 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 星