- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想将视频添加到我的 PhotoSwipe 图库。
我在这里阅读了文档: http://photoswipe.com/documentation/custom-html-in-slides.html
不幸的是,我不明白这是什么意思:“如果你真的需要在 PhotoSwipe 中有视频,你可以将它添加为模态当用户点击当前幻灯片时出现,您可以动态创建DOM 中的模态并将其附加在 .pswp__scroll-wrap 元素之后。”
有没有人成功地使用 PhotoSwipe 制作可靠的视频?
编辑:我试过了(最后一张幻灯片是视频):http://pixelkrams.de/2015/artspin在桌面上工作但在移动设备上中断(视频无法启动且大小错误)。相关编码:http://pixelkrams.de/js/main.js
PhotoSwipe 初始化的片段:
// Pass data to PhotoSwipe and initialize it
gallery = new PhotoSwipe( pswpElement, PhotoSwipeUI_Default, dataLarge, options);
gallery.init();
gallery.listen('afterChange', function() {
detectVideo(gallery);
});
gallery.listen('beforeChange', function() {
removeVideo();
});
gallery.listen('resize', function() {
if ($('.videoHolder').length > 0) updateVideoPosition(gallery);
});
gallery.listen('close', function() {
removeVideo();
});
detectVideo(gallery);
以及视频的相关函数:
function removeVideo() {
if ($('.videoHolder').length > 0) {
if ($('#video').length > 0) {
$('video')[0].pause();
$('video')[0].src = "";
$('.videoHolder').remove();
$('.pswp__img').css('visibility','visible');
} else {
$('.videoHolder').remove();
}
}
}
function detectVideo(gallery) {
var src = gallery.currItem.src;
if (src.indexOf('video')>= 0) {
addVideo(gallery.currItem);
updateVideoPosition(gallery);
}
}
function addVideo(item, vp) {
var videofile = item.src.split(".");
var v = $('<div />', {
class:'videoHolder',
css : ({'position': 'absolute','width':item.w, 'height':item.h})
});
v.one('click touchstart', (function() {
var playerCode = '<video id="video" width="'+item.w+'" height="'+item.h+'" autoplay controls>' +
'<source src="'+videofile[0]+'.mp4" type="video/mp4"></source>' +
'<source src="'+videofile[0]+'.webm" type="video/webm"></source>' +
'</video>';
$(this).html(playerCode);
$('.pswp__img').css('visibility','hidden');
}));
v.appendTo('.pswp__scroll-wrap');
}
function updateVideoPosition(o) {
var item = o.currItem;
var vp = o.viewportSize;
var top = (vp.y - item.h)/2;
var left = (vp.x - item.w)/2;
$('.videoHolder').css({position:'absolute',top:top, left:left});
}
最佳答案
对于移动尺寸问题,我使用了一个额外的函数来计算基于 gallery.viewportSize 和视频纵横比的视频尺寸。
function setVideoSize(item, vp) {
var w = item.w,
h = item.h,
vw = vp.x,
r,
vh;
if (vw < w) {
r = w/h;
vh = vw/r;
w = vw;
h = vh;
}
return {
w: w,
h: h
};
}
然后将detectVideo()中的addVideo调用改成
addVideo(gallery.currItem, gallery.viewportSize);
在已有的addVideo(item, vp)函数中使用
var vsize = setVideoSize(item, vp);
var v = $('<div />', {
class:'.videoHolder',
css : ({'position': 'absolute','width':vsize.w, 'height':vsize.h})
还有updateVideoPosition(o)
var item = o.currItem;
var vp = o.viewportSize;
var vsize = setVideoSize(item, vp);
var top = (vp.y - vsize.h)/2;
var left = (vp.x - vsize.w)/2;
$('.videoHolder').css({position:'absolute',top:top, left:left});
关于javascript - PhotoSwipe 视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32770979/
我只是涉足 photoswipe,到目前为止,我没有做任何更高级的事情,只是通过一些非常小的(理论上微不足道的调整)简单地实现入门演示的副本。 我的图片库显示得很好,我总共有 4 个项目,因为我只是想
我已经集成了PhotoSwipe 4在我的网站上。使用鼠标时,它在台式机上运行良好,但是当我在移动设备上打开时,没有任何效果,并且我可以向下滚动(它应该像这样关闭)。有什么想法为什么会发生这种情况吗?
我正在寻找一个解决方案,也可以使用 a 打开 PhotoSwipe 库图片链接。这样就有了一个带有图库图标的 IMG。我想要如果用户单击它即可打开图库。 有人知道我该如何处理吗? 我发现了这一点。但这
我正在尝试使用 Ajax 调用让 Photoswipe 2.1.1 在 jQuery Mobile 网站中工作(每个页面都是一个单独的网页),但我发现了一个看起来像错误的东西。 即使在下载时提供的示例
我正在使用 Jquery Mobile 1.0 和 PhotoSwipe 插件 作为图库。我的问题是,当我打开画廊照片时,它工作得很好,但是当我关闭照片滑动时,它会显示一个空白屏幕,屏幕左上角有未定义
我里面有几张图片已绑定(bind)其点击以获取 photoswipe 图像的正确索引的标签。问题是第一次点击图片打开了正确的图片,但第二次点击总是打开同一张图片。此模式继续,交替单击打开与前一个相同的
我在这个页面上有一个非常简单的 Photoswipe 图库:http://neighborhoodpets.wink1733.com 如何为主页上没有显示缩略图的照片添加说明? 我只希望它在 Phot
是否可以向 Photoswipe 添加按钮?我知道我可以对按钮进行点击事件,但我无法更改按钮图标。是否可以添加一个新按钮来使用普通的 Java 脚本功能“打印”打印图片? 最佳答案 最新版本的 Pho
在这个官方代码笔中,在我的移动设备上,控件和标题看起来很小: http://codepen.io/dimsemenov/pen/ZYbPJM 我尝试将其添加到 HTML,但没有任何区别: 我
我正在使用 photoswpie 创建图库。但是当某些图像关闭时(当您单击图像外部的某个地方时),我无法制作动画。我想以这种方式看这个例子: http://photoswipe.com/ 我正在使用自
默认情况下,Photoswipe 为大图像提供缩放和拖放功能。它工作正常。但如果图像小于视口(viewport),单击该图像将关闭图库。 这个问题的视频: https://dl.dropboxuser
我正在尝试使用 JavaScript 在新窗口中打开当前可见的照片,但它也必须在 iPad 上运行。我尝试的是向工具栏添加一个按钮(如示例中所示)。我还在 photoswipe.css 中添加了该按钮
我使用 Photoswipe 在单击某个项目时显示我的图库。 我的标记:
我知道使用 jquery 将图像添加到照片滑动列表很简单,但我不知道如何在浏览图库时更新图像列表,即不返回图像列表。我发现的另一种选择(没有jquery,因为它将图像直接添加到 photoswipe
我创建了一个 jQuery mobile 页面,我在其中从 facebook 页面导入相册和照片,并动态创建包含相册的 listView。当用户从 ListView 中单击相册时,他可以看到缩略图中的
我正在尝试将图片(来自数组)动态添加到 photoswipe 中。我尝试使用 jquery 的“append”方法,但没有成功。我还阅读了人们在网上写的有关此问题的所有内容,但我没有找到正确的答案。欢
因此,当用户单击带有图库的图像并决定查看图像并关闭图库时,浏览器窗口会将他带到页面顶部。这不利于可访问性。焦点应该移回到原来的位置在页面中的位置。 您有任何想法可能会导致什么以及如何控制焦点吗?我认为
有没有办法使图像适合浏览器视口(viewport)?我真的很想将图像放在元素的背景中,而不是创建 img 标记的正常行为。这样我就可以在 css 中使用 background-size:cover。
我想将视频添加到我的 PhotoSwipe 图库。 我在这里阅读了文档: http://photoswipe.com/documentation/custom-html-in-slides.html
有没有一种方法可以在创建 photoswipe 画廊后将图像动态添加到它。 情况是这样的。 我正在从服务器获取图像 URL 并将它们显示在图库中。当项目被下载时,anchor 和 img 元素被添加到
我是一名优秀的程序员,十分优秀!