Angular的ng-
src会保留以前的模型,直到它在内部预加载图像为止。我在每个页面上的横幅使用不同的图像,当我切换路线时,我更改主视图,保留标题视图,仅在拥有它时更改bannerUrl模型。
这导致在加载新的横幅图像时看到先前的横幅图像。
令我惊讶的是,目前还没有指令,但是我想在尝试构建指令之前先进行讨论。
我想做的是在自定义属性上设置横幅模型。喜欢:
<img preload-src="{{bannerUrl}}" ng-src="{{preloadedUrl}}">
然后$ scope.watch更改bannerUrl,并在更改后立即用loader spinner替换ng-src,然后创建临时img
dom元素,从preload-src预加载图像,然后将其关联到preloadUrl。
例如,还需要考虑如何为画廊处理多个图像。
有人对此有意见吗?也许有人可以指出我现有的代码?
我已经在github上看到了使用background-image的现有代码-
但这对我不起作用,因为我的应用程序具有响应能力,因此我需要动态的高度/宽度,而我无法使用background-image来实现。
谢谢
在指令上具有2个url似乎有点复杂。我认为更好的是编写一个像这样的指令:
<img ng-src="{{bannerUrl}}" spinner-on-load />
并且该指令可以ng-src
使用微调器监视和(例如)设置是否可见性:false,直到图像加载完毕。所以像这样:
scope: {
ngSrc: '='
},
link: function(scope, element) {
element.on('load', function() {
// Set visibility: true + remove spinner overlay
});
scope.$watch('ngSrc', function() {
// Set visibility: false + inject temporary spinner overlay
});
}
这样,元素的行为就非常类似于带有ng-src
属性的标准img ,只是附加了一些额外的行为。
http://jsfiddle.net/2CsfZ/47/
问题内容: 我完全意识到,无论是在SO还是离线状态下,这个问题在任何地方都被提出并得到了回答。但是,每次似乎都有不同的答案,例如this,this和that。 我不在乎是否在使用jQuery-重要的是它可以工作,并且是跨浏览器的。] 那么,预加载图像的最佳方法是什么? 问题答案: 不幸的是,这取决于您的目的。如果您打算将图像用于样式目的,则最好的选择是使用精灵。 但是,如果您打算使用标记中的图像,
问题内容: 我整理了一个非常类似于flickr照片流功能的脚本。两个缩略图彼此相邻,当您单击下一个或上一个链接时,下一个(或上一个)两个图像就会滑入其中。 当前,页面加载时将加载两个图像。第一次使用nxt / prv时,随后的两个图像或前两个图像通过ajax加载,第一个图像的ID在url中传递,而两个新图像的HTML通过ajax返回并显示。 足够简单,但是我不得不考虑在连接速度慢或服务器负载重的情
问题内容: 我正在寻找一种快速简单的方法来用JavaScript预加载图像。如果重要的话,我正在使用jQuery。 但是,对于我想要的东西来说似乎有点过高了! 我知道那里有执行此操作的jQuery插件,但它们看上去都很大(大小);我只需要一种快速,轻松和简短的方式来预加载图像! 问题答案: 快速和简单的: 或者,如果您想要一个jQuery插件:
问题内容: 我有一个隐藏的联系表单,单击该按钮即可进行部署。它的字段设置为CSS背景图像,它们的出现时间总是比已切换的div晚一点。 我在本节中使用了此代码段,但运气不好(清除缓存后): 我正在使用jQuery作为我的库,如果我也可以使用它来解决此问题,那将很酷。 多谢您的光临。 问题答案: 我可以确认我的原始代码似乎有效。我随便坚持使用错误路径的图像。
问题内容: 我在下面编写的功能是否足以在当今大多数(如果不是全部)浏览器中预加载图像? 我有一个图像URL数组,可以循环访问这些URL,并为每个URL 调用该函数。 问题答案: 是。这应该适用于所有主要的浏览器。
本文向大家介绍Android 加载GIF图最佳实践方案,包括了Android 加载GIF图最佳实践方案的使用技巧和注意事项,需要的朋友参考一下 起因 最近在项目中遇到需要在界面上显示一个本地的 GIF 图。按照惯例我直接用了 Glide 框架来实现。 Glide 地址: https://github.com/bumptech/glide 我用的 Glide版本为 4.0.0-RC1 , 具体的实现