1. jQuery 시작하기
1) jQuery란?
- DOM 조작을 위해서 우리가 실제로 다뤄볼 라이브러리는 jQuery라는 라이브러리다.
- jQuery는 부트스트랩과 같은 오픈소스 라이브러리 중의 하나이다.
- jQuery는 웹페이지에 있는 내용들을 손쉽게 동적으로 조작할 수 있게 해준다.
2) DOM에 대한 이해
- DOM : Document Object Model
- Document : html이나 css를 Document(웹문서)라고 한다.
- Object : 웹 문서의 태그 하나 하나를 Object라고 한다.
- DOM이란, 이 object들을 손쉽게 조작할 수 있게 해주는 프로그래밍적 인터페이스, 프로그래밍적 수단을 말한다.
- 구조화된 계층적 구조를 계층적으로 어떻게 접근하는지, 어떻게 위치나 속성을 변경하는지를 프로그래밍으로 제공하는 여러가지 양식이나 구조들을 DOM이라고 한다.
- DOM을 제대로 활용하는 것이 바로 jQuery다.
- jQuery를 통해 화면을 손쉽게 조작할 수 있다.
3) parent / sibling / child
- body의 parent는 html
- head의 parent도 html
- body와 head는 sibling
- html의 child는 head, body
- body의 child는 div(header), div(container), div(footer)
4) jQuery 가져오기
- jQuery CDN을 head 태그 안에 import 하기
5) jQuery로 간단해지는 코드 / 장점
- $ : jQuery 함수를 담고 있는 객체.
- 예시)
1 | $('.header').css('color', 'red'); | cs |
- $('.header') : selecter, header라는 클래스를 가진 태그를 선택한다.
2. jQuery 활용 #1: DOM
1) $ : DOM 접근하기, selecter
- $('#list-item-2') : id로 접근하기
- $('.list-item') : class로 접근하기
- $('li.list-item:eq(1)') : sbling을 이용해서 접근하기, list-item 중 두 번째 아이템에 접근됨. (0부터 시작)
- $('#list-sample li:nth-child(2)') : 두 번째 li에 접근됨. (1부터 시작)
2) jQuery에서 제공하는 함수
- append : 뒤에 동적으로 추가
1 | $('#list-sample').append('<li>항목</li>'); | cs |
1 | $('#list-sample').prepend('<li>항목</li>') | cs |
1 2 | $('#list-item').text('<li>항목</li>'); $('#list-item').html('<li>항목</li>'); | cs |
1 | $('.list-item:eq(0)').remove(); | cs |
1 2 | $('.progress-bar-success').css('width','50%'); $('.list-item').css('color','red'); | cs |
1 | $('.list-sample li:eq(3)').addClass('list-item'); | cs |
1 | $('li-active').removeClass('active'); | cs |
1 | $('#img-src').attr('src', 'http://icons....'); | cs |
1 2 | var li = $('ul.navbar-nav li:eq(1)').clone(); $('ul.navbar-nav').append(li); | cs |
3. jQuery 활용 #2: Event
1 2 3 4 | function clickEvent() { alert('hello'); } $('p').click(clickEvent); | cs |
1 2 3 | $('p').click(function() { alert('hello'); }); | cs |
1 2 3 | $('p').click(function() { $(this).text('클릭됨!'); }); | cs |
1 2 3 | $('p').hover(function() { $(this).append("<span>***</span>"); }); | cs |
1 2 3 4 5 | $('p').hover(function() { $(this).append("<span>***</span>"); },function() { $(this).find("span").remove(); }); | cs |
1 2 3 | $('input').focus(function() { $(this).val('----'); //value }); | cs |
1 2 3 4 5 | $("div.overout").mouseout(function() { $("p:first", this).text("mouse out"); }).mouseover(function() { $("p:first", this).text("mouse over"); }); | cs |
1 2 3 4 5 | $("div.enterleave").mouseenter(function() { $("p:first", this).text("mouse enter"); }).mouseleave(function() { $("p:first", this).text("mouse leave"); }); | cs |
1 2 3 4 5 6 7 | $("select").change(function() { var str = ""; $("select option:selected").each(function() { str = str + $(this).text() + " "; }); $("#selected-hobby").text(str); }); | cs |
4. JavaScript 기본 타이머
1 2 3 4 5 6 7 8 9 | function onTime() { alert('실행됨'); } //setTimeout setTimeout("onTime()", 5000); //5초 후 함수 호출됨 //setInterval setInterval("onTime()", 2000); //2초마다 계속 함수가 호출됨 | cs |
- 예제)
1 2 3 4 5 6 7 8 9 10 11 12 | var n = 0; function onTime() { alert('실행됨'); n++; if(n==3) { claerInterval(timer); } } //setInterval var timer = setInterval("onTime()", 2000); | cs |
1 2 3 | $(document).ready(function() { setInterval("onTime()", 2000); }); | cs |
5. 인터렉티브 웹: jQuery UI
1 2 3 | <script type="text/javascript" src="jquery-ui/jquery-ui.min.js"></script> <link rel="stylesheet" href="jquery-ui/jquery-ui.min.css" type="text/css" /> <link rel="stylesheet" href="jquery-ui/jquery-ui.theme.min.css" type="text/css" /> | cs |
1 2 3 4 5 6 7 8 9 10 11 12 | $(document).ready(function() { var option = { monthNames: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], monthNamesShort: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], dayNames: ['일요일', '월요일', '화요일', '수요일', '목요일', '금요일', '토요일'], dayNamesShort: ['일', '월', '화', '수', '목', '금', '토'], dayNamesMin: ['일', '월', '화', '수', '목', '금', '토'], dateFormat: 'yyyy년mm월월dd일' }; $('#datepicker').datepicker(option); }); | cs |
1 2 3 | $(document).ready(function() { $('#slider').slider(); }); | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | function hexFromRGB(r, g, b) { var hex = [ r.toString(16), g.toString(16), b.toString(16) ]; $.each(hex, function(nr, val) { if(val.length === 1) { hex [nr] = "0" + val; } }); return hex.join("").toUpperCase(); } function refreshSwatch() { var red = $("#red-slider").slider("value"); var green = $("#green-slider").slider("value"); var blue = $("#blue-slider").slider("value"); hex = hexFromRGB(red, green, blue); $("#preview").css("background-color", "#"+hex); } | cs |
1 2 3 4 5 6 7 8 9 | var availables = [ 'Apple', 'Google', 'Facebook' ]; $(document).ready(function() { $("#tags").autocomplete({ source: availables }); }); | cs |
6. 인터렉티브 웹: Chart.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | var dateset = { labels: ["red", "Blue", "Yellow", "Green", "Purple", "Orange"], datasets: [{ label: 'Data', data: [12,19,3,5,2,3], backgroundColor:[ 'rgba(255, 99, 132, 0.2)', 'rgba(255, 99, 132, 0.2)', 'rgba(255, 99, 132, 0.2)', 'rgba(255, 99, 132, 0.2)', 'rgba(255, 99, 132, 0.2)', 'rgba(255, 99, 132, 0.2)' ], borderColor: [ 'rgba(255, 99, 132, 0.2)', 'rgba(255, 99, 132, 0.2)', 'rgba(255, 99, 132, 0.2)', 'rgba(255, 99, 132, 0.2)', 'rgba(255, 99, 132, 0.2)', 'rgba(255, 99, 132, 0.2)' ], borderWidth: 1 }] }; var ctx1 = document.getElementById("chart1"); var ctx2 = document.getElementById("chart2"); var ctx3 = document.getElementById("chart3"); var ctx4 = document.getElementById("chart4"); var barChart = new Chart(ctx1, { type: 'bar', data: dataset }); var lineChart = new Chart(ctx2, { type: 'line', data: dataset }); var radarChart = new Chart(ctx3, { type: 'radar', data: dataset }); var pieChart = new Chart(ctx4, { type: 'pie', data: dataset }); | cs |
'STUDY > Fullstack-Bootcamp' 카테고리의 다른 글
[풀스택 부트캠프] 섹션 7. Ruby On Rails 웹개발 - 2. Ruby의 코딩 실습 (0) | 2018.02.09 |
---|---|
[풀스택 부트캠프] 섹션 7. Ruby On Rails 웹개발 - 1. Ruby의 소개 (0) | 2018.02.08 |
[풀스택 부트캠프] 섹션 5. 자바스크립트 기본 (0) | 2018.02.03 |
[풀스택 부트캠프] 섹션 4. 웹퍼블리싱 (0) | 2018.01.31 |
[풀스택 부트캠프] 섹션 3. CSS 기초 (0) | 2018.01.26 |