Vue klickt auf ein einzelnes Bild, um es zu vergrößern (reines JS)

Klicken Sie in Vue auf ein einzelnes Bild, um es zu vergrößern,
Fügen Sie hier eine Bildbeschreibung ein
nachdem Sie auf das Bild geklickt haben – „
Fügen Sie hier eine Bildbeschreibung ein

Im Vue-Projekt können Sie die Bildvorschaukomponente wie vue-preview verwenden, um die Funktion zum Klicken auf das Bild zum Vergrößern zu realisieren, oder JavaScript verwenden, um den Code für die vergrößerte Vorschau zu schreiben.

Die Schritte sind wie folgt:
Fügen Sie dem HTML ein Bildelement hinzu und binden Sie das Klickereignis daran.

Definieren Sie in der Option „Methoden“ der Vue-Komponente die Rückruffunktion des Bildklickereignisses, die die Funktion zum Vergrößern der Vorschau des Bildes implementiert.

Sie können die Dom-Operation von JavaScript verwenden, um das Bild in die Popup-Ebene einzufügen, und CSS in der Popup-Ebene verwenden, um das Bild zu vergrößern.

Das Folgende ist ein einfacher Implementierungscode:

HTML:

<img src="your-image-url" @click="showImagePreview" />

JS

<script>
export default {
    
    
  methods: {
    
    
    showImagePreview() {
    
    
      const image = new Image();
      image.src = this.imageUrl;
      image.onload = () => {
    
    
        // 创建弹出层
        const previewContainer = document.createElement('div');
        previewContainer.style.position = 'fixed';
        previewContainer.style.top = 0;
        previewContainer.style.bottom = 0;
        previewContainer.style.left = 0;
        previewContainer.style.right = 0;
        previewContainer.style.backgroundColor = 'rgba(0,0,0,0.8)';
        previewContainer.style.display = 'flex';
        previewContainer.style.justifyContent = 'center';
        previewContainer.style.alignItems = 'center';
        document.body.appendChild(previewContainer);
        // 在弹出层中添加图片
        const previewImage = document.createElement('img');
        previewImage.src = this.imageUrl;
        previewImage.style.maxWidth = '80%';
        previewImage.style.maxHeight = '80%';
        previewContainer.appendChild(previewImage);
        // 点击弹出层,关闭预览
        previewContainer.addEventListener('click', () => {
    
    
          document.body.removeChild(previewContainer);
        });
      };
    }
  }
};
</script>

おすすめ

転載: blog.csdn.net/weixin_44856917/article/details/128818158