判斷圖片是否載入完成的三種方式
有時需要獲取圖片的尺寸,這需要在圖片載入完成以後才可以。有三種方式實現,下面一一介紹。
一、load事件
<!DOCTYPE HTML>
<html>
<head>
<meta charset=
"utf-8"
>
<title>img - load event</title>
</head>
<body>
<img id=
"img1"
src=
"http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg"
>
<p id=
"p1"
>loading...</p>
<script type=
"text/javascript"
>
img1.onload =
function
() {
p1.innerHTML =
'loaded'
}
</script>
</body>
</html>
測試,所有瀏覽器都顯示出了“loaded”,說明所有瀏覽器都支援img的load事件
二、readystatechange事件
<!DOCTYPE HTML>
<html>
<head>
<meta charset=
"utf-8"
>
<title>img - readystatechange event</title>
</head>
<body>
<img id=
"img1"
src=
"http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg"
>
<p id=
"p1"
>loading...</p>
<script type=
"text/javascript"
>
img1.onreadystatechange =
function
() {
if
(img1.readyState==
"complete"
||img1.readyState==
"loaded"
){
p1.innerHTML =
'readystatechange:loaded'
}
}
</script>
</body>
</html>
readyState為complete和loaded則表明圖片已經載入完畢。測試IE6-IE10支援該事件,其它瀏覽器不支援。三、img的complete屬性
<!DOCTYPE HTML>
<html>
<head>
<meta charset=
"utf-8"
>
<title>img - complete attribute</title>
</head>
<body>
<img id=
"img1"
src=
"http://pic1.win4000.com/wallpaper/f/51c3bb99a21ea.jpg"
>
<p id=
"p1"
>loading...</p>
<script type=
"text/javascript"
>
function
imgLoad(img, callback) {
var
timer = setInterval(
function
()
{
if
(img.complete) {
callback(img)
clearInterval(timer)
}
}, 50)
}
imgLoad(img1,
function
() {
p1.innerHTML(
'載入完畢'
)
})
</script>
</body>
</html>
輪詢不斷監測img的complete屬性,如果為true則表明圖片已經載入完畢,停止輪詢。該屬性所有瀏覽器都支援。
onload方法
通過向img標籤新增onload屬性,並填入相應的函式來執行後續的javascipt程式碼。如下程式碼例子中img元素預設是不顯示的,通過onload判斷載入完成後再將圖片顯示出來。
<img class="pic1" onload="get(this)" src="..." style='display:none' />
<script type="text/javascript">
function get(ts){
ts.style.display = 'block'; //顯示圖片
}</script>
優點:可以將javascript程式碼部分放置於頁面的任何部分載入,並且可以用於多數任意圖片上。使用比較簡單,易理解。
缺點:必須在每個標籤上都貼上onlaod屬性,在某些無法直接操作HTML程式碼,或者需要程式碼精簡的情況下不適用
javascipt原生方法
選取指定ID的圖片,通過onload指定回撥方法,在圖片載入完成後彈出“圖片載入已完成”字樣提示。
<img id="pic1" src="..." /> <script language="JavaScript"> document.getElementById("pic1").onload = function () { alert("圖片載入已完成"); } </script>
優點:簡單易用,不影響HTML程式碼。
缺點:只能指定一個元素,javascipt程式碼必須置於圖片元素的下方
jquery方法
為每個class為pic1的圖片元素繫結事件,通過jquery的load方法,將元素漸現出來。
注意,不要在$(document).ready()裡繫結load事件。
<script type="text/javascript"> $(function(){ $('.pic1').each(function() { $(this).load(function(){ $(this).fadeIn(); }); }); }) </script>
優點:可以批量繫結元素事件,並且不影響HTML程式碼內容
缺點:需要jquery庫的支援,程式碼需要放置到需要操作元素的下方。
相關推薦
判斷圖片是否載入完成的三種方式
有時需要獲取圖片的尺寸,這需要在圖片載入完成以後才可以。有三種方式實現,下面一一介紹。 一、load事件 <!DOCTYPE HTML> <html> <head> <meta charset="utf-8">
vue-cli專案路由懶載入的三種方式
閒嘮嗑幾句 今天公司有新的專案要開展,需要重新部署新的專案,所以說以前好多忘記的東西,又得重新撿起來一遍,配置路由的時候發現還是使用的普通的使用require懶載入路由,所以在檢視文件和資料後又重新總結了一遍,以加深記憶和方便下次查閱。 一、使用import非同步引入
JS非同步載入的三種方式
非同步載入又叫非阻塞載入,瀏覽器在下載執行js的同時,還會繼續進行後續頁面的處理。主要有三種方式。 方法一:也叫Script DOM Element (function(){ var scriptEle = document.createElement("script"); script
web圖片預載入的幾種方式
類似H5和一些動畫元素都需要提前載入完一些圖片 如果圖片在使用之前就已經請求過了, 那麼再次使用的時候,就不會再去請求(ps:圖片路徑一樣)。 1.使用純的css進行圖片預載入
js判斷圖片是否載入完成
<span style="font-family:Microsoft YaHei;font-size:12px;"><!DOCTYPE html> <html lang
Unity實用小工具或指令碼—載入外部圖片的三種方式
一、前言 專案上需要載入多個地圖,每個地圖的貼圖將近200M,所有地圖加起來貼圖將近2G。因此,想著能不能將貼圖放到工程外載入,逐研究了一下,得出了三種載入方式,分別是WWW載入、C#原生的IO載入在轉換成Texture2D和Assetbundle打包和載入。
載入外部圖片的三種方式
二、IO檔案流載入 首先,同樣的是載入檔案路徑。然後開啟另外一個執行緒將圖片的位元組流載入到字典中。 /// <summary> /// 根據檔案路徑讀取圖片並轉換成byte /// </summary> /// <param name="pat
判斷python對象是否可調用的三種方式及其區別
asa 而不是 sha nbsp strong object 及其 返回 pes 基本上判斷python對象是否為可調用的函數,有三種方法: 1、使用內置的callable函數 callable(func) 用於檢查對象是否可調用,返回True也可能調用失敗,但是返回
判斷溢出的三種方式
真值表 img src blog bubuko body class 情況 info 1.一位符號位的情況 由真值表得: 方法一: 方法二: 2.兩位符號位的情況 方法三: 判斷溢出的三種方式
使用ajax發送文件的三種方式及預覽圖片的方法,上傳按鈕美化
absolut jquer 文件的 inpu headers return isp roc onchange 後端代碼 def upload(request): if request.method == "GET": return render(
MyBatis 延遲載入的三種載入方式深入,你get了嗎?
延遲載入 延遲載入對主物件都是直接載入,只有對關聯物件是延遲載入。 延遲載入可以減輕資料庫的壓力, 延遲載入不可是一條SQL查詢多表資訊,這樣構不成延遲載入,會形成直接載入。 延遲載入分為三種類型: 1.直接載入 執行完主物件之後,直接執行關聯物件。 2.侵入式載入 在執行主物
android載入大量圖片記憶體溢位的三種解決辦法
方法一: 在從網路或本地載入圖片的時候,只加載縮圖。 /** * 按照路徑載入圖片 * @param path 圖片資源的存放路徑 * @param scalSize 縮小的倍數 * @return */ public s
[Python爬蟲]爬蟲例項:三種方式爬取PEXELS圖片
PEXELS:Best free stock photos in one place. Pexels是一個提供免費高品質圖片,並且可商用的圖片網站.但是因為網站時外國的,所以連線和下載速度都略慢… 這裡只是為了講解圖片爬取和下載儲存的流程. 三種方式是指:分別指使用Lxml,Be
vue webpack 懶載入三種方式
const router = new Router({ routes: [ { path:
MarkDown插入圖片的三種方式
MarkDown插入圖片的三種方式 插入本地圖片 只需要在基礎語法的括號中填入圖片的位置路徑即可,支援絕對路徑和相對路徑 ![avatar](/home/picture/1.png) 插入網路圖片 在基礎語法的括號中填入圖片
vue+element ui專案總結點(一)select、Cascader級聯選擇器、encodeURI、decodeURI轉碼解碼、一級mockjs用法、路由懶載入三種方式
不多說上程式碼: <template> <div class="hello"> <h1>{{ msg }}</h1> <p>Element UI簡單Cascader級聯選擇器使用</p> <
android圖片壓縮的三種方式
為了避免oom的出現,幾乎每個應用都會對大圖進行壓縮,我現在手頭做的產品就有很多地方用到,以前封裝工具類的時候,都是在網上找東找西,然後拼拼湊湊,有效果就行了,一直用的迷迷糊糊,這幾天工作比較閒,正好系統的總結梳理一下圖片壓縮方式: 圖片壓縮現在常見的有三種方式: 1、等比壓縮,等
as3+php上傳圖片的三種方式
這裡的三種方式分別為: 1、二進位制傳輸(BINARY) 2、字串傳輸(String) 3、檔案流上傳(File) 開發IDE:FlashDevelop、Zend Studio。 1)設定FlashDevelop使用flash player10(debug版
【Android】一、Progress進度條實現的三種方式:主執行緒實現,Service載入,動態建立
前言 更新版本,上傳資料到服務端,都是需要進度顯示的,Android進度顯示兩種方式 ProgressDialog 和 ProgressBar 新版本中ProgressDialog不被推薦使用,所以專案採用ProgressBar 分為三種實現方式: 1、MainAct
flask載入配置的三種方式
from flask import Flask, json, jsonify from config_reg import Config app = Flask(__name__) # 實現形式1:匯入物件,物件中的配置資訊必須大寫:DEBUG=True # app.config.from_obj