jQuery/Ajax fadeIn() 在 images/etc 加载后
jQuery/Ajax fadeIn() after images/etc have loaded
我有一个脚本,通过ajax为具有自定义URL的用户加载页面。例如,配置文件通常位于 http://example.com/users/Dan 但如果用户具有自定义URL,例如 http://example.com/DansCustomURL,那么我需要获取他们所需的目标URL(在本例中为用户的配置文件/users/Dan)。
一旦 HMTL 被获取并加载到 data
参数中,内容就会立即出现,但 CSS 样式和一些图像等需要更长的时间,导致页面看起来很糟糕,直到它们被加载。
是否有任何方法可以检测何时加载了位于data
变量中的所有元素?
我的HTML和内联Javascript/jQuery/Ajax如下。
<omni>
<script type="text/javascript" src="assets/js/jquery-2.1.4.min.js"></script>
<script type="text/javascript">
$(function() {
var rewritePath = '/users/Dan';
$.get(rewritePath, function(data,status) {
$('.hidden-element').append(data).onDataElementsLoad(function() {
$(this).fadeIn();
});
});
});
</script>
<div class="hidden-element"></div>
</omni>
当然.onDataElementsLoad()
不是一个真正的方法,但这就是我想做的。
我熟悉waitForImages
插件,但我希望这个(看似)简单的任务不需要另一个依赖项。
可以在 https://merkd.com/url.php?url=dan 中看到一个例子
我打算发布一个小提琴,但它不允许我以这种方式使用外部链接。
(将来会添加预加载器,但预加载data
中的图像的问题仍然存在。
我按照其他用户在下面的答案中的指示尝试了.done()
方法,但它并不能阻止页面在加载样式/图像之前出现损坏。
这是我现在使用的代码,如您所见,示例静止页面在内容本身出现后在样式/加载元素方面仍然存在延迟。
var rewritePath = '/u/dan';
$.get(rewritePath).done(function(data) {
console.log('loaded');
$('omni').after(data).remove();
});
怎么样:
$.get( "test.cgi", { name: "John", time: "2pm" } )
.done(function( data ) {
alert( "Data Loaded: " + data );
});
.done 是 $.get 函数中成功从 ajax 加载内容的回调。
不需要 ajax。你可以做这样的事情
var img = $("<img />").attr('src', 'http://somedomain.com/image.jpg')
.on('load', function() {
if (!this.complete || typeof this.naturalWidth == "undefined" || this.naturalWidth == 0) {
alert('broken image!');
} else {
$("#something").append(img).fadeIn(50);
}
});
相关文章:
- document.images未加载在chrome或firefox上,但已加载在IE上
- javascript number of images
- Javascript document.images.length returning 0
- 使用onClick on images显示文本
- 快速方法 Javascript/Jquery/etc 检索表单中包含的所有 aspnet:textbox (input)
- Javascript:document.images[].complete在IE中不起作用
- Umbraco-Images未从现有HTML标记中显示
- jQuery/Ajax fadeIn() 在 images/etc 加载后
- 获取 http://localhost//images/Products/ 403(禁止)
- memcache php caching js css and images
- Javascript 在加载 200mb 的新 Images() 后在 Safari / iPad2 中运行缓慢.为什么
- Krajee 引导程序文件输入 maxFileCount of Images.
- 将 bmp/gif/png/etc 转换为 jpg 的公共服务
- Javascript/jQuery prepend images
- 更改时加载Web资源[js,css,images]的最佳方法是什么
- toProperCase Javascript Regex - include hypen etc
- Box2dWeb and Images
- AJAX / jQuery / etc.库之前的JavaScript同步函数 - 不记得实现,任何建议
- Cakephp 2.5:使用Cake控制器在js,css,images上添加控件
- 将图像上传到服务器(picasa/dropbox/etc)并检索url以将其保存在我的数据库中