簡體   English   中英

離開后如何重置我的 html 圖像庫以從第一張圖像開始?

[英]How can I reset my html image gallery to start with first image after leaving it?

我有一個網站,在網站的不同部分有多個圖片庫。 當您單擊特定畫廊的圖像時,它會更改為該畫廊的下一個,依此類推。 我想要實現的是在您開始單擊不同的畫廊時將以前的畫廊重置為圖像 1。 因此,當用戶返回上一個畫廊時,它將從第一張圖像開始。

用於畫廊的代碼:

let projectIndexes = {
 project1: 1,
 project2: 1,

}

showDivs("project1", projectIndexes.project1);
showDivs("project2", projectIndexes.project2);

function plusDivs(project, n) {
  showDivs(project, projectIndexes[project] += n);

}

function showDivs(project, index) {
  let i;
  let x = document.getElementById(project).getElementsByClassName("slidess");
  if (index > x.length) { index = 1 }
  if (index < 1) { index = x.length }
  for (i = 0; i < x.length; i++) {
    x[i].style.display = "none";
 }
  x[index - 1].style.display = "block";
  projectIndexes[project] = index;
  let elements = document.getElementById(project).querySelector('.imgslide').children;
  let imgNames = [];
  for (let i = 0; i < elements.length; i++) {
    imgNames.push(elements[i].children[0].children[0].alt);
}

}

<div class="slide">
          <div class="slide-content">
            <div class="nextt" onclick="plusDivs('project1', 1)"></div>
          </div>
          <div class="image-container container prjct">
            <div class="projects" id="project1">
              <div class="imgslide noselect">
                <div class="content-container slidess">
                  <div class="style-3 style-3-left">
                    <img class="imageName" alt="Img" src="">
                  </div>
                  <div class="style-3 style-3-middle">
                    <img class="imageName" alt="Img" src="">
                  </div>
                  <div class="style-3 style-3-right">
                    <img class="imageName" alt="Img" src="">
                  </div>
                </div>
              </div>
            </div>
          </div>
        </div>
        <div class="slide">
            <div class="slide-content">
              <div class="nextt" onclick="plusDivs('project2', 1)"></div>
            </div>
            <div class="image-container container prjct">
              <div class="projects" id="project2">
                <div class="imgslide noselect">
                  <div class="content-container slidess">
                    <div class="style-3 style-3-left">
                      <img class="imageName" alt="Img" src="">
                    </div>
                    <div class="style-3 style-3-middle">
                      <img class="imageName" alt="Img" src="">
                    </div>
                    <div class="style-3 style-3-right">
                      <img class="imageName" alt="Img" src="">
                    </div>
                  </div>
                  <!-- <div class="img-name"></div> -->
                </div>
              </div>
            </div>
          </div>

我知道一種強制顯示第一個元素的方法,但事實證明它適用於所有項目。 我找不到的是一種在單擊新項目時識別的方法,即前一個和唯一的前一個項目需要重置為第一個圖像。 我已經為此苦苦掙扎了一段時間,無法使其發揮作用,因此我們將不勝感激任何幫助。 如果有什么不清楚的地方,請告訴我,我會澄清的。

如果我正確地跟隨你,下面應該做到這一點。

function resetPriorGalleries(currentProject) {
    var projectDivs = document.getElementsByClassName("projects");

    for (let i = 0; i < projectDivs.length; i++) {
        if (projectDivs[i].id === currentProject)
            return;
        showDivs(projectDivs[1].id, 1);
    }
}

調用它的最佳位置可能是在 onclicks 中。

onclick="plusDivs('project2', 1); resetPriorGalleries('project2');"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM