亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javscript:對于每個圖像,單擊顯示帶有圖像縮放的模式

Javscript:對于每個圖像,單擊顯示帶有圖像縮放的模式

慕桂英3389331 2023-10-24 17:27:13
我目前正在開發一個簡單的圖像模式,它應該只顯示帶有關閉按鈕的圖像縮放。我有一個從 CMS 生成的標記,其中可以將 a 標記配置為具有額外的類“lightbox”作為屬性,然后該屬性應該觸發 lightbox 腳本。然而,目前它似乎只適用于加載的第一張圖像。當我單擊另一張圖像時,它顯示與第一張圖像相同的圖像源,我不知道如何修復它。是否需要先循環播放所有圖像?我的 CMS 為 DOM 中的圖像生成一個標記,如下所示(圖像是占位符):<a href="image1.png" class="lightbox">  <img class="image-embed-item" src="image" ></a><a href="image1.png" class="lightbox">   <img class="image-embed-item" src="image" ></a><a href="image1.png" class="lightbox">    <img class="image-embed-item" src="image" ></a>然后,在我的默認布局中,我添加燈箱模式的標記:<div id="imagemodal" class="modal">    <!-- Modal content -->    <div class="modal-content">        <div class="close">&times;</div>        <img src="" id="imagepreview" style="width: 100%;" >    </div></div>這是 JavaScript 代碼:window.addEventListener('DOMContentLoaded', function () {    // add imageresource id to loaded image    $(".image-embed-item").attr("id", "imageresource");    // add data-toggle class to all lightbox elements    $(".lightbox").attr("data-toggle", "lightbox");    // click event for data toggle    $(document).on('click', '[data-toggle="lightbox"]', function (event) {        event.preventDefault();    // use image source from clicked image        $('#imagepreview').attr('src', $('#imageresource').attr('src'));        $('.modal').css('display', 'block');    });    $(document).on('click', $('.closeModal'), function (event) {        // close function    });});
查看完整描述

1 回答

?
大話西游666

TA貢獻1817條經驗 獲得超14個贊

您對以下所有位置使用相同的 id .image-embed-item:


 $(".image-embed-item").attr("id", "imageresource"); 

然后使用$('#imageresource').attr('src')設置預覽。這就是為什么它總是顯示模式中的第一張圖像。您可以通過更改為來解決$('#imageresource').attr('src')它$(this).find('img').attr('src')。像這樣的東西:


window.addEventListener('DOMContentLoaded', function () {


  // add data-toggle class to all lightbox elements

  $(".lightbox").attr("data-toggle", "lightbox");


  // click event for data toggle

  $(document).on('click', '[data-toggle="lightbox"]', function (event) {

    event.preventDefault();

  // use image source from clicked image

    $('#imagepreview').attr('src', $(this).find('img').attr('src'));

    $('.modal').css('display', 'block');

  });


  $(document).on('click', $('.closeModal'), function (event) {

    // close function

  });

});


查看完整回答
反對 回復 2023-10-24
  • 1 回答
  • 0 關注
  • 130 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號