first commit
This commit is contained in:
185
wp-content/plugins/kingcomposer/assets/frontend/js/video.play.js
Normal file
185
wp-content/plugins/kingcomposer/assets/frontend/js/video.play.js
Normal file
@@ -0,0 +1,185 @@
|
||||
/***
|
||||
* Video play JS
|
||||
* (c) king-theme.Com
|
||||
***/
|
||||
|
||||
var kc_video_play = ( function($){
|
||||
return {
|
||||
init: function(){
|
||||
$( '.kc_video_wrapper' ).each( function () {
|
||||
if( kc_video_play.youtube.url_valid( $(this).data('video') ) )
|
||||
{
|
||||
kc_video_play.youtube.add( $( this ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
if( kc_video_play.vimeo.getID( $(this).data('video') ) )
|
||||
{
|
||||
kc_video_play.vimeo.add( $( this ) );
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
},
|
||||
|
||||
youtube: {
|
||||
url_valid : function( url )
|
||||
{
|
||||
if( url === undefined )
|
||||
return false;
|
||||
|
||||
var p = /^(?:https?:\/\/)?(?:www\.)?(?:youtu\.be\/|youtube\.com\/(?:embed\/|v\/|watch\?v=|watch\?.+&v=))((\w|-){11})(?:\S+)?$/;
|
||||
return (url.match(p)) ? RegExp.$1 : false;
|
||||
},
|
||||
|
||||
getID: function ( url )
|
||||
{
|
||||
if ( 'undefined' === typeof(url) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
var id = url.match( /(?:https?:\/{2})?(?:w{3}\.)?youtu(?:be)?\.(?:com|be)(?:\/watch\?v=|\/)([^\s&]+)/ );
|
||||
if ( null !== id ) {
|
||||
return id[ 1 ];
|
||||
}
|
||||
|
||||
return false;
|
||||
},
|
||||
|
||||
add: function( $obj, counter ) {
|
||||
|
||||
var youtubeUrl,
|
||||
youtubeId,
|
||||
autoplay = ('yes' === $obj.data('autoplay')) ? 1: 0,
|
||||
related = ('yes' === $obj.data('related')) ? 1: 0,
|
||||
loop = ('yes' === $obj.data('loop')) ? 1: 0,
|
||||
ctl = ('yes' === $obj.data('control')) ? 1: 0,
|
||||
showinfo = ('yes' === $obj.data('showinfo')) ? 1: 0,
|
||||
_vd_width = $obj.data('width'),
|
||||
_vd_height = $obj.data('height');
|
||||
|
||||
if('yes' === $obj.data('fullwidth')){
|
||||
_vd_width = '100%';
|
||||
}
|
||||
|
||||
youtubeUrl = $obj.data( 'video' );
|
||||
youtubeId = kc_video_play.youtube.getID( youtubeUrl );
|
||||
|
||||
if( YT === undefined )
|
||||
return;
|
||||
|
||||
if ( 'undefined' === typeof( YT.Player ) ) {
|
||||
|
||||
counter = 'undefined' === typeof( counter ) ? 0 : counter;
|
||||
if ( counter > 100 ) {
|
||||
console.warn( 'Too many attempts to load YouTube api' );
|
||||
return;
|
||||
}
|
||||
|
||||
setTimeout( function () {
|
||||
kc_video_play.youtube.add( $obj, youtubeId, counter++ );
|
||||
}, 100 );
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
var player,
|
||||
ratio = 1.77,
|
||||
youtubeId_pl = '',
|
||||
$container = $obj.prepend( '<div class="kc-video-inner"><div class="ifr_inner"></div></div>' ).find( '.ifr_inner' );
|
||||
if(loop == 1) youtubeId_pl = youtubeId;
|
||||
|
||||
player = new YT.Player( $container[0], {
|
||||
width: _vd_width,
|
||||
height: _vd_height,
|
||||
videoId: youtubeId,
|
||||
playerVars: {
|
||||
iv_load_policy: 3,
|
||||
playlist: youtubeId_pl,
|
||||
enablejsapi: 1,
|
||||
disablekb: 1,
|
||||
autoplay: autoplay,
|
||||
controls: ctl,
|
||||
showinfo: showinfo,
|
||||
rel: related,
|
||||
loop: loop
|
||||
},
|
||||
events: {
|
||||
onReady: function ( e ) {
|
||||
if($obj.data('kc-video-mute') == 'yes')
|
||||
e.target.mute().setLoop( true );
|
||||
if(autoplay)
|
||||
e.target.playVideo();
|
||||
var w = $($obj).find('.ifr_inner').width();
|
||||
$($obj).find('.ifr_inner').height( w/ratio );
|
||||
}
|
||||
}
|
||||
} );
|
||||
|
||||
}
|
||||
},
|
||||
|
||||
vimeo: {
|
||||
getID: function( url )
|
||||
{
|
||||
if( url === undefined )
|
||||
return false;
|
||||
|
||||
var regExp = /http(s)?:\/\/(www\.)?vimeo.com\/(\d+)(\/)?(#.*)?/;
|
||||
|
||||
var match = url.match(regExp);
|
||||
|
||||
if (match)
|
||||
return match[3];
|
||||
},
|
||||
|
||||
add: function( $obj ){
|
||||
var vimeoUrl,
|
||||
vimeoId,
|
||||
autoplay = ('yes' === $obj.data('autoplay')) ? 1: 0,
|
||||
_vd_width = $obj.data('width'),
|
||||
_vd_height = $obj.data('height');
|
||||
|
||||
vimeoUrl = $obj.data( 'video' );
|
||||
vimeoId = kc_video_play.vimeo.getID( vimeoUrl );
|
||||
|
||||
if('yes' === $obj.data('fullwidth')){
|
||||
_vd_width = '100%';
|
||||
}
|
||||
|
||||
var player,
|
||||
iframe,
|
||||
player_iframe,
|
||||
ratio = 1.77,
|
||||
$container = $obj.prepend( '<div class="kc-video-inner"><div class="ifr_inner"></div></div>' ).find( '.ifr_inner' );
|
||||
|
||||
player_iframe = '<iframe id="player_'+ vimeoId +'" src="https://player.vimeo.com/video/'+ vimeoId +'?api=1&player_id=player_'+ vimeoId +'" width="'+ _vd_width +'" height="'+ _vd_height +'" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
|
||||
|
||||
$($container[0]).html( player_iframe );
|
||||
|
||||
iframe = $('#player_'+vimeoId)[0];
|
||||
player = $f(iframe);
|
||||
|
||||
player.addEvent('ready', function() {
|
||||
if(autoplay === 1){
|
||||
player.api('play');
|
||||
}
|
||||
|
||||
var w = $($obj).find('iframe').width();
|
||||
$($obj).find('iframe').height( w/ratio );
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
refresh: function( el ){
|
||||
var ratio = 1.77,
|
||||
w = el.find('.ifr_inner').width();
|
||||
|
||||
el.find('.ifr_inner').height( w/ratio );
|
||||
el.find('.ifr_inner>iframe').height( w/ratio );
|
||||
}
|
||||
};
|
||||
|
||||
}(jQuery));
|
||||
|
||||
jQuery( document ).ready(function($){ kc_video_play.init($); });
|
||||
Reference in New Issue
Block a user