当前位置: 首页 > article >正文

需求:h5和小程序预览图片需要有当前第几张标识

1.小程序直接使用api:uni.previewImage

2.h5使用轮播图写一个组件

<template>
    <view class="custom-image-preview" v-if="visible">
      <view class="overlay"></view>
      <swiper class="swiper" :current="currentIndex" @change="onSwiperChange">
        <swiper-item v-for="(image, index) in images" :key="index" @click="closePreview">
          <image style="width: 100%;height: 100%;" :src="image" mode="aspectFit" class="preview-image" :show-menu-by-longpress="true"></image>
        </swiper-item>
      </swiper>
      <view class="index-indicator">
        {{ currentIndex + 1 }} / {{ images.length }}
      </view>
    </view>
  </template>
  
  <script>
  export default {
    props: {
      images: {
        type: Array,
        required: true,
      },
      current: {
        type: Number,
        default: 0,
      },
    },
    data() {
      return {
        visible: false,
        currentIndex: 0,
      };
    },
    methods: {
      openPreview() {
        this.currentIndex = this.current;
        this.visible = true;
      },
      closePreview() {
        this.visible = false;
        this.$emit('close');
      },
      onSwiperChange(e) {
        this.currentIndex = e.detail.current;
      },
    },
    mounted() {
      this.openPreview();
    },
  };
  </script>
  
  <style scoped>
  .custom-image-preview {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 9999;
  }
  
  .overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.8);
  }
  
  .swiper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
  
  .preview-image {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  
  .index-indicator {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    color: #fff;
    font-size: 24px;
    background: rgba(0, 0, 0, 0.5);
    padding: 8px 16px;
    border-radius: 16px;
  }
  </style>


http://www.kler.cn/a/488041.html

相关文章:

  • 某漫画网站JS逆向反混淆流程分析
  • vue3如何使用bus(事件总线)
  • IP 地址与蜜罐技术
  • 使用 C++ 实现神经网络:从基础到高级优化
  • 一.MySQL程序简介
  • ubuntu22.04 的录屏软件有哪些?
  • 人工智能知识分享第九天-机器学习_集成学习
  • Center Loss 和 ArcFace Loss 笔记
  • socket网络编程-TC/IP方式
  • 《解锁数据科学的魔法盒子:JupyterLab 全面解析》
  • 什么是VLAN?
  • eslint.config.js和.eslintrc.js有什么区别
  • flutter 开启了服务并隐藏后如何关闭
  • Jmeter_后置处理beanshell
  • 监控异地组网有哪些方法,含神卓S700设置教程
  • 移远BC28_opencpu方案_pin脚分配
  • 【深度学习基础】线性神经网络 | softmax回归
  • QTcpSocket 如何统计在线时长
  • 数据结构——栈的实现
  • 在idea中配置多个版本的jdk
  • 【机器学习:十二、TensorFlow简介及实现】
  • 【前端知识】手搓微信小程序
  • 【运维】如何检查电脑正常异常和关机日志? 1074正常关机或重启 6006正常关机 41非正常关机 6008异常关机
  • 单片机-直流电机实验
  • 【Maui】动态菜单实现(绑定数据视图)
  • Docker部署Naocs-- 超细教程