-
-
Save LordZardeck/7205720 to your computer and use it in GitHub Desktop.
| $(function() { | |
| var slider, // Global slider value to force playing and pausing by direct access of the slider control | |
| canSlide = true; // Global switch to monitor video state | |
| // Load the YouTube API. For some reason it's required to load it like this | |
| var tag = document.createElement('script'); | |
| tag.src = "//www.youtube.com/iframe_api"; | |
| var firstScriptTag = document.getElementsByTagName('script')[0]; | |
| firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); | |
| // Setup a callback for the YouTube api to attach video event handlers | |
| window.onYouTubeIframeAPIReady = function(){ | |
| // Iterate through all videos | |
| $('.flexslider iframe').each(function(){ | |
| // Create a new player pointer; "this" is a DOMElement of the player's iframe | |
| var player = new YT.Player(this, { | |
| playerVars: { | |
| autoplay: 0 | |
| } | |
| }); | |
| // Watch for changes on the player | |
| player.addEventListener("onStateChange", function(state){ | |
| switch(state.data) | |
| { | |
| // If the user is playing a video, stop the slider | |
| case YT.PlayerState.PLAYING: | |
| slider.flexslider("stop"); | |
| canSlide = false; | |
| break; | |
| // The video is no longer player, give the go-ahead to start the slider back up | |
| case YT.PlayerState.ENDED: | |
| case YT.PlayerState.PAUSED: | |
| slider.flexslider("play"); | |
| canSlide = true; | |
| break; | |
| } | |
| }); | |
| $(this).data('player', player); | |
| }); | |
| } | |
| // Setup the slider control | |
| slider = $(".flexslider") | |
| .flexslider({ | |
| animation: "fade", | |
| easing: "swing", | |
| slideshowSpeed: 6500, | |
| animationSpeed: 900, | |
| pauseOnHover: true, | |
| pauseOnAction: true, | |
| touch: true, | |
| video: true, | |
| controlNav: true, | |
| animationLoop: true, | |
| slideshow: true, | |
| useCSS: false, | |
| // Before you go to change slides, make sure you can! | |
| before: function(){ | |
| if(!canSlide) | |
| slider.flexslider("stop"); | |
| } | |
| }); | |
| slider.on("click", ".flex-prev, .flex-next", function(){ | |
| canSlide = true; | |
| $('.flexslider iframe').each(function(){ | |
| $(this).data('player').pauseVideo(); | |
| }); | |
| }); | |
| }); |
Thank you very much LordZardeck, you've helped me a lot!
Thanks.
It's working great on the windows based browsers but it's not working on android ?
Amazing. Thank you!
Hello LordZardeck, I have the same problem of ruidiasptm. Slider doesn't stop when video is playing. What could be wrong? Please help!
Unfortunately I have the same issues: Slider keeps rotating after playing a video. Only with the mouse over the slider stops.
Hi!
Thank you LordZardek for your solution!
For those who cannot make it work! Just change slider.flexslider("stop"); to slider.flexslider("pause");
After this fix it is working perfectly for me. Cheers!
Didnt help guys.. the slider is still moving :( there is a separate file called jquery.flexslider.js
i replaced it, amended it, changed the values.. still it didnt work :(
Thank You Sooooooo Much
hi LordZardeck,
I implemented the code but when I put the video in play the slideshow don't stop.
Can you help me?
the flexslider is defined like this: