GLightbox 和 HTML5 视频 - 如何设置海报图片?
GLightbox and HTML5 videos - how can I set a poster image?
我在我正在处理的项目中使用 GLightbox。我有一个 hyperlink,它有一个 URL 到一个自托管的 MP4 视频。视频在 GLightbox 中打开。我已经为我的视频设置了 poster 图像,但我不知道在 Glightbox 设置中在哪里设置 poster 图像。这是我在灯箱中启动视频的 html link。
<a href="<?= $video_url; ?>" class="standard-lightbox">
这是我 site.js 文件中的 javascript 配置:
let standardLightboxSlideHTML = `<div class="gslide">
<div class="gslide-inner-content">
<div class="ginner-container">
<div class="gslide-media">
</div>
<div class="gslide-description">
<div class="gdesc-inner">
<h4 class="gslide-title"></h4>
<div class="gslide-desc"></div>
</div>
</div>
</div>
</div>
</div>`;
var standardLightbox = GLightbox({
selector: '.standard-lightbox',
width: '1280px',
height: '720px',
skin: 'modern',
closeOnOutsideClick: true,
slideHTML: standardLightboxSlideHTML,
type:'video',
autoplayVideos: false,
plyr: {
config: {
ratio: '16:9', // or '4:3'
muted: false,
hideControls: false,
autoplay: false,
autopause: true,
volume: 0.5,
controls: ['play-large', 'play','progress','volume','mute','fullscreen']
}
}
});
我试过向 hyperlink 添加一个 data-poster 值。那没有用。那是我想设置它的地方,然后我想 GLightbox 使用它。有什么想法可以让它发挥作用吗?
我想将此 post 标记为“glightbox”,但我没有足够的代表。
我能够通过这种方式解决我的问题。
在 wordpress 中,我设置了两个新字段,一个用于 url 视频,另一个用于海报图像。
我更改了代码以在单击的超链接中输出 url 和海报 url。
在我的 Glightbox 设置中,我只是获取这些值并使用 javascript 将其动态添加到视频标签中。我还向超链接添加了一个计数器,这样我就可以附加计数值来为视频创建一个 ID 选择器。
standardLightbox.on('slide_after_load', (data) => {
const { slideIndex, slideNode, slideConfig, player, trigger } = data;
var btnClicked = document.getElementById(trigger.id);
var posterimage = btnClicked.getAttribute('data-html5videoposter');
var videoid = btnClicked.getAttribute('data-videoid');
// use the index
var getVideoTag = document.getElementById(videoid);
getVideoTag.setAttribute('poster', posterimage);
});
我在我正在处理的项目中使用 GLightbox。我有一个 hyperlink,它有一个 URL 到一个自托管的 MP4 视频。视频在 GLightbox 中打开。我已经为我的视频设置了 poster 图像,但我不知道在 Glightbox 设置中在哪里设置 poster 图像。这是我在灯箱中启动视频的 html link。
<a href="<?= $video_url; ?>" class="standard-lightbox">
这是我 site.js 文件中的 javascript 配置:
let standardLightboxSlideHTML = `<div class="gslide">
<div class="gslide-inner-content">
<div class="ginner-container">
<div class="gslide-media">
</div>
<div class="gslide-description">
<div class="gdesc-inner">
<h4 class="gslide-title"></h4>
<div class="gslide-desc"></div>
</div>
</div>
</div>
</div>
</div>`;
var standardLightbox = GLightbox({
selector: '.standard-lightbox',
width: '1280px',
height: '720px',
skin: 'modern',
closeOnOutsideClick: true,
slideHTML: standardLightboxSlideHTML,
type:'video',
autoplayVideos: false,
plyr: {
config: {
ratio: '16:9', // or '4:3'
muted: false,
hideControls: false,
autoplay: false,
autopause: true,
volume: 0.5,
controls: ['play-large', 'play','progress','volume','mute','fullscreen']
}
}
});
我试过向 hyperlink 添加一个 data-poster 值。那没有用。那是我想设置它的地方,然后我想 GLightbox 使用它。有什么想法可以让它发挥作用吗?
我想将此 post 标记为“glightbox”,但我没有足够的代表。
我能够通过这种方式解决我的问题。
在 wordpress 中,我设置了两个新字段,一个用于 url 视频,另一个用于海报图像。
我更改了代码以在单击的超链接中输出 url 和海报 url。
在我的 Glightbox 设置中,我只是获取这些值并使用 javascript 将其动态添加到视频标签中。我还向超链接添加了一个计数器,这样我就可以附加计数值来为视频创建一个 ID 选择器。
standardLightbox.on('slide_after_load', (data) => {
const { slideIndex, slideNode, slideConfig, player, trigger } = data;
var btnClicked = document.getElementById(trigger.id);
var posterimage = btnClicked.getAttribute('data-html5videoposter');
var videoid = btnClicked.getAttribute('data-videoid');
// use the index
var getVideoTag = document.getElementById(videoid);
getVideoTag.setAttribute('poster', posterimage);
});