테스트 사이트 - 개발 중인 베타 버전입니다

클릭 시 변하는 스크립트 중복 사용일때요~ 채택완료

홀로그램웹 2년 전 조회 1,277

제가 구현하고 싶은건

비스포크 냉장고 처럼 클릭시 왼쪽 오른쪽 컬러가 바뀌는 거거든요~ 

 

 

그래서 알아본게 썸네일 갤러리 형태구요 

간단한?스크립트가 있는데 중복 사용이 안되더라구요

같은 스크립트도 한 공간안에서 중복 사용하고 싶은데 어떻게 짜야할까요?

지금 하고 있는 스크립트 첨부합니다~

 

 

</p>

<p><style>

#container{margin-bottom: 80px;}

#photo{

  display: block;

  width: 960px;

  border: 10px solid black;

  margin: 0 auto;

  box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.6);

}

#gallery{text-align: center;}

 

#gallery > li {

  display: inline-block;

  margin: 0 10px;

}

 

#gallery > li > img{

  display: block;

  width: 200px;

  border: 5px solid black;

  cursor: pointer;

}</p>

<p>

#photo2{

  display: block;

  width: 960px;

  border: 10px solid black;

  margin: 0 auto;

  box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.6);

}

#gallery2{text-align: center;}

 

#gallery2 > li {

  display: inline-block;

  margin: 0 10px;

}

 

#gallery2 > li > img{

  display: block;

  width: 200px;

  border: 5px solid black;

  cursor: pointer;

}</p>

<p></style></p>

<p>

<div id="container">

    <img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> alt="photo" id="photo">

</div>

 

<ul id="gallery">

    <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> alt="thumbnail"></li>

    <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"</a> alt="thumbnail"></li>

    <li><img src="<a href="https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"</a> alt="thumbnail"></li>

</ul></p>

<p>

<div id="container">

    <img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> alt="photo2" id="photo2">

</div>

 

<ul id="gallery2">

    <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> alt="thumbnail"></li>

    <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"</a> alt="thumbnail"></li>

    <li><img src="<a href="https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"</a> alt="thumbnail"></li>

</ul></p>

<p>

<script>

 

  var photo = document.getElementById("photo");

  var thumbnail = document.querySelectorAll("#gallery > li > img");

 

  for ( var i = 0; i < thumbnail.length; i++ )

    thumbnail[i].addEventListener("click", function () {

 

      photo.setAttribute("src", this.getAttribute("src"));

 

    });

 

</script>

 </p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

<div id="galleryWrap">

    <div id="container">

        <img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> alt="photo" id="photo">

    </div>

     

    <ul id="gallery">

        <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> data-thumb-target="photo" alt="thumbnail"></li>

        <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"</a> data-thumb-target="photo" alt="thumbnail"></li>

        <li><img src="<a href="https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"</a> data-thumb-target="photo" alt="thumbnail"></li>

    </ul></p>

<p>    <div id="container">

        <img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> alt="photo2" id="photo2">

    </div>

     

    <ul id="gallery2">

        <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> data-thumb-target="photo2" alt="thumbnail"></li>

        <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"</a> data-thumb-target="photo2" alt="thumbnail"></li>

        <li><img src="<a href="https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"</a> data-thumb-target="photo2" alt="thumbnail"></li>

    </ul>

</div>

<script>

    let thumbnails = document.querySelectorAll("#galleryWrap li > img");</p>

<p>    for ( var i = 0; i < thumbnails.length; i++ )

        thumbnails[i].addEventListener("click", function (e) {

        let bigPhotoId = e.currentTarget.dataset.thumbTarget? e.currentTarget.dataset.thumbTarget : 'photo';

        document.querySelector(`#${bigPhotoId}`).setAttribute("src", this.getAttribute("src"));</p>

<p>    });

</script></p>

<p> </p>

<p>

이렇게 이미지에  dataset으로 타겟 설정해서 하면 되지 않을가요?

간략한 코드는 다음분께 패스~~ ㅋ

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

홀로그램웹
2년 전
됬어요됬어요!!~~~감사합니다~~~

댓글을 작성하려면 로그인이 필요합니다.

</p>

<p> </p>

<p> </p>

<p><style></p>

<p>    .container{margin-bottom: 80px;}</p>

<p>    .photo{</p>

<p>      display: block;</p>

<p>      width: 960px;</p>

<p>      border: 10px solid black;</p>

<p>      margin: 0 auto;</p>

<p>      box-shadow: 4px 4px 4px rgba(0, 0, 0, 0.6);</p>

<p>    }</p>

<p>    .gallery{text-align: center;}</p>

<p>     </p>

<p>    .gallery > li {</p>

<p>      display: inline-block;</p>

<p>      margin: 0 10px;</p>

<p>    }</p>

<p>     </p>

<p>    .gallery > li > img{</p>

<p>      display: block;</p>

<p>      width: 200px;</p>

<p>      border: 5px solid black;</p>

<p>      cursor: pointer;</p>

<p>    }</p>

<p>    </p>

<p>    </style></p>

<p> </p>

<p>    <div class="gallery-wrap"></p>

<p>        <div class="container"></p>

<p>            <img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> alt="photo" class="photo"></p>

<p>        </div></p>

<p>         </p>

<p>        <ul class="gallery"></p>

<p>            <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> alt="thumbnail"></li></p>

<p>            <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"</a> alt="thumbnail"></li></p>

<p>            <li><img src="<a href="https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"</a> alt="thumbnail"></li></p>

<p>        </ul></p>

<p> </p>

<p>    </div></p>

<p>    </p>

<p>    <div class="gallery-wrap"></p>

<p>        <div class="container"></p>

<p>            <img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> alt="photo2" class="photo"></p>

<p>        </div></p>

<p>        </p>

<p>        <ul class="gallery"></p>

<p>            <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/06/14/58/iguana-7833655_960_720.jpg"</a> alt="thumbnail"></li></p>

<p>            <li><img src="<a href="https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2023/03/22/20/16/muffin-7870491_960_720.jpg"</a> alt="thumbnail"></li></p>

<p>            <li><img src="<a href="https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"" target="_blank" rel="noopener noreferrer">https://cdn.pixabay.com/photo/2022/12/31/13/11/fruits-7688632_960_720.jpg"</a> alt="thumbnail"></li></p>

<p>        </ul></p>

<p>    </div></p>

<p>    </p>

<p>    <script></p>

<p>        var thumbnails = document.querySelectorAll(".gallery > li > img");</p>

<p>        // console.log(thumbnails);</p>

<p>        thumbnails.forEach(function(thumbnail){ // 배열(thumbnails)의 갯수만큼 반복문 실행, (thumbnail)은 반복문 안에서 해당하는 객체. </p>

<p>            // console.log(thumbnail);</p>

<p>            thumbnail.addEventListener("click", function(){</p>

<p>                console.log(this);</p>

<p> </p>

<p>                var galleryWrap = thumbnail.parentElement.parentElement.parentElement; // li -> ul -> .gallery-wrap 찾음.</p>

<p>                var fullPhoto = galleryWrap.querySelector(".photo");</p>

<p> </p>

<p>                fullPhoto.setAttribute("src", this.getAttribute("src"));</p>

<p>                </p>

<p>                </p>

<p>            })</p>

<p>        })</p>

<p>    </script></p>

<p>     </p>

<p> </p>

<p>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인