반응형
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<style>
.circle{
position : absolute;
left : 100px; top :100px;
width : 100px ; height :100px;
background : #99c; color: white;
border-radius :50%;
text-align : center;
line-height: 100px;
}
</style>
</head>
<body>
<button id ="btn1">click</button>
<button id ="btn2">hover</button>
<script>
$('#btn1').click(function(){
$(this).css('border-radius', '10px');
});
$('#btn2').hover(function(){
$(this).css('box-shadow','3px 3px 3px #666');
},
function(){
$(this).css('box-shadow','0px 0px 0px #666');
});
</script>
</body>
</html>
$('#btn1').click(function(){
$(this).css('border-radius', '10px');
});
이거는 클릭했을 때 둥글게 바뀌는 것이고
$('#btn2').hover(function(){
$(this).css('box-shadow','3px 3px 3px #666');
},
function(){
$(this).css('box-shadow','0px 0px 0px #666');
});
이거는 호버했을 때 box-shadow가 3px씩 주게 되고 땠을 땐 밑에 함수가 실행됩니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<style>
</style>
</head>
<body>
<h3> 그래프를 클릭 </h3>
<progress min = 0 max = 100 value = 0></progress>
<span id = "info"></span>
<script>
var val = 0;
$('progress').on('click',function(){
$(this).val(val);
$('#info').html(val);
if (val <100) { val += 10; }
})
</script>
</body>
</html>
클릭하면 10씩 올라갑니다.
그냥 click으로 만들어도 되는 거 아닌가요? 라고 할 수 있는데요
on 메소드는 여러 복수 이벤트를 동시에 연결 할 수 있는 장점이있습니다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<style>
</style>
</head>
<body>
<button id ="btn" style="padding: 10px">click</button>
<script>
$(function(){
$('#btn').on('mouseenter mouseleave',function(e){
if(e.type == 'mouseenter'){
$(this).css('border-radius','10px');
}
if(e.type == 'mouseleave'){
$(this).css('border-radius','0px');
}
});
});
</script>
</body>
</html>
hover로 구현할 경우 때면 밑에 함수가 계속 적용 됩니다. 위에 hover로 구현하신 0px을 15px로 줘보세요
처음 상태랑 버튼에서 벗어났을 때랑 다르게 보입니다.
mouseenter와 mouseleave를 통해서 완벽한 hover가 구현이 가능합니다.
e.type이라는 건 function 안에 매개변수를 e라고 했을 때
그 값이 mouseenter일 경우 mouseleave일 경우를 구분하기 위해 사용했습니다.
반응형