bx슬라이더 탭 내에 들어가있을 경우. 채택완료

슬라이더를 탭 안에 넣으면 슬라이더가 정상작동을 안하네요.ㅠㅠ

bx슬라이더 사용했습니다.

해결해보신 분 있으시면 조언 좀 부탁드립니다. ㅠ_ㅠ..

찾아보니.. 탭을 누를때 bx 슬라이더가 실행되게 하면된다는데..

아시는 분 조언좀 ㅠㅠ..


Copy
<ul class="tab">									<li class="active"><a href="#"><em>탭1</em></a></li>									<li><a href="#"><em>탭2</em></a></li>                                    <li><a href="#"><em>탭3</em></a></li>                                    <li><a href="#"><em>탭4(갤러리)</em></a></li>                                    <li><a href="#"><em>탭5</em></a></li>								</ul>								<ul class="tab-cont">									<li class="active">																				asdasdfasdf  111                                      									</li>																<li>                                    	asdfadfs222                                    </li>                                    <li>asdfasdf333</li>                                    <li>                                    	<div class="gallery">                                            <!-- The main images -->                                            <ul id="bxslider">                                                <li>                                                    <img src="/images/thum_01.jpg" alt="이미지이름"/>                                                    <p class="img_dasc bg_cover"></p>                                                    <p class="img_dasc txt reduce_line">이미지이름</p>                                                    <p class="img_dasc page">1/7</p>                                                </li>                                                <li>                                                    <img src="/images/thum_02.jpg" alt="이미지이름"/>                                                    <p class="img_dasc bg_cover"></p>                                                    <p class="img_dasc txt reduce_line">이미지이름</p>                                                    <p class="img_dasc page">2/7</p>                                                </li>                                                <li>                                                    <img src="/images/thum_03.jpg" alt="이미지이름"/>                                                    <p class="img_dasc bg_cover"></p>                                                    <p class="img_dasc txt reduce_line">이미지이름</p>                                                    <p class="img_dasc page">3/7</p>                                                </li>                                                <li>                                                    <img src="/images/thum_04.jpg" alt="이미지이름"/>                                                    <p class="img_dasc bg_cover"></p>                                                    <p class="img_dasc txt reduce_line">이미지이름</p>                                                    <p class="img_dasc page">4/7</p>                                                </li>                                                <li>                                                    <img src="/images/thum_05.jpg" alt="이미지이름"/>                                                    <p class="img_dasc bg_cover"></p>                                                    <p class="img_dasc txt reduce_line">이미지이름</p>                                                    <p class="img_dasc page">5/7</p>                                                </li>                                                <li>                                                    <img src="/images/thum_06.jpg" alt="이미지이름"/>                                                    <p class="img_dasc bg_cover"></p>                                                    <p class="img_dasc txt reduce_line">이미지이름</p>                                                    <p class="img_dasc page">6/7</p>                                                </li>                                                <li>                                                    <img src="/images/thum_07.jpg" alt=""/>                                                    <p class="img_dasc bg_cover"></p>                                                    <p class="img_dasc txt reduce_line"></p>                                                    <p class="img_dasc page">7/7</p>                                                </li>                                            </ul>                                                                                        <!-- The thumbnails -->                                            <ul id="bxslider-pager">                                                <li data-slideIndex="0" class="active"><a href="" ><img src="/images/thum_01.jpg" alt="이미지이름" /></a></li>                                                <li data-slideIndex="1"><a href="" ><img src="/images/thum_02.jpg" alt="이미지이름" /></a></li>                                                <li data-slideIndex="2"><a href="" ><img src="/images/thum_03.jpg" alt="이미지이름"/></a></li>                                                <li data-slideIndex="3"><a href="" ><img src="/images/thum_04.jpg" alt="이미지이름"/></a></li>                                                <li data-slideIndex="4"><a href="" ><img src="/images/thum_05.jpg" alt="이미지이름"/></a></li>                                                <li data-slideIndex="5"><a href="" ><img src="/images/thum_06.jpg" alt="이미지이름"/></a></li>                                                <li data-slideIndex="6"><a href="" ><img src="/images/thum_07.jpg" alt="이미지이름"/></a></li>                                            </ul>                                                                                    </div>                                       </li>                                    <li>                                    	ㅁㄴㅇㄻㄴㅇㄹ                                    </li>								</ul><script>  $(function(){      // var $ = jQuery.noConflict();      var realSlider= $("ul#bxslider").bxSlider({            speed:1000,            pager:false,            nextText:'',            prevText:'',            infiniteLoop:true,            hideControlOnEnd:true,            onSlideBefore:function($slideElement, oldIndex, newIndex){              changeRealThumb(realThumbSlider,newIndex);                          }                      });                    var realThumbSlider=$("ul#bxslider-pager").bxSlider({            minSlides: 5,            maxSlides: 5,            slideWidth: 180,            slideMargin: 20,            moveSlides: 1,            pager:false,            speed:1000,            infiniteLoop:false,            hideControlOnEnd:true,            nextText:'<span></span>',            prevText:'<span></span>',            onSlideBefore:function($slideElement, oldIndex, newIndex){              $("#sliderThumbReal ul .active").removeClass("active");              $slideElement.addClass("active");             }          });                    linkRealSliders(realSlider,realThumbSlider);                    if($("#bxslider-pager li").length<6){            $("#bxslider-pager .bx-next").hide();          }      // sincronizza sliders realizzazioni      function linkRealSliders(bigS,thumbS){                $("ul#bxslider-pager").on("click","a",function(event){          event.preventDefault();          var newIndex=$(this).parent().attr("data-slideIndex");              bigS.goToSlide(newIndex);        });      }      //slider!=$thumbSlider. slider is the realslider      function changeRealThumb(slider,newIndex){                var $thumbS=$("#bxslider-pager");        $thumbS.find('.active').removeClass("active");        $thumbS.find('li[data-slideIndex="'+newIndex+'"]').addClass("active");                if(slider.getSlideCount()-newIndex>=5)slider.goToSlide(newIndex);        else slider.goToSlide(slider.getSlideCount()-5);      }  })</script>

답변 1개

슬라이더 및 각종 jQuery , 자바스크립트 소스들이 탭 혹은 시각적으로 숨겨진 요소등에서 정상작동 하지 않는 경우가 있습니다.


이런 경우에 스크립트가 실행될 때, 목표가 되는 해당 요소가 display: none 이거나 visibility: hidden 이거나 각종 방법으로 숨겨져서 그 크기를 가늠할수 없게 된 경우가 주된 원인입니다.


말씀하신 탭류의 스크립트들도 활성화된 탭만을 보여주기 위해 나머지 탭들을 숨길테고 이 숨김요소로 인해 슬라이더를 적용하고 싶었던 탭의 스크립트는 슬라이더의 크기나 이를 감싸는 요소들의 크기등을 제대로 인식할 수 없는 상황이 되었을걸로 추측합니다.


물론, 이 모든 것은 문서의 로드시점에 슬라이더의 초기화를 선언하셔서 나타나는 문제이기도 합니다.


그런고로, 슬라이더를 포함하는 탭을 클릭시에 슬라이더를 초기화하는 선언을 하시거나 탭에 의해 숨겨지기 이전에 슬라이더를 초기화하시는 것이 방법입니다.  

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

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

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

로그인
🐛 버그신고