2025 / 02 / 20
오늘 수업 시간에는 jQuery 이벤트 함수와 애니메이션을 배웠습니다.
매번 CSS로 애니메이션을 처리하던 저로써는 조금 신기하기도 했습니다.
이벤트 함수와 애니메이션에 대해 제가 이해한 내용을 바탕으로 포스팅하겠습니다.
이벤트 처리
- 웹 페이지에서 사용자의 동작을 감지하고, 반응을 하게 만드는 것을 의미합니다.
- click 이벤트는 사용자가 버튼이나 링크 등을 클릭했을 때 발생합니다.
- jQuery에서는 on( ) 메서드를 사용해 이벤트를 처리할 수 있습니다.
$("#btnClick").on("click", () => {
alert("버튼이 클릭되었습니다.");
});
- dblclick 이벤트는 사용자가 요소를 더블 클릭했을 때 발생합니다.
- 마우스를 두 번 클릭한 동작을 감지할 수 있습니다.
$("#btnDblClick").on("dblclick", () => {
alert("더블 클릭되었습니다.");
});
- keyup 이벤트는 사용자가 키보드에서 키를 눌렀다가 땔 때 발생합니다.
- 입력창에서 사용자의 입력을 실시간으로 감지할 때 유용합니다.
$("#inputKeyup").on("keyup", function() {
const inputValue = $(this).val();
$("#resultKeyup").text(inputValue);
});
<span> 태그에 표시합니다.
- 사용자가 입력값을 변경한 후, 해당 요소에서 포커스를 읽었을 때 발생합니다.
- 주로
<select>,<input>,<textarea>등의 요소에서 사용됩니다.
$("#selectChange").on("change", function () {
const selectedValue = $(this).val();
alert("선택한 내용 : " + selectedValue);
});
- focus 이벤트는 입력 요소에 포커스가 갔을 때 발생합니다.
- blur 이벤트는 포커스가 벗어났을 때 발생합니다.
- 주로 사용자 경험을 개선하기 위한 스타일링이나 동작에 사용됩니다.
$("#inputFocusBlur").on("focus", function () {
$(this).css("background-color", "lightblue");
});
$("#inputFocusBlur").on("blur", function () {
$(this).css("background-color", "");
});
- submit 이벤트는 사용자가 폼을 제출할 때 발생합니다.
- 폼이 제출될 때 페이지가 새로 고침되는 기본 동작을 막고, 추가적인 처리를 할 수 있습니다.
$("#formSubmit").on("submit", function (e) {
e.preventDefault(); // 기본 폼 제출 동작 방지
const input_value = $("#inputSubmit").val();
alert("전송되었습니다. 값 : " + input_value);
$("#inputSubmit").val(""); // 입력값 초기화
});
- 이벤트가 발생한 요소에서 부모 요소로 전판되는 현상입나디.
- 이벤트 버블링을 방지하기 위해서는
stopPropagation( )메서드를 사용할 수 있습니다.
$("#outer").on("click", () => {
alert("outer 클릭");
});
$("#middle").on("click", (e) => {
alert("middle 클릭");
e.stopPropagation(); // 부모 요소로 전파되지 않도록 막음
});
$("#inner").on("click", (e) => {
alert("inner 클릭");
e.stopPropagation();
});
- 웹 페이지에서 애니메이션을 사용하면 사용자 경험을 향상시킬 수 있습니다.
- jQuery를 사용하면 다양한 애니메이션 효과를 간단하게 적용할 수 있습니다.
show( ), hide( ), toggle( )
- 요소를 보이거나 숨길 때 사용합니다.
- 애니메이션 효과를 주어 요소가 서서히 나타나거나 사라지게 할 수 있습니다.
show( )
- 요소를 서서히 보이게 합니다.
hide( )
- 요소를 서서히 숨깁니다.
toggle( )
- 요소의 상태를 전환합니다.
- 보이면 숨기고, 숨겨지면 보이게 됩니다.
$("#btnShow").on("click", () => {
$("#boxToggle").show(500); // 0.5초 동안 요소를 보이게 합니다.
});
$("#btnHide").on("click", () => {
$("#boxToggle").hide(500); // 0.5초 동안 요소를 숨깁니다.
});
$("#btnToggle").on("click", () => {
$("#boxToggle").toggle(500); // 요소의 보임/숨김 상태를 전환합니다.
});
fadeIn( ), fadeOut( ), fadeToggle( ), fadeTo( )
- fade 계열 메서드는 요소의 투명도를 조절하여 서서히 나타나거나 사라지는 효과를 만듭니다.
fadeIn( )
- 요소를 서서히 나타나게 합니다.
fadeOut( )
- 요소를 서서히 사라지게 합니다.
fadeToggle( )
- 요소를 나타나거나 사라지게 합니다.
fadeTo( )
- 요소의 투명도를 특정 값으로 변경합니다.
$("#btnFadeIn").on("click", () => {
$("#boxFade").fadeIn(1000); // 1초 동안 요소가 서서히 나타납니다.
});
$("#btnFadeOut").on("click", () => {
$("#boxFade").fadeOut(1000); // 1초 동안 요소가 서서히 사라집니다.
});
$("#btnFadeToggle").on("click", () => {
$("#boxFade").fadeToggle(1000); // 상태에 따라 나타나거나 사라집니다.
});
$("#btnFadeTo").on("click", () => {
$("#boxFade").fadeTo(1000, 0.5); // 1초 동안 투명도를 50%로 변경합니다.
});
slideDown( ), slideUp( ), slideToggle( )
- slide 계열 메서드는 요소가 위에서 아래로 또는 아래에서 위로 슬라이드하는 효과를 만듭니다.
- 이 효과는 주로 메뉴가 펼쳐지거나 접힐 때 사용됩니다.
slideDown( )
- 요소를 아래로 펼칩니다.
slideUp( )
- 요소를 위로 접습니다.
slideToggle( )
- 요소의 펼침/접힘 상태를 전환합니다.
$("#btnSlideDown").on("click", () => {
$("#boxSlide").slideDown(500); // 0.5초 동안 요소가 아래로 펼쳐집니다.
});
$("#btnSlideUp").on("click", () => {
$("#boxSlide").slideUp(500); // 0.5초 동안 요소가 위로 접힙니다.
});
$("#btnSlideToggle").on("click", () => {
$("#boxSlide").slideToggle(500); // 상태에 따라 펼쳐지거나 접힙니다.
});
slideDown( ), slideUp( ), slideToggle( )
- animate( ) 메서드는 CSS 속성을 직접 애니메이션화할 수 있는 기능을 제공합니다.
- 요소의 위치나 크기, 색상 등 여러 속성을 애니메이션으로 변화시킬 수 있습니다.
$("#btnAnimate").on("click", () => {
$("#moveBox").animate({ left: "+=100px" }, 500);
// 0.5초 동안 박스를 오른쪽으로 100px 이동시킵니다.
});
slideDown( ), slideUp( ), slideToggle( )
- stop() 메서드는 현재 실행 중인 애니메이션을 중단시키는 기능을 제공합니다.
- 이 메서드는 애니메이션이 여러 번 중첩될 때 유용합니다.
$("#btnMoveAgain").on("click", () => {
$("#stopBox").animate({ left: "300px", height: "150px", width: "150px" }, 2000); // 2초 동안 애니메이션
});
$("#btnStop").on("click", () => {
$("#stopBox").stop(); // 애니메이션을 즉시 중단합니다.
});
32일차 후기
- 자바스크립트가 어렵다고 느껴지기도 했어서 매번 CSS로 애니메이션을 구현했는데.. 생각보다 어렵지 않았고, 제이쿼리로는 두 줄 정도로 끝나니까.. 좀 허무했습니다.
- 그래도 뭔가.. CSS가 정이 가서 그런지 좋은 것 같습니다.
- 시간이 남으면 CSS로 하고 급하면 제이쿼리로 해야겠습니다!! (。˃ ᵕ ˂ )b
- CSS 애니메이션 부분을 공부했어서 그런지 딱히 어려운 점은 없습니다!
- 여러가지 애니메이션이 적용된 홈페이지를 만들어 보고 싶습니다. ദ്ദി ´ᵕ`๑)و♡