* new Image()로 이미지 로딩과 출력

<img> 태그를 사용하지 않고 자바스크립트 코드로 Image 객체를 생성하여 이미지를 로딩할 수 있다.

다음 코드는 동적으로 Image 객체를 만들고 banana.png 이미지를 로딩시키는 코드이다.

ex)

var banana.Img = new Image(); // 이미지 객체 생성

bananaImg.src = "banana.png"; // 이미지 로딩 지시. 이미지 로딩이 완료될때 onload 호출


new Image()에 의해 생성된 Image 객체는 이미지를 로딩하여 저장해 두는 목적으로만 사용됨.

Image 객체에 로딩된 이미지는 <img> 태그를 통해서만 화면에 출력된다.


* 로딩된 이미지 출력

var myImg = document.getElementById("myImg");

myImg.src = bananaImg.src; // bananaImg 객체에 로딩된 이미지를 <img> 태그에 출력


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>new Image()로 이미지 로딩</title>
<script>
// 미리 로딩해둘 이미지 이름 배열
var files = ["media/Penguins.png",
             "media/Lighthouse.png",
             "media/Chrysanthemum.png",
             "media/Desert.png",
             "media/Hydrangeas.png",
             "media/Jellyfish.png",
             "media/Koala.png",
             "media/Tulips.png"];
var imgs = new Array();
for(var i=0; i<files.length; i++) {
    imgs[i] = new Image(); // 이미지 객체 생성
    imgs[i].src = files[i]; // 이미지 미리 로딩
}
 
// 다음 이미지 출력
var next = 1;
function change(img) {
    img.src = imgs[next].src; // 이미지 변경
    next++// 다음 이미지 인덱스
    next %= imgs.length// 개수를 넘으면 처음으로
}
</script>
</head>
<body>
<h3>new Image()로 이미지 로딩</h3>
<hr>
이미지를 클릭하면 다음 이미지를 보여줍니다.<p>
<img style="border:20px ridge wheat"
    src="media/Penguins.png" alt="."
    width="200" height="200"
    onclick="change(this)">
</body>
</html>
 
cs



Posted by 너래쟁이
: