아이디어 :
- 사용 언어 : (html / javascript)
- 버튼을 누를때마다 0 ~ 16777215(ffffff) 사이의 숫자 반환
- 10진수 -> 16진수로 변환
- 백그라운드 색상 변경
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Insert title here</title>
<script type="text/javascript">
//버튼을 눌렀을때 실행될 함수
function changeBg() {
var decimal = getRanNum();
var hexNum = hex(decimal);
var bg = document.getElementsByTagName("body")[0];
bg.style.backgroundColor = "#" + hexNum; //배경색 변경
}
//랜덤 10진수 생성
function getRanNum() {
var number = Math.floor(Math.random() * 16777216); //0 ~ ffffff
return number;
}
//10진수를 16진수로 변환
function hex(number) {
var abcHex = [ "a", "b", "c", "d", "e", "f" ];
var result = "";
while (number > 0) {
var temp = number % 16;
if (temp >= 10) {
result += abcHex[temp - 10];
} else {
result += temp;
}
number = Math.floor(number / 16);
}
result = lpad(result); //16진수 자리수 6자리로 맞추기
result = reverse(result); //거꾸로 저장된 16진수값 뒤집기
return result;
}
//거꾸로 입력된 16진수 뒤집기
function reverse(number) {
var result = "";
for (var i = number.length - 1; i >= 0; i--) {
result += number.charAt(i);
}
return result;
}
//16진수값을 6자리로 맞춰주기
function lpad(number) {
var result = number;
while (result.length < 6) {
result += "0";
}
return result;
}
</script>
</head>
<body>
<button onclick="changeBg();">Change Color</button>
</body>
</html>
댓글
댓글 쓰기