前端学习笔记-图片预览

前端学习笔记二

使用vant的Swipe 轮播van-swipe 和ImagePreview 图片预览van-image-preview 和Lazyload
懒加载 实现点击哪张轮播图,哪张图预览

ImagePreview组件调用,images需要传入图片数组,当前的需求ImagePreview不需要轮播,只需要显示点击的轮播图的单张图。

HTML
<template>
    <div class="detail_contant">
            <van-swipe :autoplay='3000' @change="onChangeImg" >
                <van-swipe-item v-for="(image, index) in images" :key="index" @click="showImagePreview" >
                    <img v-lazy="image" alt="图片未显示"/>
                </van-swipe-item>
            </van-swipe>  
            <van-image-preview
                v-model="ImagePreviewShow"
                :images="imagesLists"
            >
            </van-image-preview>             
    </div>
</template>
JS
<script>
export default {
    data(){
        return{
            images: [
                require('@/assets/banner_3@2x.png'),
                require('@/assets/banner_4@2x.png'),
                require('@/assets/banner_5@2x.png'),
                require('@/assets/banner_1@2x.png'),
                require('@/assets/banner_2@2x.png'),
            ],
            ImagePreviewShow: false,
            index: 0,
            imagesLists: [],
            imgIndex:0,
        }       
    },
    mounted(){     
    },
    methods: {  
     //得到图片索引值       
        onChangeImg(index) {
            this.index = index;
        },  
        //显示预览图
        showImagePreview(){ 
            this.imgIndex = this.index;    
            this.ImagePreviewShow = true;      
            this.imagesLists = this.images.map((item)=>{
                return item;
            })        
            this.imagesLists = this.imagesLists.filter((item,index ) =>{  
                return index == this.imgIndex ;
            }) 
        },
    },

}
</script>
CSS
<style lang="scss" scoped>    
    .detail_contant{
        .van-swipe{
            width: 100%;
            .van-swipe-item {
                height: 100%;
                color: #fff;
                font-size: 20px;
                height: 6.16rem;
                text-align: center;
                vertical-align: middle;
                img{
                    width: 100%;
                    height: 100%;
                }
            }
            /deep/ .van-swipe__indicators{
                bottom:.27rem;
                /deep/ .van-swipe__indicator{
                    width: .25rem;
                    height:.25rem;
                    background: #e9e3d8;
                    opacity: 1;
                    &:not(:last-child){
                        margin-right:.26rem;
                    }
                    &.van-swipe__indicator--active{
                        background: #f78927;
                        opacity: 1;
                    }

                }
            }
        }
        .van-image-preview{
            /deep/ .van-image-preview__index{
                display: none;
            }
        }     
    }
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值