通过原生js判断网页图片是否已加载成功的方法总汇

时间: 2017-10-27阅读: 853标签: js技巧

在写网页的程序的时候,经常碰到要在网页加载完全之后再去展现页面,加载中的时候通过显示loading...的样式。这时候我们会直接想到使用window.onload的方式,或者是通过图片的img对象(DOM)的complete属性,这在一定程度可以解决。

window.onload方式  
<script> 
        document.getElementById('imgid').onload = function() { 
            console.log('loaded') 
        } 
</script>


img的complete属性 
function imgLoad(img, callback) {
	if(img==undefined){
		return;
	}
	var timer = setInterval(function() {
		if(img.complete) {
			callback(img)
			clearInterval(timer)
		}
	}, 50)
}
imgLoad(document.getElementById('imgid'),()=>{console.log('加载完毕')})


判断页面图片是都完全加载 
function imgloads(callback,size){//判断图片是否已加载完毕
	var imgs=document.getElementsByTagName("img");
	var isover=false;//true加载完毕,false还有未加载的
	var add=0;//循环当前次数
	var size=size || 10;//循环次数
	var jdtime=setInterval(function(){
		isover=true;add++;
		for(var i=0;i<imgs.length;i++){
			if(!imgs[i].complete){//还有没加载的图片
				isover=false;
			}
		}
		if(isover || add>=size){//加载完成,or超时
			clearInterval(jdtime);
			console.log("图片加载完成!用时"+add*50+'毫秒');
			callback();
		}
	},50);
},

完结~~~~~

js判断参数是否为非0整数数字或者整数数字字符串的简单方法(小装逼)

我们来判断一个值是否为数字,可以把它转化为数字,看是否为NaN 然后,再判断是否等于0即可简单的来实现判断了。js判断参数是否为非0整数数字或者整数数字字符串的简单方法

js中实现sleep暂停/睡眠功能的多种方式

由于很多语言都有sleep函数,但是js中没有,下面介绍JavaScript实现类似sleep的多种方式:利用循环、Promise版本 、通过generate来实现、通过 Async/Await 封装、使用node-sleep

js实现HSL与RGB色彩的相互转换功能

RGB和HSL是两种色彩空间,即:红,绿,蓝和色调,饱和度,亮度,前者适用于机器采样,目前的显示器颜色即由这三种基色构成,而后者更符合人类的直观感觉。这篇文章主要介绍原生js实现HSL与RGB相互转换

创建js hook钩子_js中的钩子机制与实现

钩子机制也叫hook机制,或者你可以把它理解成一种匹配机制,就是我们在代码中设置一些钩子,然后程序执行时自动去匹配这些钩子;这样做的好处就是提高了程序的执行效率,减少了if else 的使用同事优化代码结构

js实现浏览器:加入收藏、设为首页、保存到桌面的方法功能

在一些网页中我们可以常见的“设置为首页”和“ 收藏本站”,以及“保存到桌面”等功能,使用js是如何实现的呢?这里为大家分享下实现方法,完美兼容IE,chrome,ff等浏览器

js方式实现手机号码隐藏中间4位

在前端开发中,遇到如下需求:隐藏手机号码,将中间几位替换为*。通过js如何实现手机号码隐藏中间4位呢?下面整理几种实现方式:使用正则、通过长度截取。

js中一些怪异的写法_神奇的JavaScript

JavaScript是一门伟大的语言,作为一门弱类型语言,它拥有非常简洁的语法,庞大的生态系统,灵活性非常强大。js各种神奇的写法,所谓的神奇也就是罕见。下面就开始介绍这些怪异的写法吧。

JavaScript:处理值为undefined的7个技巧

学习JavaScript时,当时我对于undefined 和 null 比较困惑 ,因为他们都表示空值。他们有什么明确的区别吗?他们似乎都可以定义一个空值,而且 当你进行 在做null ===undefined 的比较时,结果是true。

更快学习 JS 的 6 个简单思维技巧

当人们尝试学习 JavaScript , 或者其他编程技术的时候,有些概念容易混淆,特别是当你学习过其他语言的时候。很难找到学习的时间(有时候是动力)。一旦当你理解了一些东西的时候,却很容易再一次忘记。

使用纯粹的JS构建 Web Component

Web Component 出现有一阵子了。 Google 费了很大力气去推动它更广泛的应用,但是除 Opera 和 Chrome 以外的多数主流浏览器对它的支持仍然不够理想。Web Component 是一系列 web 平台的 API,它们可以允许你创建全新可定制、可重用并且封装的 HTML 标签,从而在普通网页及 web 应用中使用。