"틀:이미지스와이퍼"의 두 판 사이의 차이

광주문화예술인문스토리플랫폼
이동: 둘러보기, 검색
 
(같은 사용자의 중간 판 5개는 보이지 않습니다)
69번째 줄: 69번째 줄:
 
         },
 
         },
 
       });
 
       });
// 이미지 로딩 실패 시 슬라이드 제거 후 Swiper 업데이트
+
 
document.querySelectorAll('.image-swiper-container .swiper-image').forEach(function(img) {
+
      // 이미지 로딩 타임아웃 및 에러 처리
img.addEventListener('error', function(e) {
+
      var swiperContainer = document.querySelector('.image-swiper-container');
console.log(e)
+
      document.querySelectorAll('.image-swiper-container .swiper-image').forEach(function(img) {
this.closest('.swiper-slide').remove();
+
        var timeout;
swiper.update();
+
        var removeSlide = function() {
});
+
          clearTimeout(timeout);
        timeout = setTimeout(function() {
+
 
           if (!img.complete || img.naturalHeight === 0) {
+
          // 슬라이드 제거
 +
          var slideToRemove = img.closest('.swiper-slide');
 +
          if (slideToRemove) {
 +
            slideToRemove.remove();
 +
          }
 +
 
 +
          swiper.update();
 +
 
 +
          // 슬라이드 제거 후 남은 슬라이드 확인
 +
          var remainingSlides = document.querySelectorAll('.image-swiper-container .swiper-slide');
 +
          console.log('남은 슬라이드 개수:', remainingSlides.length);
 +
 
 +
          // 슬라이드가 하나도 없으면 스와이퍼 컨테이너 및 상위 h2 제거
 +
          if (remainingSlides.length === 0 ) {
 +
            if(swiperContainer){
 +
              console.log('슬라이드가 없어서 스와이퍼 컨테이너 제거');
 +
 
 +
              // id가 "이미지"인 h2 찾기
 +
              var imageHeading = document.querySelector('#이미지');
 +
              if (imageHeading) {
 +
                // h2 요소의 부모 찾기 (일반적으로 h2.mw-headline의 부모)
 +
                var headingParent = imageHeading.closest('h2');
 +
                if (headingParent) {
 +
                  console.log('이미지 섹션 제목도 제거');
 +
                  headingParent.remove();
 +
                }
 +
              }
 +
 
 +
              swiperContainer.remove();
 +
            }
 +
          }
 +
        };
 +
 
 +
        // 1.5초 타임아웃 설정
 +
        timeout = setTimeout(function() {
 +
           if (!img.complete) {
 +
            removeSlide();
 +
          } else if (img.naturalHeight === 0) {
 
             removeSlide();
 
             removeSlide();
 
           }
 
           }
         }, 3000);
+
         }, 1500);
  
 
         // 이미지 로딩 성공 시 타임아웃 취소
 
         // 이미지 로딩 성공 시 타임아웃 취소
91번째 줄: 128번째 줄:
 
           removeSlide();
 
           removeSlide();
 
         });
 
         });
});
+
      });
 
     });
 
     });
 
 
   </script>
 
   </script>
 
}}
 
}}
 
</includeonly>
 
</includeonly>

2025년 12월 29일 (월) 11:22 기준 최신판