//fade in images after the image has loaded..
$(document).ready(function(){
$(".image_ad").hide().bind("load", function () { $(this).fadeIn(400); });
});
Run Code Online (Sandbox Code Playgroud)
如果有人有任何意见,这将是伟大的.
我写这篇文章是为了避免在页面上看图像加载,我宁愿加载页面然后当每个图像准备就绪时它们很好地淡入.
问题是,有时几张图片永远不会加载,点击刷新会纠正这个问题,但我宁愿把它弄得很完美,并且询问是否有人知道为什么.
我有一种感觉,有时dom在脚本运行时没有完全加载,我知道它在文档中.但是它可能有可能..
再次感谢.
感谢所有的答复!今晚我会玩这些片段并发回我认为有用的片段.再次,你的答案非常感谢.
如下所示,这似乎对我的需求非常有效.感谢大家.
$(document).ready(function(){
$(".gallery_image").hide().not(function() {
return this.complete && $(this).fadeIn(100);
}).bind("load", function () { $(this).fadeIn(100); });
});
Run Code Online (Sandbox Code Playgroud)
还有一件事,我不喜欢不完整的帖子所以......
我发现这在Firefox 3.6.12中不起作用.
我会看看这个.
请参阅此问题底部的重要说明.
我正在使用numpy来加速经度/纬度坐标的处理.不幸的是,我的numpy"优化"使我的代码运行速度比没有使用numpy时运行的速度快5倍.
瓶颈似乎是用我的数据填充numpy数组,然后在完成数学转换后提取出数据.为了填充数组,我基本上有一个循环:
point_list = GetMyPoints() # returns a long list of ( lon, lat ) coordinate pairs
n = len( point_list )
point_buffer = numpy.empty( ( n, 2 ), numpy.float32 )
for point_index in xrange( 0, n ):
point_buffer[ point_index ] = point_list[ point_index ]
Run Code Online (Sandbox Code Playgroud)
那个循环,只是在操作它之前填充numpy数组,非常慢,比整个计算没有numpy慢得多.(也就是说,它不仅仅是python循环本身的缓慢,而且实际上将每个小块数据从python转移到numpy显然是一些巨大的开销.)另一端有类似的缓慢; 在我处理了numpy数组之后,我再次访问循环中的每个修改过的坐标对
some_python_tuple = point_buffer[ index ]
Run Code Online (Sandbox Code Playgroud)
再次将数据拉出的循环比没有numpy的整个原始计算要慢得多.那么,我如何实际填充numpy数组并从numpy数组中提取数据的方式不会破坏首先使用numpy的目的?
我正在使用C库从形状文件中读取数据,该库将数据作为常规python列表提供给我.据我所知,如果图书馆将坐标传递给一个numpy数组,那么就不会"填充"必要的numpy数组.但不幸的是,数据的起点是常规的python列表.更重要的是,一般来说,我想了解如何使用python中的数据快速填充numpy数组.
澄清
上面显示的循环实际上过于简单了.我在这个问题中就是这样写的,因为我想专注于我试图在循环中慢慢填充numpy数组的问题.我现在明白这样做很慢.
在我的实际应用中,我所拥有的是坐标点的形状文件,我有一个API来检索给定对象的点.有200,000个对象.所以我反复调用一个函数GetShapeCoords( i )来获取对象i的坐标.这将返回一个列表列表,其中每个子列表是lon/lat对的列表,并且它是列表列表的原因是某些对象是多部分的(即多边形).然后,在我的原始代码中,当我读入每个对象的点时,我通过调用常规python函数对每个点进行转换,然后使用PIL绘制转换后的点.整个过程花了大约20秒来绘制所有200,000个多边形.并不可怕,但还有很大的提升空间.我注意到这20秒中至少有一半用于转换逻辑,所以我想我会在numpy中做到这一点.我最初的实现只是一次读取一个对象,并继续将子列表中的所有点附加到一个大的numpy数组中,然后我可以在numpy中进行数学运算.
所以,我现在明白,简单地将整个python列表传递给numpy是设置大数组的正确方法.但在我的情况下,我一次只读一个对象.所以我能做的一件事就是在一个列表列表的大蟒蛇列表中继续追加点.然后当我以这种方式编译大量对象的点(比如10000个对象)时,我可以简单地将该怪物列表分配给numpy.
所以现在我的问题是三个部分:
(a)numpy是否可以采用那些大的,形状不规则的列表清单,并且可以快速地将其剔除?
(b)然后我希望能够转换那棵怪物树的叶子中的所有点.例如,"进入每个子列表,然后进入每个子子列表,然后对于在这些子列表中找到的每个坐标对,将第一个(lon坐标)乘以0.5",表达式是什么?我能这样做吗?
(c)最后,我需要将这些变换的坐标取回以绘制它们.
Winston在下面的回答似乎暗示了我如何使用itertools完成所有这些工作.我想要做的就像温斯顿所做的那样,将列表弄平.但我不能完全把它弄平.当我去绘制数据时,我需要能够知道一个多边形停止和下一个多边形何时开始.所以,我认为如果有一种方法可以快速标记每个多边形(即每个子子列表)的末尾,并使用特殊的坐标对(如(-1000,-1000)或类似的东西),我可以使它工作.然后我可以像在温斯顿的回答中那样使用itertools压扁,然后在numpy中进行变换.然后我需要实际使用PIL从点到点绘制,在这里我想我需要将修改后的numpy数组重新分配回python列表,然后在常规python循环中遍历该列表以进行绘制.这似乎是我最好的选择,只是编写一个C模块,只需一步即可处理所有的阅读和绘图?
我正在构建一个Javascript灯箱,我试图在图像加载后调整大小.我正在使用下面的代码,它工作正常 - 一旦加载它输出正确的宽度.
我的问题:
当我刷新时,它会立即从缓存加载图像,它似乎绕过了负载.我的宽度瞬间为零.为什么会这样?
我的代码:
var oImage = new Image();
oImage.src = 'http://mydomain.com/image.png';
container.html(oImage);
oImage.onload = function(){
alert(this.width);
}
Run Code Online (Sandbox Code Playgroud)
**更新**
@Alex:这是我用你的插件试过的代码,我想我可能做错了.我渴望得到这个,因为你的插件看起来很不错.
container.waitForImages(function() {
var cWidth = $(this).width();
alert("width: "+cWidth); // returns 0 - works first time but not cached
});
// Adding the image to the container for preload
container.html('<img src="mygraphic.png" />');
Run Code Online (Sandbox Code Playgroud) 我有一个JTable从数据库加载数据.因为有时数据太多,我想在Jtable中添加一个加载圈来通知用户数据正在加载.这是我希望它的形象:

这可能吗?如何在Swing中完成?
PS:我不想使用进度条,我只想要表中的圆圈.
更新:该表是GUI的一部分,我只想禁用或显示JTable中的加载并保持其他组件不变.
我在WPF中的应用程序加载外部资源,所以我想在程序加载时显示一个加载表单.
我尝试创建表单,并在加载代码之前显示,并在加载结束时关闭.
private void Window_Loaded(object sender, RoutedEventArgs e)
{
LoadForm lf = new LoadForm();
lf.Visibility = Visibility.Visible;
// Al code that delays application loading
lf.Close();
}
Run Code Online (Sandbox Code Playgroud)
但我唯一得到的是在加载进度完成并立即关闭时显示表单.
我认为我需要使用System.Threading但不确定.
谢谢.
注意我在Window_Loaded()方法中加载所有应用程序外部资源,而不是在主类方法中.
脚本的作用是使用newimage.gif更改image.jpg,反之亦然.
现在我想在newimage.gif加载时添加一个微调器.
像9gag.com/gif上的东西.
有谁可以帮助我吗?
这是代码:html
<img src="/image.jpg" id="pic" onclick="change()"/>
<a id="first" href="/newimage.gif" style="display:none;"></a>
<a id="second" href="/image.jpg" style="display:none;"></a>
Run Code Online (Sandbox Code Playgroud)
JavaScript的
function change(){
var imag = document.getElementById('pic').src;
var img = imag.slice(-3);
var img1 = document.getElementById('second').href;
var imag2 = document.getElementById('first').href;
if(img == 'gif') {
document.getElementById('pic').src=imag2;
// here the newimage.gif changes to image.jpg
} else {
// here the image.jpg changes to newimage.gif
// i think here should be the code that will display a spinner while the image.gif loads completely
document.getElementById('pic').src=img1;
}
}
Run Code Online (Sandbox Code Playgroud) 我想用来ng-repeat在页面中显示超过100个图像.这些图像在加载时花费了大量时间,我不希望显示它们被加载到用户.所以,我只想在浏览器中加载它们之后显示它们.
如果加载了所有图像,有没有办法检测?
Q)任何人都知道Ionic 2中的Loading组件是否破损或者我是愚蠢的?
我试图使用Ionic 2中的Loading组件,如下所示:
let loading = Loading.create({
content: 'Loading: ',
duration: 3000
});
nav.present(loading);
Run Code Online (Sandbox Code Playgroud)
即使他们被设置为自我解雇,他们有时会出现翻倍(即屏幕上有2个叠加,背景太深),并且他们不会被解雇.
这似乎打破了我.
我试过保留一个全局变量并解雇每个变量:
showLoading(nav: NavController) {
if(!window.loadingOverlays) {
window.loadingOverlays = [];
}
// only ever show one instance of the overlay.
if(window.loadingOverlays && window.loadingOverlays.length > 0) {
return;
}
let loading = Loading.create({
content: 'Loading...'
});
nav.present(loading);
window.loadingOverlays.push(loading);
}
hideLoading() {
if(!window.loadingOverlays || window.loadingOverlays.length == 0) {
return;
}
window.loadingOverlays.forEach((overlay) => {
overlay.dismiss();
});
window.loadingOverlays = [];
}
Run Code Online (Sandbox Code Playgroud)
并添加到它并手动解除它们,但这没有任何效果.
为了给你一些背景知识,许多(如果不是全部)网站逐个加载他们的图像,所以如果有很多图像,和/或你的计算机速度很慢,大多数图像都不会显示出来.这在大多数情况下是可以避免的,但是如果您正在运行脚本以确定图像URL,那么您不需要查看图像,只需要其URL.我的问题如下:
是否有可能欺骗网页认为图像已完成加载,以便它将开始加载下一个?