我想这与Facebook的做法相似,但是......我还没有弄清楚如何遵循他们的行为,如果这是一个骗局,我道歉。
我们的想法是拥有一个缩略图大小的播放器(width="220px"
height="180px"
),当点击它时,会调整为“正常”大小(当然,正常是任意的,但是为了这个示例,如果我们使用width="445px"
,height="364px"
作为Youtube默认值,然后播放。
我假设onClick事件应该更改<object>
和<embed>
标记中定义的高度和宽度属性,但由于对象是flash,我认为Flash播放器“捕获”了点击次数而不是将它们报告给浏览器?
以下视频是我打算使用的视频之一,并在此提供一个真实的示例:
<object class="yt" width="445" height="364">
<param name="movie" value="http://www.youtube.com/v/2ieLb3RAblA&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/2ieLb3RAblA&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"></embed>
</object>
作为附录,这可能会在静态html页面中使用一段时间,之后不久就被移到php(5.2)站点,php和html都有jQuery 1.3.2链接,而且我'我很乐意使用第三方插件,如果存在这样的插件很容易。
我们很感激所有的帮助,对不起,我很抱歉,对我来说这可能是什么,而且对我来说似乎是一个愚蠢的问题。我想,它应该是显而易见的。
提前致谢。
答案 0 :(得分:5)
一些示例代码:
<div id="youtoobin">
</div>
<div id="blarg" style="display:none">
<object class="yt" width="445" height="364">
<param name="movie" value="http://www.youtube.com/v/2ieLb3RAblA&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/2ieLb3RAblA&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1&autoplay=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="445" height="364"></embed>
</object>
</div>
和JS:
<script>
$(function() {
$("#youtoobin").append("<img id='thumby' src='" + $.jYoutube('2ieLb3RAblA', 'small') + "'/>");
$("#thumby").live("click", function() {
$("#youtoobin").html($("#blarg").html());
});
});
</script>
我开启了自动播放,因为如果用户点击图片,您可能需要这样做。这应该是集成到您的应用程序的良好起点。 jQuery插件唯一能做的就是获取缩略图的网址 - 你可以得到一个大图像或小图像。
答案 1 :(得分:2)
因为我现在没有看到Andy的更新,所以我想出了一个......相当可怕的方法(但是我接受了他的回答,因为它比我的好得多)。
<script type="text/javascript">
$(document).ready(function(){
$("img").click(function () {
var videoID = $(this).attr("id");
$(this).replaceWith("<object class=\"yt\" width=\"445\" height=\"364\"><param name=\"movie\" value=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999&border=1\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"445\" height=\"364\"></embed></object>");
});
});
</script>
与以下html一起使用:
<dl>
<dt>Thoughts of Sacrament</dt>
<dd><img src="img/H5ZEYFgmfYo.png" id="H5ZEYFgmfYo" class="yt" /></dd>
<dt>Sanity falling</dt>
<dd><img src="img/2ieLb3RAblA.png" id="2ieLb3RAblA" class="yt" /></dd>
</dl>
我的解决方案,从点击的图片中获取#id
属性,然后将其插入replaceWith()
代码中。它在时尚之后起作用。但截图 - &gt;裁剪 - &gt;保存为video-id.png的方法至少可以说是乏味的。我想我可能会保留我的解决方案 - 如果没别的话,这是一种可悲的骄傲 - 但我会尝试将其与jYoutube方法结合起来。
如果这不起作用,那么我将使用Andy的答案。
<小时/> 作为更新,我使用jQuery的
animate()
:使事情变得更加优雅。
<script type="text/javascript">
$(document).ready(function(){
$("img").click(function () {
var videoID = $(this).attr("id");
$(this).animate({
width: "445px",
height: "364px"
}, 600, function() {
$(this).replaceWith("<object id=\"" + videoID + "\" class=\"yt\" width=\"425\" height=\"344\"><param name=\"movie\" value=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999\"></param><param name=\"allowFullScreen\" value=\"true\"></param><param name=\"allowscriptaccess\" value=\"always\"></param><embed src=\"http://www.youtube.com/v/" + videoID + "&hl=en&fs=1&color1=0x3a3a3a&color2=0x999999\" type=\"application/x-shockwave-flash\" allowscriptaccess=\"always\" allowfullscreen=\"true\" width=\"425\" height=\"344\"></embed></object><span class=\"close\"><a href=\"#\">x</a></span>");
});
});
});
</script>
此外,我正在生成一个<span class="close"><a href="#">x</a></span>
,希望通过点击处理程序提供服务,将Flash视频对象缩小并将其替换为原始.png
。
这是......如果我能弄清楚为什么jQuery不会让它有$(this).click();
事件......
有时我只是希望我知道什么时候停止......感谢任何帮助...... =)