img的onerror事件

本文针对图片加载失败导致用户体验差的问题,提供了多种解决方法,包括设置默认背景图、利用onerror事件控制、通过JavaScript函数避免无限循环等,并确保浏览器兼容。

1.在图片不存在或者网络状态不好的情况下,会存在图片加载不过来,用户体验很差:

2.解决方法:

    (1)统一设置一个背景图

img{
	display: block;
	width: 100px;
	height:100px;
	background: url(https://blog.csdn.net/'images/Wechat.png') no-repeat 0 0;	
	background-size: 100% 100%;	    
	margin: 40px auto 0;
}

    (2)直接在img标签里添加onerror事件进行控制

<img src="" onerror="javascript:this.src='xxx.jpg';">

        注意点:

                ①这里的图片要尽可能小,如果过大还会存在加载失败的可能;

                ②当'xxx.jpg'图片不存在时还会出现加载失败;

                ②当加载失败时会再次执行onerror,再失败再执行,会一直执行陷入循环之中。

    (3)可以写一个函数,让函数只执行一次(执行一次把它置为null即可),不让其进入循环之中(推荐使用)

<img src="" onerror="noImg();"/>
<script type="text/javascript">
	function noImg(event){ 
		var img=img=event.srcElement ? event.srcElement : event.target; 
		img.src="images/Wechat.png"; 
		img.onerror=null; 
	} 
</script>

     此法甚好!

    (4)onerror相当于用js事件控制,所以在各个浏览器都能兼容

  3.效果

 

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值