728x90
반응형
JavaScript | 단일 객체로 가져옴 this : 내 객체 하나만 |
jQuery | $(this) => 하나라도 배열 객체로 가져옴 array => 인덱스, 요소, length |
const $el = $(this);
$(this).addClass("active");
this.classList.add('active');
|
5
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <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.4/jquery.js"></script> <style> p { width: 400px; height: 90px; } #oneDiv { margin-bottom: 30px; } #oneDiv div, #twoDiv div { position: absolute; width: 400px; height: 70px; font-size: 35px; text-align: center; color: yellow; background: #333; padding-top: 25px; display: none; } /* #ondDiv div { top: 46px; left: 8px; } #twoDiv div { top: 166px; left: 8px; } */ #textAni { display: none; } </style> <script> $(function () { // fadeIn([duration][,easing][,complete]) // -선택한 요소를 서서히 나타나게 하는 기능. // duration(시간): fast(대략:200)|slow(대략:600)|숫자값 입력(1/1000초) // 입력값이 없을 경우 기본값 400으로 설정됨 // easing(모양-시간당 속도 함수값) : 'swing'(기본값)|'linear' // swing : 시작과 끝은 느리게, 중간은 빠른 속도로 default // linear : 일정한 속도로 // complete : 실행할 함수 $(".fadeIn").click(function () { $("#oneDiv div").fadeIn(2000, function () { $("#textAni").css({ backgroundColor: "#f00", color: "#fff" }); $("#textAni").fadeIn(2000); }); $("#twoDiv div").fadeIn(2000, "linear", function () { $("#textAni").css({ border: "3px solid #000" }); $("#textAni").fadeIn(2000, "linear"); }); }); $(".fadeOut").click(function () { $("#oneDiv div").fadeOut(2000, function () { $("#textAni").fadeOut(2000); }); }); $(".fadeToggle").click(function () { $("#oneDiv div").fadeToggle(2000, function () { if ($("#textAni").is(":hidden") == true) { $("#textAni").css({ backgroundColor: "#f00", color: "#fff" }); } $("#twoDiv div").fadeToggle(2000, "linear", function () { if ($("#textAni").is(":hidden") == true) { $("#textAni").css({ border: "3px dotted #f00" }); } $("#textAni").fadeToggle(2000, "linear"); }); }); }); }); </script> </head> <body> <button class="fadeIn">fade In</button> <button class="fadeOut">fade Out</button> <button class="fadeToggle">fade Toggle</button> <div id="oneDiv"> <p> 불투명도 조절. speed는 fast, normal, slow 또는 0 이상의 숫자(밀리세컨드 단위)를 설정할 수 있다. 애니메이션이 끝난 후에 실행할 함수를 지정할 수 있다. </p> <div><span>S U C C E S S !</span></div> </div> <div id="twoDiv"> <p> 불투명도 조절. speed는 fast, normal, slow 또는 0 이상의 숫자(밀리세컨드 단위)를 설정할 수 있다. 애니메이션이 끝난 후에 실행할 함수를 지정할 수 있다. </p> <div><span>S U C C E S S !</span></div> </div> <br /><br /> <div id="textAni"> <p> 불투명도 조절. speed는 fast, normal, slow 또는 0 이상의 숫자(밀리세컨드 단위)를 설정할 수 있다. 애니메이션이 끝난 후에 실행할 함수를 지정할 수 있다. </p> <div><span>S U C C E S S !</span></div> </div> </body> </html>
f
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <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.4/jquery.js"></script> <script src="https://code.jquery.com/ui/1.13.2/jquery-ui.js"></script> <style> #region { position: relative; width: 200px; height: 200px; overflow: hidden; margin: auto; /* margin: auto; 좌우정렬 */ border: 1px solid #333; } #images { width: 400px; height: 200px; } #images a img { width: 200px; height: 200px; border: 0; position: relative; } #direction { width: 350px; margin: auto; } .leftbtn { float: left; } .rightbtn { float: right; } #divPa { position: relative; height: 300px; border: 1px solid#000; } #divCh { position: absolute; top: 50px; left: 50px; width: 50px; height: 50px; border: 1px solid#000; } </style> <script> $(function () { // animate({스타일속성}, 적용시간|가속도|콜백함수) : 다양한 동작효과를 적용할 수 있다. // 스타일속성명은 -를 제외하고, 카멜기법으로 표기 $(".leftbtn").click(function (event) { $("#images").animate({ marginleft: -200 }, 1000); }); $(".rightbtn").click(function (event) { $("#images").animate({ marginleft: -0 }, 1000); }); $("#divCh").click(function () { $("#divCh") .animate({ "background-color": "red", top: 50, left: 400 }, 1000) .animate( { "background-color": "yellow", top: "150px", left: "400px" }, 1000 ) .animate( { "background-color": "blue", top: "150px", left: "50px" }, 1000 ) .animate( { "background-color": "green", top: "50px", left: "50px" }, 1000 ); }); }); </script> </head> <body> <div id="region"> <div id="images"> <a href="#"><img src="C:\hwork\img\cute_dog.jpg" /></a ><a href="#"><img src="C:\hwork\img\namu.png" /></a> </div> </div> <div id="direction"> <button class="leftbtn"><</button> <button class="rightbtn">></button> </div> <br /><br /> <div id="divPa"> <div id="divCh"></div> </div> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <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.4/jquery.js"></script> <style> .boxDiv { width: 100%; height: 100vh; background-color: rgb(20, 181, 193); } .scroll_wrap { background-color: yellow; overflow: hidden; } .scroll_on { padding: 50px 0; font-size: 24px; font-weight: 700; text-align: center; opacity: 0; transition: all 1s; } .scroll_on.active { opacity: 1 !important; transform: translate(0, 0) !important; } .scroll_on.type_top { transform: translate(0, -50px); } .scroll_on.type_bottom { transform: translate(0, 50px); } .scroll_on.type_left { transform: translate(-50px, 0); } .scroll_on.type_right { transform: translate(50px, 0); } </style> <script> $(document).ready(function () { // 클래스가 "scroll_on"인 모든 요소를 선택합니다. const $counters = $(".scroll_on"); // 노출 비율(%)과 애미네미션 반복 여부(true/false)를 설정합니다. const exposurePercentage = 100; // ex)스크롤 했을 때 $counters 컨텐츠가 화면에 100% 노출되면 숫자가 올라갑니다. const loop = true; // 애니메이션 반복 여부를 설정합니다. (true로 설정할 경우, 요소가 화면에서 사라질 때 다시 숨겨집니다.) // 윈도우의 스크롤 이벤트를 모니터합니다. $(window).on("scroll", function () { $counters.each(function () { const $el = $(this); // 요소의 위치 정보를 가져옵니다. //<div class="scroll_on">제자리에서 나타납니다.</div> const rect = $el[0].getBoundingClientRect(); $el[0].setAttribute( "style", "border:1px solid #000; background-color:red;" ); // 현재 브라우저 창의 높이 const winHeight = window.innerHeight; // 요소의 높이 const contentHeight = rect.height; // const contentHeight = rect.bottom - rect.top; // 요소가 화면에 특정 비율만큼 노출될 때 처리합니다. if ( rect.top <= winHeight - contentHeight && rect.bottom >= contentHeight ) { // el.addClass("active"); // $(this).addClass("active"); this.classList.add('active'); } // 요소가 화면에서 완전히 사라졌을 때 처리합니다. if (loop && (rect.bottom <= 0 || rect.top >= window.innerHeight)) { $el.removeClass("active"); } }); }).scroll(); }); </script> </head> <body> <div class="boxDiv"></div> <div class="scroll_wrap"> <div class="scroll_on">제자리에서 나타납니다.</div> <div class="scroll_on type_top">위에서 나타납니다.</div> <div class="scroll_on type_left">왼쪽에서 나타납니다.</div> <div class="scroll_on type_right">오른쪽에서 나타납니다.</div> <div class="scroll_on type_bottom">밑에서 나타납니다.</div> </div> <div class="boxDiv"></div> </body> </html>
728x90
반응형