00_ 공통 부분
1) normal, hover, selected 상태시의 resource(이미지) 준비
2) normal 상태는 기본적으로 html 작업
01_ html 을 활용한 코드
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="jquery.js"></script>
<title>Document</title>
<style>
div{
display: inline-block;
margin-bottom: 100px;
}
/* html version */
.html_version{
position: relative;
}
.html_version .like:nth-child(2){
display: none;
position: absolute;
left: 0;
top: 0;
}
.html_version:hover .like:last-child,
.html_version .like.selected{
display: block;
}
</style>
</head>
<body>
<!-- html 활용 -->
<div class="html_version">
<button type="button" class="like"><img src="image/icn-videoinfo-like-n.png" alt=""></button>
<button type="button" class="like"><img src="image/icn-videoinfo-like-m-n.png" alt=""></button>
</div>
</body>
<script>
// html 활용
$(document).ready(function(){
$('.html_version').on('click', function(){
var like = $(this).children('.like:last-child');
like.toggleClass('selected');
if(like.hasClass('selected')){
alert("좋아요!");
}else{
alert("좋아요 취소");
}
})
});
</script>
</html>
1) 코드 설명
2) DOM Tree 관점
3) Render Tree 관점
4) Flow 관점
5) Paint 관점
02_ css 를 활용한 코드
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="jquery.js"></script>
<title>Document</title>
<style>
div{
display: inline-block;
margin-bottom: 100px;
}
/* css version */
.css_version .like{
width: 54px;
height: 47px;
background: url(image/icn-videoinfo-like-n.png) no-repeat center;
}
.css_version .like:hover,
.css_version .like.selected{
background-image: url(image/icn-videoinfo-like-m-n.png);
}
</style>
</head>
<body>
<!-- css 활용 -->
<div class="css_version">
<button type="button" class="like"></button>
</div>
</body>
<script>
// css 활용
$(document).ready(function(){
$('.css_version .like').on('click', function(){
var like = $(this);
like.toggleClass('selected');
if(like.hasClass('selected')){
alert("좋아요!");
}else{
alert("좋아요 취소");
}
})
})
</script>
</html>
1) 코드 설명
2) DOM Tree 관점
3) Flow 관점
5) Paint 관점