I used to use the following function to load a video in the background (jquery 2.2.4):
function getVideo() { if ( $('video').length ) { $('video').each(function() { if (Modernizr.mq('(min-width: 1024px)') && $(this).children().attr('src') === undefined ) { var src = $(this).children().attr("data-src"); $(this).children().attr('src',src); $('video').load(); } }); } }
After updating to 8.5.6, I must use jquery 3.2.1. So, I had to change the line $('video').load()
to $('video').on('load', function(){});
. However, the video is not loading anymore. I have tested the code, and each line gets executed until it comes to $('video').on('load', function(){});
. I don’t know why it is not loading. Is it because .on('load', function(){})
is only accessible by window
properties? If so, then how can I load the video using document
properties?
The markup in the theme of that specific block would be: $variables['video_markup'] = '<video autoplay loop muted id="bgvid"><source data-src="'.$video_link.'" type="video/mp4"></video>';
Which roughly translates to:
<video autoplay="" loop="" muted="" id="bgvid" data-video="0"><source data-src="https://somevideo" type="video/mp4"></video>
I have been targeting this video
element here. ANy suggestions will be appreciated.
Also, is there any way to force Drupal 8.5 to use Jquery 2.x? I tried this How do I use a jQuery version different from the default one used by core?, but it didn’t work for me.