๐ผ๏ธ ์๋ฐ์คํฌ๋ฆฝํธ ์ด๋ฏธ์ง ๊ฐ์ฒด ์ฌ์ฉ๋ฒ
Image ๊ฐ์ฒด
๋ณดํต ์น๋ธ๋ผ์ฐ์ ์์ ์ด๋ฏธ์ง๋ฅผ ๋ค๋ฃฐ์ผ์ด ์๋ค๋ฉด, ์๋ฐ์คํฌ๋ฆฝํธ๋ก <img> ํ๊ทธ๋ฅผ ์์ฑํ๊ณ ๊ทธ ์์ฑ์ ๋ค๋ฃฌ๋ค.
var x = document.createElement("IMG");
DOM ์๋ฆฌ๋จผํธ api๋ก ์ด๋ฏธ์ง๋ฅผ ๋ค๋ฃจ๋๋ฐ๋ ํฐ ์ ์ฝ์ฌํญ์ด ์๊ธด ํ์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ์์ ๋ฐ๋ก image() ํด๋์ค๋ฅผ ์ ๊ณตํด์ฃผ๊ธฐ๋ ํ๋๋ฐ, ์ด๋ฏธ์ง ํด๋์ค๋ฅผ ์ด์ฉํด ๋์ ์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๋ค๋ฃฐ์ ์๋ค.
์๋ฅผ๋ค์ด, html์ ์ด๋ฏธ์ง ํ๊ทธ์ src ๋ถ๋ถ ์ด๋ฏธ์ง url์ ๋ณ์๋ฅผ ํตํด ๋์ ์ผ๋ก ์ ์ดํ ํ์์ฑ์ด ์๊ฑฐ๋, ์น๋ธ๋ผ์ฐ์ ์๋ ๋น์ฅ ํ์ํ์ง์๊ณ ๋์ค์ ์ํด ์ด๋ฏธ์ง๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ฉํ๋ ค ํ ๋๋ ์ด๋ฏธ์ง์ ํฌ๊ธฐ๋ฅผ ๋ฐ๋ก ๊ตฌํ ๋ ์ฐ์ผ ์ ์๋ค.
Image ๊ฐ์ฒด ์ฌ์ฉ๋ฒ
Image ๊ฐ์ฒด ์์ฑ
// image๊ฐ์ฒด๊ฐ ์์ฑ๋์ด ์์ฑ๋ค์ ์ถ๊ฐํ ์ ์์
// new Image(width, height); ํ๋ผ๋ฏธํฐ๋ฅผ ๋ฃ์ด ๋ฏธ๋ฆฌ ํฌ๊ธฐ๋ฅผ ์ง์ ๊ฐ๋ฅ
const img = new Image();
// createElement('img') ์ฒ๋ผ dom์ <img> ํ๊ทธ๋ฅผ ์ถ๊ฐํ ์์๋ค.
document.body.appendChild(img);
์ด๋ฏธ์ง ๋ก๋ํด์ ์๋ณธ ํฌ๊ธฐ ์ป๊ธฐ
const IMG = new Image();
IMG.src = '์ด๋ฏธ์งurl';
// IMG.src ์ ์ด๋ฏธ์ง url์ ๋ฃ์ผ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ดํ๊ฒ ๋๊ณ ๋ก๋๊ฐ ๋ค๋๋ฉด ์ด๋ฒคํธ ๋ฐ์
IMG.addEventListener('load', function() {
console.log('๋์ด : ', this.naturalHeight , '๋๋น : ', this.naturalWidth, "์ด๋ฏธ์ง : ", this.src);
});
Image ์์ฑ
- border : ์ด๋ฏธ์ง์ ํ ๋๋ฆฌ ๊ฐ
- complete : ์ด๋ฏธ์ง ๋ก๋๊ฐ ์๋ฃ ๋์๋์ง ์ฌ๋ถ(true/false)
- height : ์ด๋ฏธ์ง์ ๋์ด
- width : ์ด๋ฏธ์ง์ ๊ฐ๋กํฌ๊ธฐ
- hspace : ์ด๋ฏธ์ง์ ์ํ์ฌ๋ฐฑ
- vspace : ์ด๋ฏธ์ง์ ์์ง์ฌ๋ฐฑ
- length : ์ด๋ฏธ์ง์ ๊ฐฏ์
- lowsrc : lowsrc ๋ก ์ค์ ํ ์ด๋ฏธ์ง์ URL
- name : ์ด๋ฏธ์ง์ name
- src : ์ด๋ฏธ์ง์ URL
Image ์ด๋ฒคํธ ํธ๋ค๋ฌ
- onAbort : ์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง ๋ก๋ฉ์ ์ค๊ฐ์์ ๋ฉ์ถ๋ ๋ฐ์ํ๋ ์ด๋ฒคํธ
- onError : ์ด๋ฏธ์ง ๋ก๋ฉ์ค ์๋ฌ๊ฐ ๋ฐ์ํ์๋
- onLoad : ์ด๋ฏธ์ง๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ก๋ฉ๋์์๋
const IMG = new Image();
IMG.src = '์ด๋ฏธ์งurl';
IMG.addEventListener('abort', () => {
alert('์ด๋ฏธ์ง๋ฅผ ์ฝ๋ค๊ฐ ์ค๋จ๋์์ต๋๋ค.')
})
IMG.addEventListener('error', () => {
alert('์ด๋ฏธ์ง๊ฐ ์ ๋๋ก ๋ก๋ฉ๋์ง ์์์ต๋๋ค.')
})
IMG.addEventListener('load', () => {
alert('์ด๋ฏธ์ง๊ฐ ์ฑ๊ณต์ ์ผ๋ก ๋ก๋ฉ ๋์์ต๋๋ค.')
})
Image ๊ฐ์ฒด ์ฌ์ฉ ์์
See the Pen Imgae ๊ฐ์ฒด by barzz12 (@inpaSkyrim) on CodePen.
# ์ฐธ๊ณ ์๋ฃ
http://www.ministory.net/xe/?mid=it_story&category=2963&page=9&document_srl=3024