SlideShare a Scribd company logo
1 of 30
Download to read offline
ch.10 상호작용
d3.js Moon.D
d3.js Moon.D
• Mouseover
• 정렬
• Tooptip
오늘의 공부
Mouseover
d3.js Moon.D
d3.js Moon.D
hover practice.html
d3.js Moon.D
CSS hover
<style type="text/css">
rect:hover {
fill: orange;
}
</style>
d3.js Moon.D
mouseover practice.html
d3.js Moon.D
.on(“mouseover”)
.on("mouseover", function() {
d3.select(this)
.attr("fill", "orange");
});
this : 작업중인 문서요소
이벤트 명 실행할 함수
d3.js Moon.D
.on(“mouseout”)
.on("mouseout", function(d) {
d3.select(this)
.attr("fill", "rgb(0, 0, " + (d * 10) + ")");
});
d3.js Moon.D
text 위에서 작동하지 않는다
d3.js Moon.D
text 위 작동해결
<style type="text/css">
svg text {
pointer-events: none;
}
</style>
Sort
d3.js Moon.D
d3.js Moon.D
sort practice.html
d3.js Moon.D
sortBars()
d3.select(“p")
.on("click", function() {
sortBars();
});
“p”를 클릭하면 다음의 함수를 실행한다
d3.js Moon.D
var sortBars = function() {
svg.selectAll("rect")
.sort(function(a, b) {
return d3.ascending(a, b);
})
.transition()
.duration(1000)
.attr("x", function(d, i) {
return xScale(i);
});
// 모든 rect를 선택한다
d3.js Moon.D
.sort(function(a, b) {
return d3.ascending(a, b);
})
sort() 데이터 값을 기반으로 재정렬
//(a, b) 코딩 관습
d3.ascending(a, b) 비교 함수
• 값이 큰 쪽을 내보냄
• 모든 데이터 에서 순회
d3.js Moon.D
svg.selectAll("rect")
.sort(function(a, b) {
return d3.ascending(a, b);
})
.transition()
.duration(1000)
.attr("x", function(d, i) {
return xScale(i)+ xScale.rangeBand() / 2;;
});
// 모든 text(라벨)를 선택한다
라벨도 정렬하자
d3.js Moon.D
p 문서요소를 클릭해보자
반대방향 정렬도 해보자
d3.js Moon.D
d3.js Moon.D
var sortOrder = false;
var sortBars = function() {
sortOrder = !sortOrder;
svg.selectAll("rect")
.sort(function(a, b) {
if (sortOrder) {
return d3.ascending(a, b);
} else {
return d3.descending(a, b);
}
})
// 블리언 변수 : 차트의 현재 상태를 기억
// 클릭할때마다 false - true 로 번갈아 바뀐다
// sortOrder = true 일때
// sortOrder = false 일때
Tooltip
d3.js Moon.D
1. “title” 메서드
2. SVG
3. HTML
d3.js Moon.D
tooltip practice.html
d3.js Moon.D
.append(“title”)
.append(“title”)
.text(function(d) {
return d
});
//tooltip 메서드
d3.js Moon.D
SVG Tooltip
d3.js Moon.D
SVG로 Tooltip만들기
패쓰!
d3.js Moon.D
HTML Tooltip
d3.js Moon.D
div_tooltip.html
d3.js Moon.D
1. HTML div 생성
<div id="tooltip" class="hidden">
<p><strong>아래에 라벨이 표시됩니다.</strong></p>
<p><span id="value">100</span>%</p>
</div>
d3.js Moon.D
2. CSS 추가
absolute 일 때 위치를 완벽히 제어 가능
d3.js Moon.D
3. .on() 수정
여러분 마음 알아요 ...
d3.js Moon.D

More Related Content

Viewers also liked

제2회 hello world 오픈세미나 hello world-raphael차트
제2회 hello world 오픈세미나 hello world-raphael차트제2회 hello world 오픈세미나 hello world-raphael차트
제2회 hello world 오픈세미나 hello world-raphael차트
NAVER D2
 
P 회사소개서
P 회사소개서P 회사소개서
P 회사소개서
Gorae Ahn
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
Tai Hoon KIM
 

Viewers also liked (20)

D3.js workshop
D3.js workshopD3.js workshop
D3.js workshop
 
꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며꿈꾸는 데이터 디자이너 1기를 끝내며
꿈꾸는 데이터 디자이너 1기를 끝내며
 
R 2주차 matrix : factor
R 2주차 matrix : factorR 2주차 matrix : factor
R 2주차 matrix : factor
 
[week12] D3.js_Basic
[week12] D3.js_Basic[week12] D3.js_Basic
[week12] D3.js_Basic
 
Drawing with data
Drawing with dataDrawing with data
Drawing with data
 
D3.js
D3.jsD3.js
D3.js
 
[Week13] D3.js_Bar Chart
[Week13] D3.js_Bar Chart[Week13] D3.js_Bar Chart
[Week13] D3.js_Bar Chart
 
꿈꾸는 데이터 디자이너 시즌2 교육설명회
꿈꾸는 데이터 디자이너 시즌2 교육설명회꿈꾸는 데이터 디자이너 시즌2 교육설명회
꿈꾸는 데이터 디자이너 시즌2 교육설명회
 
꿈데디 D3.js강의 6주차
꿈데디 D3.js강의 6주차꿈데디 D3.js강의 6주차
꿈데디 D3.js강의 6주차
 
[Week14] D3.js_Scale and Axis (보충자료)
[Week14] D3.js_Scale and Axis (보충자료)[Week14] D3.js_Scale and Axis (보충자료)
[Week14] D3.js_Scale and Axis (보충자료)
 
[week16] D3.js_Transition
[week16] D3.js_Transition[week16] D3.js_Transition
[week16] D3.js_Transition
 
[Week12] D3.js_Basic2
[Week12] D3.js_Basic2[Week12] D3.js_Basic2
[Week12] D3.js_Basic2
 
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
『풀스택 개발자를 위한 MEAN 스택 입문』 - 미리보기
 
정규표현식 Regular expression (regex)
정규표현식 Regular expression (regex)정규표현식 Regular expression (regex)
정규표현식 Regular expression (regex)
 
[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart
 
제2회 hello world 오픈세미나 hello world-raphael차트
제2회 hello world 오픈세미나 hello world-raphael차트제2회 hello world 오픈세미나 hello world-raphael차트
제2회 hello world 오픈세미나 hello world-raphael차트
 
초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)
초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)
초보자를 위한 정규 표현식 가이드 (자바스크립트 기준)
 
P 회사소개서
P 회사소개서P 회사소개서
P 회사소개서
 
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
[ 하코사세미나] 의외로 쉬운 D3 그래프 퍼블리싱
 
JavaScript MEAN 스택
JavaScript MEAN 스택JavaScript MEAN 스택
JavaScript MEAN 스택
 

Similar to [문디 10주차] d3.js 상호작용

Similar to [문디 10주차] d3.js 상호작용 (19)

웹개발자가 알아야할 기술
웹개발자가 알아야할 기술웹개발자가 알아야할 기술
웹개발자가 알아야할 기술
 
3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택
 
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스
 
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
[XECon+PHPFest 2014] jQuery 개발자에서 AngularJS 개발자 되기
 
HeadFisrt Servlet&JSP Chapter 2
HeadFisrt Servlet&JSP Chapter 2HeadFisrt Servlet&JSP Chapter 2
HeadFisrt Servlet&JSP Chapter 2
 
Mongo db 최범균
Mongo db 최범균Mongo db 최범균
Mongo db 최범균
 
Impress js
Impress jsImpress js
Impress js
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수
 
Nexacro
NexacroNexacro
Nexacro
 
안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트안드로이드 개발자를 위한 스위프트
안드로이드 개발자를 위한 스위프트
 
Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나Front-end Development Process - 어디까지 개선할 수 있나
Front-end Development Process - 어디까지 개선할 수 있나
 
DEVIEW-FULL-감독판.pptx
DEVIEW-FULL-감독판.pptxDEVIEW-FULL-감독판.pptx
DEVIEW-FULL-감독판.pptx
 
NDC11_김성익_슈퍼클래스
NDC11_김성익_슈퍼클래스NDC11_김성익_슈퍼클래스
NDC11_김성익_슈퍼클래스
 
Basic git-commands
Basic git-commandsBasic git-commands
Basic git-commands
 
자료구조02
자료구조02자료구조02
자료구조02
 
배워봅시다 머신러닝 with TensorFlow
배워봅시다 머신러닝 with TensorFlow배워봅시다 머신러닝 with TensorFlow
배워봅시다 머신러닝 with TensorFlow
 
Clean Front-End Development
Clean Front-End DevelopmentClean Front-End Development
Clean Front-End Development
 
100511 boost&tips 최성기
100511 boost&tips 최성기100511 boost&tips 최성기
100511 boost&tips 최성기
 

[문디 10주차] d3.js 상호작용