- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我试图确保在我的图像查看器中打开大于其查看宽度的图像。但是,在 720p 分辨率和 Google Chrome 浏览器中,原始宽度和视口(viewport)宽度的宽度均为 0...
这是一个示例页面,其中应在 BFX View 中打开图像(尝试在较低分辨率的 Chrome 中):Live Example
日志(扫描的第一张图像是有问题的图像)
Starting BFX View Version 0.3 Build 61 alpha
bfxcore.js:92 BFX View -> Looking for images in: .postpreview...
bfxcore.js:92 BFX View -> Looking for images in: .content...
bfxcore.js:109 Image: http://media-cache-ec0.pinimg.com/originals/ed/e1/c7/ede1c78fe16fba4afd1606772a5fc1ac.jpg Original Width: 0 Against: 0
bfxcore.js:109 Image: images/smilies/wink.png Original Width: 0 Against: 0
bfxcore.js:109 Image: images/smilies/smile.png Original Width: 0 Against: 0
bfxcore.js:109 Image: images/primus/blue/misc/quote_icon.png Original Width: 0 Against: 0
bfxcore.js:109 Image: images/primus/blue/buttons/viewpost-right.png Original Width: 0 Against: 0
bfxcore.js:109 Image: images/smilies/wink.png Original Width: 0 Against: 0
bfxcore.js:109 Image: images/smilies/smile.png Original Width: 0 Against: 0
bfxcore.js:109 Image: images/primus/blue/misc/quote_icon.png Original Width: 0 Against: 0
bfxcore.js:109 Image: images/primus/blue/buttons/viewpost-right.png Original Width: 0 Against: 0
JavaScript
$(function(){
/****************************************************
/ BFX View version 0.3 build 56
/ by WASasquatch for BeeskneesFX.com
/***************************************************/
// Global vars
var appname = 'BFX View',
appflag = 'alpha',
appversion = 0.3,
appbuild = 61,
// Selectors
findImagesIn = new Array(
'.postpreview',
'.content',
'.restore',
'.postbody'
), // Master container class/id - all image tags in children elements get selected
// Theater selectors
theater = $('#theater-box'),
theaterimg = theater.find('#theater-img'),
theaterclose = theater.find('#theater-header span');
console.log('Starting '+appname+' Version '+appversion+' Build '+appbuild+' '+appflag);
if ( notMobile === false ) {
console.log(appname+' detected a mobile device. Disabling BFX View for performance. Visit us on a desktop!');
} else {
// Start a BFX View selector
for (i=0; i<findImagesIn.length; i++) {
console.log(appname+' -> Looking for images in: '+findImagesIn[i]+'...');
$(findImagesIn[i]).each(function(){
bfxView('.'+$(this).attr('class'));
});
}
}
function bfxView(id) {
var imgCount = 0;
$(id).each(function(){
$(this).find('img').each(function () {
var img = $(this),
width, height, origWidth = $(this).width();
hiddenImg = img.clone().attr('class','').attr('id','').css('visibility', 'hidden').removeAttr('height').removeAttr('width').appendTo('#loading-images');
height = hiddenImg.height();
width = hiddenImg.width();
hiddenImg.remove();
console.log('Image: '+$(this).attr('src')+' Original Width: '+origWidth+' Against: '+width);
if ( width > origWidth ) {
imgCount++;
$(this).css('cursor', 'pointer');
var parent = $(this).parent();
if ( parent.attr('href') == $(this).attr('src') ) {
parent.attr('target','_self');
parent.removeAttr('href');
}
$(this).click(function () {
var startingPoint = $(document).scrollTop(),
theaterActive = true,
bodyo = $('body').css('overflow');
$('body').css('overflow', 'hidden');
theaterimg.html('<img src="' + $(this).attr('src') + '" alt="Medium View" />');
setTimeout(function(){
theaterimg.find('img').each(function(){
var renderWidth = $(this).width();
if ( renderWidth < width ) {
$(this).css('cursor', 'pointer');
theater.find('#viewfull').attr('href', '/viewer.html?src='+Base64.encode($(this).attr('src'))+'&t='+Base64.encode(window.location.href));
theater.on('click', '#theater-img img', function(){
window.location.href = '/viewer.html?src='+Base64.encode($(this).attr('src'))+'&t='+Base64.encode(window.location.href);
});
} else {
theater.find('#viewfull').remove();
$(this).attr('alt','Full Resolution View');
}
});
},0);
theater.fadeIn(1000, function () {
theaterclose.click(function () {
theater.fadeOut(1000, function() {
theaterActive = false;
});
$('body').css('overflow', bodyo);
});
});
});
}
});
});
console.log(appname+' -> '+imgCount+' images found in '+id);
}
});
我更改了搜索代码,以确保检查所有可能的类。开始搜索的旧代码是
for (i=0; i<findImagesIn.length; i++) {
console.log(appname+' -> Looking for images in: '+findImagesIn[i]+'...');
bfxView(findImagesIn[i]);
}
更新的代码 Chrome 上仍然无法运行,并且在 Firefox 上通过此编辑失败。这会告诉我“宽度”和“高度”未定义,就像没有加载图像一样。
$(this).find('img').each(function () {
$(this).load(function(){
var img = $(this),
width, height, origWidth = $(this).outerWidth();
hiddenImg = img.clone().attr('class','').attr('id','').css('visibility', 'hidden').removeAttr('height').removeAttr('width').appendTo('#loading-images');
height = hiddenImg.height();
width = hiddenImg.width();
hiddenImg.remove();
});
最佳答案
您的示例不起作用:
BFX View -> 0 images found in ...
无论如何,您正在尝试在加载图像之前读取宽度。看看实际上涵盖同一主题的这个问题的答案:
Get the real width and height of an image with JavaScript? (in Safari/Chrome)
对于大图像,我建议使用读取图像尺寸的服务器端脚本,这样客户端就不必等待加载所有图像来触发您的脚本。
关于javascript - Chrome 无法检测图像尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27259469/
我正在查看 DOOM 源代码,我找到了 this行。 void * Z_Malloc (int size, int tag, void *user)
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 9 年前。 Improve t
我正从 Python 和 Numpy 转向 C++ 和 Eigen。 在 Python 中,我可以使用 .shape 属性获取 Numpy 数组/矩阵的形状(维度),如下所示: import nump
固定嵌入式YouTube视频的宽度并自己照顾自己的高度是否安全? 我有一个应用程序,用户可以将通知发布到公告板上。这些通知主要是文本(带有有限的html标签)和嵌入式图像。我现在要添加对嵌入式YouT
可以轻松创建一个 THREE.BoxGeometry,在创建宽度、高度和深度的三个独立参数时,您必须在其中传递参数。 我想创建任何和所有不带参数的THREE[types](),并在之后设置值。 有没有
我在 HTML 页面上有一个 Canvas : 属性width和height将 Canvas 拉伸(stretch)到某个字段,但不调整其大小。所以 var canvasElement = docu
我在我的 css 中使用 @media all 和 (max-width: 600px) {} 作为响应式菜单,问题是它没有正确显示。 我想让橙色填充绿色空间……当然,还要将绿色空间变成透明的。基本上
(我知道我问了很多关于这个的问题!) 基本上,我正在尝试将一些代码从 Matlab 转换为 C++,我遇到了这个: n = sum(size(blocks)) - len; 现在我计算了 vector
您好,我有一个用于创建产品的表单。用户应该能够选择类别(例如 T 恤),然后 T 恤的所有尺码(例如 S、M、L)都会下拉。用户可以输入每种尺寸的数量。 Javascript 对此不起作用。用户可以选
我正在尝试在页脚中定位和调整我的社交图标链接的大小,但是,这些命令似乎都没有效果,尤其是当我尝试调整它们的大小时。我试过将宽度和高度标记为“!重要”,但这也没有效果。 这是代码的 JSFiddle:h
我目前正在创建一个 HTML5 canvas基于绘图程序。用户可以绘制一张图像或几张图像“页面”,并将其保存到云端以供日后快速检索。这是用于交互式白板的;老师不能总是确定他们计划类(class)使用的
为网站存储图像的最佳方式是什么? 我不应该超过什么尺寸? 现在,我将所有界面文件保存在 png(主要是 Sprite )中,并将常用图像保存在 jpg 中。一些图像大约为 100-150Kb。 保存图
在 fancybox 主页 ( http://fancybox.net/home ) 中,有一个打开尺寸为屏幕 75% 的 iFrame 的示例。 我无法按照网站上的说明通过修改 .js 文件的宽度和
我想做一个仅适用于 iPhone 4 的应用程序,该应用程序使用 iAd AdBannerView。当我添加它时,它的固定大小为 320x50。在更高分辨率下这如何工作? 有人可以解释一下 iPhon
我们有一个 NSString,我们使用 - (NSSize)sizeWithAttributes:(NSDictionary *)attributes 来测量边界框。一切都好。 现在我们使用标准 NS
我想知道 Canvas 的宽度和高度,但我只知道它的 HDC。 我尝试过这段代码: procedure TForm92.Button1Click(Sender: TObject); var hBi
问题是如何使用数学从 START SVG 维度(不带旋转)和 END SVG 维度(带旋转)获取 >开始 SVG 信息。基本上,要从 START SVG 到 END SVG,我需要执行 -115.60
我的问题是,我有一个包含50万行的Oracle表。我设置了sqoop以将其作为 Parquet 文件导入到HDFS。我将--num-partition参数设置为32,得到了32个 Parquet 文件
是否可以更改 WordPress 中当前主题的 YouTube(或其他视频)的默认嵌入尺寸?我搜索了一个插件和一些代码,但似乎找不到。 我的意思是当您将 YouTube 网址粘贴到帖子或页面中时使用的
我有一个组,其中包含一个矩形和顶部的图像。我希望矩形可以调整大小,并且图像应该具有固定大小,除非矩形小于图像的情况。然后图像应该随着矩形缩小。 图像还应该始终居中并有一些填充。 除了图像的缩小尺寸部分
我是一名优秀的程序员,十分优秀!