팩트는 html 조작과 변경이다.
<h3 id="hello">안녕하세요</h3>
document.getElementById('hello').innerHTML = '바보';
문서를, id가 hello인 애를 읽어, 안의 html을 바보로 바꾼다.
script는 html요소들보다 아래에 있어야 한다.
긴 코드를 깔끔하게 한 단어로 축약한다.
function 알림창열기() {
document.getElementById('alert').style.display = 'block';
}
해당 function에 구멍같이 변수를 넣을 수 있다.
<div class="alert-box" id="alert">
<p id="title">Alert 박스</p>
<button onclick="닫는기능"> X </button>
</div>
<button onclick="알림창1열기('아이디입력하셈')">버튼1</button>
<button onclick="알림창1열기('비번입력하셈')">버튼2</button>
HTML 문서에서 클릭, 스크롤, 키보드입력, 드래그등을 할 수 있다.
https://developer.mozilla.org/en-US/docs/Web/Events
document.getElementById('close').addEventListener('click', function(){
document.getElementById('alert').style.display = 'none'
});
js코드를 짧게 쓸 수 있는 라이브러리
<script
src="https://code.jquery.com/jquery-3.5.1.min.js"
integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0="
crossorigin="anonymous"></script>
document.getElementsByClassName('greeting')[0].innerHTML = '안녕';
document.getElementsByClassName('greeting')[1].innerHTML = '안녕';
document.getElementsByClassName('greeting')[2].innerHTML = '안녕';
일반 js면 위에처럼 길어지지만, jQuery면 아래처럼 가능하다.
$('.greeting').html('안녕') //class ="greeting"을 다 바꿔줌
$('.greeting').eq(0).html('안녕') //그 중 처음꺼만 바꿔줌
$('.btn').on('click', function(){ 버튼누르면 실행할 코드~~ } ); //리스너를 편하게 단다.
$('.greeting').hide() //사라지기
$('.greeting').fadeOut() //서서히 보이기
$('.greeting').slideUp() //접어올리기
$('#nav-sub-button').click(function(){ //on.('click)을 click만으로 대체가능
$('.nav-sub').slideToggle(); // toggle은 버튼 누를때마다 전환
});
무조건 한글로 먼저 설계하고, 코딩하자!
//전송되는 이벤트일때,
//만약에 이메일에 빈칸이나 공백이라면,
//전송 막고, 안내문 띄움.
$('form').on('submit', function(e) {
if ($('#email').val() == '') {
e.preventDefault();
$('#email-alert').show();
}
input, select, textarea 등에 사용할 수 있는 change, input 이벤트가 있다.
1. input - 값이 바뀔때마다 실행
$('#email').on('input', function(e){
실행할 코드
});
$('#email').on('change', function(e){
실행할 코드
});
js에서 css를 조정하면서 애니메이션을 줄 수 있다.
$('#show-menu').click(function(){
$('.left-menu').animate({marginLeft : '0px'});
});
jQuery 함수를 순서대로 동작
$('.black-background').show().animate({ marginTop : '0px' }); //메소드 chaining시킨다.
각기 다른 요소를 차례로 동작
$('이 요소').animate({ width: '250px'}, 1000, function() { //세 번째 파라미터로 function(){}을 써준다.
$('저 요소').animate({ height : '500px'} });
});
$('#login').click(function() {
$('.black-background').addClass('slide-down'); //addClass()하면, 따로 만들어놓은 slide-down 클래스가 추가된다.
});