2014-09-01 2 views
0

Jssor 초기화 : 나는 선언되는 함수 showAllImageVideoJssorJwPlayer()라는 위의 코드는 맨 마지막에 jssor를 초기화과 그 기능에 사용되는

 function imageAndVideoJssor() 
     { 
      jssor_slider_image_and_video = ''; 
      var slides = $('#jssor_all_play_show_slides>div'); 
      var slideCount = slides.length; 
      var thumbNailNavigatorChanceToShow = slideCount < 2 ? 0 : 2; 
      var _CaptionTransitions = []; 
      _CaptionTransitions["MCLIP|B"] = {$Duration: 600, $Clip: 8, $Move: true, $Easing: $JssorEasing$.$EaseOutExpo}; 

      var displayPieces = 4; 
      var arrowNavigatorSteps = 3; 
      if (navigator.userAgent.match(/(iPhone|iPod|iPad|BlackBerry|IEMobile)/)) { 
       displayPieces = 2; 
       arrowNavigatorSteps = 1; 
      } 

      var options = { 
       $AutoPlay: false, 
       $FillMode: 2, 
       $Loop: 0, 
       $ThumbnailNavigatorOptions: { 
        $Class: $JssorThumbnailNavigator$, 
        $ChanceToShow: thumbNailNavigatorChanceToShow, 
        $DisplayPieces: displayPieces, 
        $ArrowNavigatorOptions: { 
         $Class: $JssorArrowNavigator$, //[Requried] Class to create arrow navigator instance 
         $ChanceToShow: 2, //[Required] 0 Never, 1 Mouse Over, 2 Always 
         $AutoCenter: 2, //[Optional] Auto center arrows in parent container, 0 No, 1 Horizontal, 2 Vertical, 3 Both, default value is 0 
         $Steps: arrowNavigatorSteps          //[Optional] Steps to go for each navigation request, default value is 1 
        } 
       }, 
       $ArrowNavigatorOptions: { 
        $Class: $JssorArrowNavigator$, 
        $ChanceToShow: 0 
       }, 
       $CaptionSliderOptions: {//[Optional] Options which specifies how to animate caption 
        $Class: $JssorCaptionSlider$, //[Required] Class to create instance to animate caption 
        $CaptionTransitions: _CaptionTransitions, //[Required] An array of caption transitions to play caption, see caption transition section at jssor slideshow transition builder 
        $PlayInMode: 0, //[Optional] 0 None (no play), 1 Chain (goes after main slide), 3 Chain Flatten (goes after main slide and flatten all caption animations), default value is 1 
        $PlayOutMode: 0         //[Optional] 0 None (no play), 1 Chain (goes before main slide), 3 Chain Flatten (goes before main slide and flatten all caption animations), default value is 1 
       } 
      }; 

      var jssorTagId = 'jssor_all_play_show'; 
      jssor_slider_image_and_video = new $JssorSlider$(jssorTagId, options); 

      //responsive code begin 
      //you can remove responsive code if you don't want the slider scales while window resizes 
      function ScaleSlider() { 
       var parentWidth = jssor_slider_image_and_video.$Elmt.parentNode.clientWidth; 
       if (parentWidth) 
        jssor_slider_image_and_video.$ScaleWidth(Math.min(parentWidth, 720)); 
       else 
        window.setTimeout(ScaleSlider, 30); 
      } 

      ScaleSlider(); 

      $(window).bind("load", ScaleSlider); 
      $(window).bind("resize", ScaleSlider); 
      $(window).bind("orientationchange", ScaleSlider); 

      jssorResolutionAdjustor(jssorTagId); 
      $(window).resize(function() { 
       jssorResolutionAdjustor(jssorTagId); 
      }); 
      //if (navigator.userAgent.match(/(iPhone|iPod|iPad)/)) { 
      // $(window).bind("orientationchange", ScaleSlider); 
      //} 
      //responsive code end 
      setTimeout(function() { 
       showAllImageVideoJssorJwPlayer(); 
      } 
      , 0); 

      jssor_slider_image_and_video.$On($JssorSlider$.$EVT_PARK, function(slideIndex, fromIndex) { 
       console.log('from index = ' + fromIndex + 'slide index = ' + slideIndex); 
        showAllImageVideoJssorJwPlayer(); 
      }); 
     } 

아래에 주어진다. 초기화 된 jssor 및 jssor 이벤트 파크에서이 함수를 호출했습니다.

비디오 및 이미지 제어 코드 :

function showAllImageVideoJssorJwPlayer() 
    { 

     var slideCount = jssor_slider_image_and_video.$SlidesCount(); 
     console.log('slideCount = ' + slideCount); 
     if (slideCount === 1) 
     { 
      var activeVideo = $('[id="jssor_all_play_show_slides"]:eq(1)>div:last-child img'); 
     } else { 
      var activeVideo = $('.pav img:visible'); 
     } 
     console.log('Video ' + activeVideo.data('video')); 
     if (activeVideo.data('video') !== undefined) 
     { 
      console.log('inside video'); 
      jssor_slider_image_and_video.$Pause(); 
      var videoObj = {}; 
      videoObj.videoSrc = activeVideo.data('video'); 
      videoObj.thumbSrc = activeVideo.attr('src'); 

      jssorAllImageVideoPlayerInstance = jwplayer("jssor_all_video_screen").setup({ 
       file: videoObj.videoSrc, 
       image: videoObj.thumbSrc, 
       width: 720, 
       height: 400 
      }); 



      jssorAllImageVideoPlayerInstance.onReady(function() { 

       jssorAllImageVideoPlayerInstance.play(); 

       jssorAllImageVideoPlayerInstance.onPlay(function() { 
        $('body').on('click', function() { 
         jssorAllImageVideoPlayerInstance.pause(true); 
         jssor_slider_image_and_video.$Pause(); 
        }); 

        jssor_slider_image_and_video.$Pause(); 
       }); 

       jssorAllImageVideoPlayerInstance.onComplete(function() { 
        jssor_slider_image_and_video.$Next(); 
        jssorAllImageVideoPlayerInstance.remove(); 
       }); 
      }); 

     } else if (activeVideo.data('video') === undefined) 
     { 
      if (typeof jssorAllImageVideoPlayerInstance !== "undefined") 
      { 
       jssorAllImageVideoPlayerInstance.remove(); 
      } 
      jssor_slider_image_and_video.$Play(); 
     } 
    } 

나는 비디오 내가 jssor_slider_image_and_video.$Pause();를 사용하는을위한 재생 된 후 슬라이드 쇼를 일시 정지하고 싶다. 이 코드는 console.log('inside video');에 도달 했으므로 다음 줄에서는 슬라이드 쇼가 중지되어야 함을 분명히 나타냅니다. 그러나 실제로는 그 시간 자체에 빨간색으로 국경을 여기에 첨부 불을 지르고 화면이 콘솔에서

firebug console log

비디오 내부 의 첫 번째 발생을 로그인 촬영

것을 증명하기 위해 슬라이드를한다 정지하지 jssor $pause는 작동해야하지만 작동하지 않습니다 이유를 모릅니다.

답변

0

인스턴스 $ Pause를 호출하면 슬라이더가 자동으로 재생되지 않습니다. 갑자기 슬라이더가 멈추지 않습니다.

실제로 슬라이더가 일시 중지 된 경우 화살표 또는 글 머리 기호 단추를 클릭 할 때까지 현재 슬라이드에 그대로 유지됩니다.

+0

전에 기능에 바로 인스턴스 위에 imageAndVideoJssor()

를 다음 코드

if(typeof jssor_slider_image_and_video === 'object') { jssor_slider_image_and_video.$Pause(); delete jssor_slider_image_and_video; } 

를 넣어 그것을 해결 하지만 빨간색 테두리가있는 직사각형 뒤에 로그가 표시되면 슬라이더가 중지되지 않습니다. 'from index = 4 slide index = 5'에서 슬라이더를 기록한 상태로 콘솔에 기록됩니다. 주기적으로 jssor 객체의 메소드 $ pause라고 부릅니다. – gvgvgvijayan

+0

jssor 객체의 메소드 $ pause라고 불리는 주기적으로 계속 실행되며, 콘솔 로그는 $ EVT_PARK 함수 내에 작성되므로 모든 슬라이드가에서 이동되고 from 키보드 또는 마우스를 사용하여 슬라이더에 대한 이벤트를 수동으로 트리거하지 않았기 때문에 슬라이드의 결과가 자동 재생에 있습니다. 기본 지속 시간에서 슬라이더가 다음 div로 이동합니다. – gvgvgvijayan

+0

이미지가 선명하게 보이지 않습니다. 나는 몇 번이고 다시 확인했다, 그것은 잘 작동한다. 코드를 다시 확인하십시오. – jssor

0

그에게 적합한 솔루션을 몰라하지만 난 다음 코드

var jssorTagId = 'jssor_all_play_show'; 
    jssor_slider_image_and_video = new $JssorSlider$(jssorTagId, options);