<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../css/buttonStyle.css">
<title>Document</title>
<style>
#out{
position: absolute;
top: 150px;
width: 400px;
height: 350px;
left: 450px;
border: 1px solid gray;
background-color: cadetblue;
border-radius: 15px;
}
#result{
position: absolute;
top: 150px;
width: 400px;
height: 350px;
left: 15px;
border: 1px solid gray;
background-color: cadetblue;
border-radius: 15px;
}
</style>
</head>
<body>
<!-- 문제1. 버튼 2개에 하나는 food, 하나는 연예인이라고 쓰고
css는 우리가 만든 buttonStyle 적용
food 버튼을 클릭하면 음식사진을 div에 출력하고
연예인을 클릭하면 연예인 한명을 출력한다
(단 2번 모두 음식을 출력할까요? 라고 물어보고 예를 클릭시에만 이미지 출력)-->
<input type="button" class="btn btn-cadetblue" onclick="Food()" value="food">
<input type="button" class="btn btn-black" onclick="Talent()" value="연예인">
<div id="out"></div>
<script>
function Food(){
if(confirm("음식을 출력할까요?"))
{
out.innerHTML="<img src='../Food/1.jpg'>"
}
else
{
out.innerHTML="출력안하겠습니다";
}
}
// function Talent(){
// if(confirm("연예인을 출력할까요?"))
// {
// out.innerHTML="<img src='../연예인사진/1.jpg'>"
// }
// else
// {
// out.innerHTML="출력하지 안겠습니다";
// }
// }
</script>
<hr><hr>
<!-- 문제2. 이미지출력이라는 버튼을 만들고
클릭시 prompt로 "출력할 이미지의 index번호를 입력해주세요" 라고 출력
prompt 창에 0번을 입력하면 0번 이미지 출력되게끔
총 5개의 다양한 폴더의 이미지를 imgArr이라는 배열에 넣기
(단, 배열인덱스에 없는 값 입력시 div에 "해당 번호는 없습니다" 출력하기)-->
<div id="result"></div>
<input type="button" class="btn btn-orange" onclick="writePromptImage()" value="출력">
<script>
var imgArr=["../연예인사진/1.jpg","../연예인사진/10.jpg","../연예인사진/5.jpg","../연예인사진/9.jpg","../연예인사진/11.jpg"]
function writePromptImage(){
var idx=prompt("출력할 이미지의 인덱스 번호를 입력해주세요");
if(idx<0||idx>4)
result.innerHTML="해당번호는 없습니다";
else
result.innerHTML="<img src='"+imgArr[idx]+"'>";
}
// <script> 다른방법
// var imgArr=new Array();
// imgArr.push("../html_img/cheese2.png");
// imgArr.push("../logoImg/acc02.png");
// imgArr.push("../만화이미지/06.png");
// imgArr.push("../연예인사진/4.jpg");
// imgArr.push("../jquery_img/06.png");
// var result=document.getElementById("out");
// function Talent(){
// var idx=prompt("출력할 이미지의 인덱스 번호를 입력해주세요");
// if(idx<0|| idx>4){
// result.innerHTML="해당번호는 없습니다.";
// } else {
// result.innerHTML="<img src='"+imgArr[idx]+"'>";
// }
// }
</script>
</body>
</html>
document.getElementById("myimg").getAttribute("width")
-> 타입은 string/string 인에 - * 는 숫자로 계산됨(+만 안됨)
->parseInt(document.getElementById("myimg").getAttribute("width"))하면 string 값이 int로 바뀌어서 +연산 가능
function photosmall(){
var p=document.getElementById("myimg");
var w=p.getAttribute("width");
console.log(typeof(w)); // w의 타입은 string/string 인에 - * 는 숫자로 계산됨(+만 안됨)
w-=10;
p.setAttribute("width",w);
}
function photolarge(){
var p=document.getElementById("myimg");
var w=p.getAttribute("width");
w=parseInt(w);
console.log(typeof(w));
w+=10;
p.setAttribute("width",w);
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=, initial-scale=1.0">
<title>Document</title>
<style>
#one{
margin-left: 30px;
margin-bottom: 20px;
}
</style>
<script>
function photosmall(){
var p=document.getElementById("myimg");
var w=p.getAttribute("width");
console.log(typeof(w)); // w의 타입은 string/string 인에 - * 는 숫자로 계산됨(+만 안됨)
w-=10;
p.setAttribute("width",w);
}
function photolarge(){
var p=document.getElementById("myimg");
var w=p.getAttribute("width");
w=parseInt(w);
console.log(typeof(w));
w+=10;
p.setAttribute("width",w);
}
</script>
</head>
<body>
<div>
<button type="button" onclick="photosmall()">점점작게</button>
<button type="button" onclick="photolarge()">점점크게</button>
</div>
<img src="../Food/1.jpg" width="200" id="myimg">
</body>
</html>
innerText : text를 넣는다(태그 노출 / ""안의 글을 전부 text 그 자체로 받아서 그대로 배출)
innerHTML : html을 넣는다(태그 적용)
document.getElementById("btn1").onclick=function(){
// 사진의 현재 width값
var width=photo.getAttribute("width");
// 프롬프트 창에 이미지너비를 입력해주세요
// 입력하면 그것이 포토의 너비에 적용..취소시 이미지 변경 안할래요 경고창
var pw=prompt("이미지 너비를 입력해주세요");
if(pw==null)
alert("이미지 변경 안할래요");
else
photo.setAttribute("width",pw);
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="../css/buttonStyle.css">
<title>Document</title>
<style>
#result{
width: 500px;
height: 150px;
line-height: 150px;
font-size: 22px;
text-align: center;
border: 2px solid gray;
margin-top: 20px;
background: url("../flower_ani/f15.png") no-repeat right bottom;
background-size: 50px 60px;
}
#imga{
border: 5px inset tomato;
margin: 30px 150px;
}
</style>
<script>
window.onload=function(){
//div요소값
var r=document.getElementById("result");
//img요소값
var photo=document.getElementById("imga");
//버튼1이벤트
document.getElementById("btn1").onclick=function(){
// 사진의 현재 width값
var width=photo.getAttribute("width");
// 프롬프트 창에 이미지너비를 입력해주세요
// 입력하면 그것이 포토의 너비에 적용..취소시 이미지 변경 안할래요 경고창
var pw=prompt("이미지 너비를 입력해주세요");
if(pw==null)
alert("이미지 변경 안할래요");
else
photo.setAttribute("width",pw);
}
// 이벤트 2버튼을 누르면 prompt창에 1~20 사이의 연예인 사진 번호를 입력해주세요
// 취소시 경고창에 지금 사진이 좋아요 안바꿀래요
// 21번을 누르면 1~20까지 밖에 없다구요..함수 종료(return (false))
// 1이라고 하면 현재 사진이 1로 바뀐다
document.getElementById("btn2").onclick=function(){
var num=prompt("사진 번호를 입력해주세요");
if(num==null)
alert("지금 사진이 좋아요 안바꿀래요");
else if(num<1 || num>20)
{
alert("1~20까지 밖에 없다구요");
return;
}
else
photo.setAttribute("src", "../연예인사진/"+num+".jpg");
}
//버튼3
document.getElementById("btn3").onclick=function(){
// innerText와 innerHTML의 차이
// innerText : text를 넣는다(태그 노출 / ""안의 글을 전부 text 그 자체로 받아서 그대로 배출)
// innerHTML : html을 넣는다(태그 적용)
var name=prompt("당신의 이름은?");
if(name==null)
document.getElementById("result").innerText="<u>취소를 눌렀네요!!!</u>";
else
r.innerHTML="<u>당신의 이름은 "+name+"이군요</u>";
}
}
</script>
</head>
<body>
<button type="button" class="btn btn-cadetblue" id="btn1">이벤트#1</button>
<button type="button" class="btn btn-cadetblue" id="btn2">이벤트#2</button>
<button type="button" class="btn btn-cadetblue" id="btn3">이벤트#3</button>
<div id="result">테스트</div>
<img src="../연예인사진/17.jpg" width="250" id="imga">
</body>
</html>
// selected는 이름만 기본설정하고 기본 이미지는 밑 div에 사진이기 때문에
// 위 헤드에 var init_img로 초기 이미지와 이름을 맞춰주기 위해 설정
//alert(selimage.value); value값 확인
//이 코드 넣은 이유:select이름과 사진을 동일하게 하기 위해서
var init_img=selimage.value;
//현재사진의 src속성을 변경한다 -> 초기이미지를 selected된 이름과 맞춰준다
photo.setAttribute("src",init_img);
//select 이벤트 onclick말고 onchange 사용
selimage.onchange=function(){
//모든 이벤트 함수에는 이벤트 발생 객체에 대한 this라는
//변수가 기본적으로 존재한다
console.log(this.value);
//사진의 src에 this.value를 적용
photo.setAttribute("src",this.value);
}
<!-- selected는 이름만 기본설정하고 기본 이미지는 밑 div에 사진이기 때문에
위 헤드에 var init_img로 초기 이미지와 이름을 맞춰주기 위해 설정 -->
<option value="../연예인사진/12.jpg" selected>박보영</option>
<!-- option태그에서는 src를 못가져와서 value값에 사진경로를 넣어줌 -->
<option value="../연예인사진/11.jpg">고준희</option>
<!-- 감싸고 있는 것들을 주로 container라고 지음 -->
<div class="container">
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
.container div img{
border: 10px groove gray;
margin-top: 20px;
margin-left: 20px;
}
</style>
<script>
window.onload=function(){
var photo1=document.getElementById("img1");
document.getElementById("btn1").onclick=function(){
photo1.setAttribute("src","../연예인사진/13.jpg");
}
document.getElementById("btn2").onclick=function(){
photo1.setAttribute("src","../연예인사진/20.jpg");
}
document.getElementById("btn3").onclick=function(){
photo1.setAttribute("src","../연예인사진/17.jpg");
}
document.getElementById("btn4").onclick=function(){
var w=photo1.getAttribute("width");
w=parseInt(w);
w+=10;
photo1.setAttribute("width",w)
}
document.getElementById("btn5").onclick=function(){
var w=photo1.getAttribute("width");
w=parseInt(w);
w-=10;
photo1.setAttribute("width",w)
}
//아래문제
var selimage=document.getElementById("selimage");
var photo=document.getElementById("photo");
// selected는 이름만 기본설정하고 기본 이미지는 밑 div에 사진이기 때문에
// 위 헤드에 var init_img로 초기 이미지와 이름을 맞춰주기 위해 설정
//alert(selimage.value);
//이 코드 넣은 이유:select이름과 사진을 동일하게 하기 위해서
var init_img=selimage.value;
//현재사진의 src속성을 변경한다 -> 초기이미지를 selected된 이름과 맞춰준다
photo.setAttribute("src",init_img);
//select 이벤트 onclick말고 onchange 사용
selimage.onchange=function(){
//모든 이벤트 함수에는 이벤트 발생 객체에 대한 this라는
//변수가 기본적으로 존재한다
console.log(this.value);
//사진의 src에 this.value를 적용
photo.setAttribute("src",this.value);
}
}
</script>
</head>
<body>
<h3>이미지변경 및 크기</h3>
<button type="button" id="btn1">박신혜</button>
<button type="button" id="btn2">유아인</button>
<button type="button" id="btn3">신민아</button><br><br>
<button type="button" id="btn4">점점 크게</button>
<button type="button" id="btn5">점점 작게</button>
<hr>
<img src="../연예인사진/10.jpg" width="300" id="img1" border="1">
<hr>
<!-- 감싸고 있는 것들을 주로 container라고 지음 -->
<div class="container">
<div>
<button type="button" id="btnsmall">점점작게</button>
<button type="button" id="btnlarge">점점크게</button>
<b style="margin-left: 20px;">사진선택</b>
<select id="selimage">
<!-- option태그에서는 src를 못가져와서 value값에 사진경로를 넣어줌 -->
<option value="../연예인사진/11.jpg">고준희</option>
<!-- selected는 이름만 기본설정하고 기본 이미지는 밑 div에 사진이기 때문에
위 헤드에 var init_img로 초기 이미지와 이름을 맞춰주기 위해 설정 -->
<option value="../연예인사진/12.jpg" selected>박보영</option>
<option value="../연예인사진/13.jpg">박신혜</option>
<option value="../연예인사진/15.jpg">장지연</option>
</select>
</div>
</div>
<div>
<img src="../연예인사진/17.jpg" id="photo" width="300">
</div>
</body>
</html>
css에서 style로 주던걸 JavaScript로 주기
var imagine=document.getElementById("img1");
imagine.onmouseover=function(){
imagine.setAttribute("src","../Food/3.jpg");
}
imagine.onmouseout=function(){
imagine.setAttribute("src","../Food/1.jpg");
}
코드는 항상 위에서 아래로 순새대로 읽기 때문에
img/div를 위에
script를 아래로 줘야 제대로 작동됨
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<!-- 1. 만화이미지 01.png~10.png까지 출력하세요 (for문) -->
<script>
for(var i=1;i<=10;i++)
{
if(i<10)
document.write("<img src='../만화이미지/0"+i+".png' width='100' height='100'>");
else
document.write("<img src='../만화이미지/"+i+".png' width='100' height='100'>");
if(i%5==0)
document.write("<br>");
}
</script>
<hr>
<!-- 2. 음식사진 1.jpg를 img태그로 나타낸 후 id를 img1으로 주고
그 아이디로 이벤트 추가합니다
사진에 마우스를 올리면 3.jpg로 바뀌고 클릭하면 5.jpg로 바뀌며
마우스를 벗어나면 다시 원래 사진으로 돌아가게 이벤트 주기-->
<script>
var imagine=document.getElementById("img1");
imagine.onmouseover=function(){
imagine.setAttribute("src","../Food/3.jpg");
}
imagine.onclick=function(){
imagine.setAttribute("src","../Food/5.jpg");
}
imagine.onmouseout=function(){
imagine.setAttribute("src","../Food/1.jpg");
}
</script>
<div>
<img src="../Food/1.jpg" id="img1" width="300">
</div>
<hr>
<!-- 3. img로 width=200 height=100 으로 사진(아무거나) body에 넣은 후
이미지를 클릭하면 아래 div태그 안에 각종 정보(src,width,height)를 얻어서
출력하시오(getAttribute, innerHTML 사용)-->
<style>
#out{
width: 200px;
height: 100px;
border: 1px solid gray;
}
</style>
<img id="img2" src="../연예인사진/15.jpg" width="200" height="100">
<div id="out"></div>
<script>
var img=document.getElementById("img2");
var out=document.getElementById("out");
img.onclick=function(){
var s=img.getAttribute("src");
var w=img.getAttribute("width");
var h=img.getAttribute("height");
out.innerHTML="src: "+s+"<br>";
out.innerHTML+="width: "+w+"<br>";
out.innerHTML+="height: "+h;
}
</script>
<hr>
<!-- 4. 버튼을 하나 만든 후 클릭하면 prompt창에 이름을 입력받아서 div태그 안에
"내 이름은 *** 입니다" 라고 출력하세요
(div에 class="bts" 라고 준 후 css로 예쁘게 스타일 적용할 것!!!)-->
<style>
.bts{
width: 200px;
height: 100px;
background-color: cadetblue;
border: 1px solid gray;
border-radius: 15px;
text-align: center;
line-height: 100px;
}
</style>
<script>
function clicker(){
var p=prompt("이름을 입력해주세요");
if(p)
bts2.innerHTML="내 이름은 "+p+"입니다<br>";
else
bts2.innerHTML="이름이 없어요";
}
</script>
<button type="button" onclick="clicker()" id="bts3">이름 입력</button>
<div class="bts" id="bts2"></div>
</body>
</html>
정말 좋은 글 감사합니다!