elment中走马灯与满屏图片实现

elment中走马灯与满屏图片实现

1、原基础操作

限制:被走马灯和外部宽度限制,导致图片无法被放大,被限制在走马灯所在的宽度内
思路:
1、监听图片的点击和关闭事件
2、图片放大时,去掉走马灯内的相对定位,宽度,动画限制,并还原底部走马灯的样式

//vue
 <div class="right-img-content" :class="{isFullImages:isFullImage,onFullImages:!isFullImage}">
     <el-carousel v-show="imageValue.dataLeftSource" ref="carouselRef" arrow="always" :autoplay="false"
                  indicator-position="none" @change="carouselChange">
         <el-carousel-item v-for="(item, index) in imageValue.dataLeftSource" :key="index" :name="index+''">
             <div class="image-wrap">
                 <el-image 
                 :src="item.imgSrcs" 
                 fit="cover" 
                 :preview-src-list="imageValue.imgMpList" 
                 :append-to-body="true"
                 :z-index="9999"
                 class="image_item" 
                 @click="toClickImg()">
                     <template #placeholder>
                         <el-image :src="Icons['noimg']"></el-image>
                     </template>
                     <template #error>
                         <el-image :src="Icons['noimg']"></el-image>
                     </template>
                 </el-image>
             </div>
         </el-carousel-item>
     </el-carousel>
 </div>
 
 
 //ts
  //预览图片
  function toClickImg(){
        isFullImage.value=true;
        let timerss= setTimeout(() => {//获取关闭图片按钮事件
            clearTimeout(timerss);
            nextTick(()=>{
                let documentClose=document.querySelector(".el-image-viewer__close");
                documentClose?.addEventListener("click",()=>{
                    isFullImage.value=false;
                });
            });
        }, 1);
    }


//css
.right-img-content{
	width:600px;
}
.isFullImages{
        z-index: 101;
        :deep(.el-carousel){
            position:unset;
        }
        :deep(.el-carousel__container){
            position:unset;
            .el-carousel__item:nth-child(n) .image-wrap{
                margin-top: 80px;
                margin-left: 32%;
            }
            .el-carousel__item.is-active .image-wrap{
                margin-left: unset;
            }
	        .el-carousel__item{
	            transform:unset !important;
	        }
        }
        :deep(.el-carousel__arrow){
            display: none;
        }
    }
    .onFullImages{
        :deep(.el-carousel){
            position: relative;
        }
        :deep(.el-carousel__container){
            position: relative;
	        .el-carousel__item{
	            transform:translateX(0px) scale(1) !important;
	        }
        }
        .image-wrap{
            margin-top: unset;
            margin-left: unset;
        }
        :deep(.el-carousel__arrow){
            display: unset;
        }
    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值