难道不能在为图像设计的Javascript灯箱中播放MP4视频吗?

难道不能在为图像设计的Javascript灯箱中播放MP4视频吗?,javascript,html,video,Javascript,Html,Video,我正在Ubuntu Linux上使用Firefox进行测试。如果在页面中放置指向MP4文件的以下链接,则MP4文件将在浏览器窗口中播放,而无需任何其他脚本或播放器: <a href="/video/test.mp4" title="Test"><img src="/video/thumbnails/test.png" alt="" /></a> 当我点击缩略图时,灯箱效果会起作用,但视频不会显示或播放。灯箱使屏幕变暗,中间显示白色正方形,没有视频文件或播放器

我正在Ubuntu Linux上使用Firefox进行测试。如果在页面中放置指向MP4文件的以下链接,则MP4文件将在浏览器窗口中播放,而无需任何其他脚本或播放器:

<a href="/video/test.mp4" title="Test"><img src="/video/thumbnails/test.png" alt="" /></a>
当我点击缩略图时,灯箱效果会起作用,但视频不会显示或播放。灯箱使屏幕变暗,中间显示白色正方形,没有视频文件或播放器控件。 我知道有一些Javascript lightbox特效是为播放视频而设计的,但是,既然浏览器可以播放视频,那么这些Javascript库与我正在使用的Javascript库有什么区别呢

为什么我不能在这个简单的灯箱效果中播放视频


它可以被修改以播放视频,还是我需要废弃它并找到另一个库?非常欢迎推荐类似的支持视频的库。

我真的很抱歉这么晚才回来

好吧,那只是我当时想到的一种方法。如果你想试试这个,就留给你了。但是,如果您想避免使用第三方脚本,那么调整这里的简单方法可能会有困难。最好,我在这里使用jquery代码只是为了让它看起来更漂亮

因此,让我们假设您希望在单击链接时视频显示为弹出。为什么不让我们自己的div包含一个视频元素,然后把它隐藏起来,直到我们需要它

.
.
.
<body>
<div id="vid-container" style="display:hidden;position:fixed; background: rgba(0,0,0,0.5);
 padding:40px; text-align:center;">
<video id="vid"/>
 </div>
</body>
.
.
.
。
.
.
.
.
.
所以,基本上我打算做的是,当一个人点击视频链接时,我们将使用一些jquery来切换弹出div。正如你所看到的,在视频标签中,我只指定了id。这只是因为我打算在通过javascript点击特定链接后设置视频src和编解码器(还有一点jquery)

假设我们有这样一个链接:

<a href="Link_URL" class="vid-link" ><image src="img_URL" class="vid-img"/></a>

如果有人点击它,我想你可以通过下面的脚本来处理它

<script>
$(window).load(function(){ 
// first of all I'm manually setting the pop's width and height to fit the entire screen
$("#vid-container").css("width",window.innerWidth+"px");
$("#vid-container").css("height",window.innerHeight+"px");
$(".vid-link").bind("click", function(){

// first get the video url from the link href

var vid_url= $(this).attr("href");

// now grab hold of the video and set it up by plugging in the video url

var video= document.getElementById("vid");
video.type="video/.mp4";
video.src="+vid_url+";
video.controls=true;
video.autoplay=false;

// now toggle the popup visible

$("vid-container").fadeToggle("slow");

});// end of click handler

});// end of window.load event
</script>

$(窗口).load(函数(){
//首先,我手动设置弹出窗口的宽度和高度,以适应整个屏幕
$(“#vid container”).css(“宽度”,window.innerWidth+“px”);
$(“#vid container”).css(“高度”,window.innerHeight+“px”);
$(“.vid link”).bind(“单击”,函数(){
//首先从链接href获取视频url
var vid_url=$(this.attr(“href”);
//现在抓取视频并通过插入视频url进行设置
var video=document.getElementById(“vid”);
video.type=“video/.mp4”;
video.src=“+vid_url+”;
video.controls=true;
video.autoplay=false;
//现在切换显示的弹出窗口
$(“视频容器”).fadeToggle(“慢速”);
});//单击结束处理程序
});//window.load事件结束
我认为这应该可以解决你所需的基本必需品。你可以用它做更多的事情

希望这有帮助:)


HTML5万岁

感谢您的回复,但是视频在灯箱框中弹出是100%必要的,这就是为什么我要这么做。而且,jwplayer的商业用途非常昂贵,这也是我使用它的最终目的。我并不是说我不会为一个像样的Javascript库支付任何费用,但是jwplayer对它所提供的东西的定价失去了控制。我可以看到两种解决这个问题的方法:首先,我可以看到你根本没有使用视频标签,所以这可能就是为什么你的视频从来没有出现在灯箱中。给我几个小时,我会发回一个非常简单的解决方案。(对不起,我现在正在旅行,呵呵)
<script>
$(window).load(function(){ 
// first of all I'm manually setting the pop's width and height to fit the entire screen
$("#vid-container").css("width",window.innerWidth+"px");
$("#vid-container").css("height",window.innerHeight+"px");
$(".vid-link").bind("click", function(){

// first get the video url from the link href

var vid_url= $(this).attr("href");

// now grab hold of the video and set it up by plugging in the video url

var video= document.getElementById("vid");
video.type="video/.mp4";
video.src="+vid_url+";
video.controls=true;
video.autoplay=false;

// now toggle the popup visible

$("vid-container").fadeToggle("slow");

});// end of click handler

});// end of window.load event
</script>