- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我开发了一个脚本,该脚本可以抓取HD分辨率的视频缩略图,并将该缩略图覆盖在任何嵌入式iframe上。到目前为止,这是我开发的摘要:
.append(
$('<img/>').attr({
'src': 'http://i.ytimg.com/vi/' + this.videoId + '/maxresdefault.jpg'
})
);
hqdefault.jpg
或将其作为很小比例的默认图像(例如120 x)返回,则如何检索视频缩略图,例如
maxresdefault.jpg
,而不是
maxresdefault.jpg
。 90像素),如下所示:
http://i.ytimg.com/vi/VGazSZUYyf4/maxresdefault.jpg?
hqdefault.jpg
,则将代替
maxresdefault.jpg
。
;
(function($, window, document, undefined) {
"use strict";
var defaults = {
darkenThumbnail: false
};
function YouTubeHDThumbnail(element, options) {
this.elem = element;
this.$elem = $(element);
this.settings = $.extend({}, defaults, options);
this._defaults = defaults;
this._name = 'youTubeHDThumbnail';
this.init();
}
$.extend(YouTubeHDThumbnail.prototype, {
init: function() {
this.videoId = null,
this.$thumbnail = null;
// retrieve HD thumbnail
var src = this.$elem.attr('src'),
srcSplit = src.split('?'),
srcMain = null,
srcPure = null;
if (srcSplit.length > 0) {
srcMain = srcSplit[0];
srcPure = srcMain.split('/');
this.videoId = srcPure.pop();
this.$thumbnail = $('<a />')
.attr({
'href': '#'
})
.addClass('yt-hd-thumbnail')
.append(
$('<img/>').attr({
'src': 'http://i.ytimg.com/vi/' + this.videoId + '/maxresdefault.jpg'
})
);
} else {
console.log('The src attribute of iframe is not valid.');
return;
}
// create container
var $outerContainer = $('<div />')
.addClass('yt-hd-thumbnail-outer-container')
.insertAfter(this.elem)
.css('width', this.$elem.attr('width')),
$innerContainer = $('<div />')
.addClass('yt-hd-thumbnail-inner-container')
.appendTo($outerContainer);
// insert thumbnail and iframe
if (this.settings.darkenThumbnail) {
this.$thumbnail.addClass('yt-hd-thumbnail-darken');
}
$innerContainer.append(this.$thumbnail).append(this.elem);
// add click handler to thumbnail
var self = this;
this.$thumbnail.on('click', function(e) {
e.preventDefault();
src = src + '&autoplay=1';
$innerContainer.addClass('yt-hd-thumbnail-clicked');
self.$elem.attr({
'src': src
});
});
},
});
$.fn['youTubeHDThumbnail'] = function(options) {
return this.each(function() {
if (!$.data(this, "plugin_" + 'youTubeHDThumbnail')) {
$.data(this, "plugin_" +
'youTubeHDThumbnail', new YouTubeHDThumbnail(this, options));
}
});
};
})(jQuery, window, document);
/* YouTube HD Thumbnails / Add HD Class */
$(document).ready(function() {
$('iframe[src*="youtube.com"]').addClass("yt-hd-thumbnail");
});
/* YouTube HD Thumbnails / Thumbnail Hover Effect */
$(document).ready(function() {
$('iframe.yt-hd-thumbnail').youTubeHDThumbnail({
darkenThumbnail: true
});
});
.yt-hd-thumbnail-inner-container {
height: 0;
padding-top: 56.25%;
position: relative
}
.yt-hd-thumbnail-inner-container>a.yt-hd-thumbnail,
.yt-hd-thumbnail-inner-container>iframe {
display: block;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
border-width: 0
}
.yt-hd-thumbnail-inner-container>a.yt-hd-thumbnail {
z-index: 2
}
.yt-hd-thumbnail-inner-container>a.yt-hd-thumbnail img {
width: 100%
}
.yt-hd-thumbnail-inner-container>a.yt-hd-thumbnail.yt-hd-thumbnail-darken:before {
display: block;
position: absolute;
content: '';
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: #000;
opacity: .3;
-webkit-transition: opacity .3s ease;
-moz-transition: opacity .3s ease;
transition: opacity .3s ease
}
.yt-hd-thumbnail-inner-container>a.yt-hd-thumbnail.yt-hd-thumbnail-darken:hover:before {
opacity: 0
}
.yt-hd-thumbnail-inner-container>iframe {
max-width: 100%;
opacity: 0;
-webkit-transition: opacity .3s ease .3s;
-moz-transition: opacity .3s ease .3s;
transition: opacity .3s ease .3s
}
.yt-hd-thumbnail-inner-container.yt-hd-thumbnail-clicked>a.yt-hd-thumbnail {
display: none
}
.yt-hd-thumbnail-inner-container.yt-hd-thumbnail-clicked>iframe {
opacity: 1
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<b>Video with a Max Resolution of: 480p</b>
<br>
<iframe width="560" height="315" src="https://www.youtube.com/embed/QgfxdTnLdt4?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
<br>
<b>Video with a Max Resolution of: 1080p</b>
<br>
<iframe width="560" height="315" src="https://www.youtube.com/embed/fPj-mEFPhrA?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
最佳答案
尝试以下方法:
$(document).ready(function()
{
$(".backup_picture").on("error", function(){
$(this).attr('src', './hqdefault.jpg');
});
});
class='backup_picture'
添加到您要用作备用src的任何img标签中即可。
关于javascript - 如果图像具有特定尺寸,是否检索备用src?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51756474/
这是代码片段。 请说出这种用小内存存储大数据的算法是什么。 public static void main(String[] args) { long longValue = 21474836
所以我使用 imap 从 gmail 和 outlook 接收电子邮件。 Gmail 像这样编码 =?UTF-8?B?UmU6IM69zq3OvyDOtc68zrHOuc67IG5ldyBlbWFpb
很久以前就学会了 C 代码;想用 Scheme 尝试一些新的和不同的东西。我正在尝试制作一个接受两个参数并返回两者中较大者的过程,例如 (define (larger x y) (if (> x
Azure 恢复服务保管库有两个备份配置选项 - LRS 与 GRS 这是一个有关 Azure 恢复服务保管库的问题。 当其驻留区域发生故障时,如何处理启用异地冗余的恢复服务保管库?如果未为恢复服务启
说,我有以下实体: @Entity public class A { @Id @GeneratedValue private Long id; @Embedded private
我有下一个问题。 我有下一个标准: criteria.add(Restrictions.in("entity.otherEntity", getOtherEntitiesList())); 如果我的
如果这是任何类型的重复,我会提前申请,但我找不到任何可以解决我的具体问题的内容。 这是我的程序: import java.util.Random; public class CarnivalGame{
我目前正在使用golang创建一个聚合管道,在其中使用“$ or”运算符查询文档。 结果是一堆需要分组的未分组文档,这样我就可以进入下一阶段,找到两个数据集之间的交集。 然后将其用于在单独的集合中进行
是否可以在正则表达式中创建 OR 条件。 我正在尝试查找包含此类模式的文件名列表的匹配项 第一个案例 xxxxx-hello.file 或者案例二 xxxx-hello-unasigned.file
该程序只是在用户输入行数时创建菱形的形状,因此它有 6 个 for 循环; 3 个循环创建第一个三角形,3 个循环创建另一个三角形,通过这 2 个三角形和 6 个循环,我们得到了一个菱形,这是整个程序
我有一个像这样的查询字符串 www.google.com?Department=Education & Finance&Department=Health 我有这些 li 标签,它们的查询字符串是这样
我有一个带有静态构造函数的类,我用它来读取 app.config 值。如何使用不同的配置值对类进行单元测试。我正在考虑在不同的应用程序域中运行每个测试,这样我就可以为每个测试执行静态构造函数 - 但我
我正在寻找一个可以容纳多个键的容器,如果我为其中一个键值输入保留值(例如 0),它会被视为“或”搜索。 map, int > myContainer; myContainer.insert(make_
我正在为 Web 应用程序创建数据库,并正在寻找一些建议来对可能具有多种类型的单个实体进行建模,每种类型具有不同的属性。 作为示例,假设我想为“数据源”对象创建一个关系模型。所有数据源都会有一些共享属
(1) =>CREATE TABLE T1(id BIGSERIAL PRIMARY KEY, name TEXT); CREATE TABLE (2) =>INSERT INTO T1 (name)
我不确定在使用别名时如何解决不明确的列引用。 假设有两个表,a 和 b,它们都有一个 name 列。如果我加入这两个表并为结果添加别名,我不知道如何为这两个表引用 name 列。我已经尝试了一些变体,
我的查询是: select * from table where id IN (1,5,4,3,2) 我想要的与这个顺序完全相同,不是从1...5,而是从1,5,4,3,2。我怎样才能做到这一点? 最
我正在使用 C# 代码执行动态生成的 MySQL 查询。抛出异常: CREATE TABLE dump ("@employee_OID" VARCHAR(50)); "{"You have an er
我有日期 2016-03-30T23:59:59.000000+0000。我可以知道它的格式是什么吗?因为如果我使用 yyyy-MM-dd'T'HH:mm:ss.SSS,它会抛出异常 最佳答案 Sim
我有一个示例模式,它的 SQL Fiddle 如下: http://sqlfiddle.com/#!2/6816b/2 这个 fiddle 只是根据 where 子句中的条件查询示例数据库,如下所示:
我是一名优秀的程序员,十分优秀!