SlideShare a Scribd company logo
1 of 15
impress.js 이용하기
impress.js?


브라우저만 있으면 화려한 프리젠테이션을 할 수 있습니다.

최신 브라우저의 CSS 기능 이용합니다.

 prezi 와 유사한 형태의 프리젠테이션을 할 수 있습니다.
impress.js ?


 impress.js 도구일뿐 멋진 프리젠테이션을 보장하지 않습니다.

 좋은 컨텐트를 만들세요.

 스터디에서는 책 내용을 잘 정리하는 것이 중요하겠죠.
impress.js 사용법


https://github.com/
bartaz/impress.js/ 에서
다운로드합니다.

                         다운로드하려면
                        여기를 클릭하세요
impress.js 구성


웹브라우저에서 동작하므로
html 파일, impress.js, css파일
이 필요합니다.
impress.js 수정전


발표할 컨텐츠를 준비하세요.

먼저 전체 레이아웃을 결정하세요.
html 파일 수정

<html lang="en">

<head>
  <meta charset="utf-8" />
  <meta name="viewport" content="width=1024" />
  <meta name="apple-mobile-web-app-capable"
content="yes" />


  <link href="http://fonts.googleapis.com/css?
family=Open+Sans:regular,semibold,italic,italicsemibold|
PT+Sans:400,700,400italic,700italic|PT+Serif:
400,700,400italic,700italic" rel="stylesheet" />

  <link href="css/impress-demo.css" rel="stylesheet" />

</head>
<body class="impress-not-supported">

<div class="fallback-message">                    지원되지 않는 브라우저에
   <p>Your browser <b>doesn't support the
features required</b> by impress.js, so you         메시지를 남깁니다.
are presented with a simplified version of this
presentation.</p>                                   자바스크립트에서
   <p>For the best experience please use the
latest <b>Chrome</b>, <b>Safari</b> or                처리되지만
<b>Firefox</b> browser.</p>
</div>                                             명시적으로 작성합니다.
<div id="impress">
  <div id="bored" class="step slide" data-
x="-1000" data-y="-1500">
     <q>Aren't you just <b>bored</b> with all
                                                  프리젠테이션 div 태그,
those slides-based presentations?</q>
  </div>                                          impress id로 구성됩니다.
                    :
                    :
                    :
  <div id="overview" class="step" data-x="3000"   각 스텝 div는 id, class, x,
data-y="1500" data-scale="10">
  </div>                                          y,... 속성을 가집니다.
</div>
지원 속성

                                                     data-x,y,z 는 좌표. 픽셀단위,
<div id="title" class="step" data-x="0" data-y="0"
data-scale="4">
                                                     디폴트 0.
                      :
</div>
                                                     data-rotate-x, rotate-y,rotate-z
<div id="its" class="step" data-x="850" data-        는 회전각도, (+:CW, -:CCW)
y="3000" data-rotate="90" data-scale="5">
                  :
</div>
                                                     data-scale 는 스텝의 크기. 디
                                                     폴트 1.
js 파일 개략 분석
steps = $$(".step", root);   var initStep = function ( el, idx ) {
steps.forEach( initStep );   
 var data = el.dataset,
                             
 
      step = {
                             
 
      
    translate: {
                             
 
      
    
    x: toNumber(data.x),
                             
 
      
    
    y: toNumber(data.y),
                             
 
      
    
    z: toNumber(data.z)
                             
 
      
    },
                             
 
      
    rotate: {
                             
 
      
    
    x: toNumber(data.rotateX),
                             
 
      
    
    y: toNumber(data.rotateY),
                             
 
      
    
    z: toNumber(data.rotateZ || data.rotate)
                             
 
      
    },
                             
 
      
    scale: toNumber(data.scale, 1),
                             
 
      
    el: el
                             
 
      };
                             
                             
 if ( !el.id ) {
                             
 
      el.id = "step-" + (idx + 1);
                             
 }
                             
                             
 stepsData["impress-" + el.id] = step;
                             };
var goto = function ( el, duration ) {

 var step = stepsData["impress-" + el.id];


 var target = {

 
     rotate: {

 
     
   x: -step.rotate.x,              
   var zoomin = target.scale >= currentState.scale;

 
     
   y: -step.rotate.y,              

 
     
   z: -step.rotate.z               
   duration = toNumber(duration,

 
     },                                                                config.transitionDuration);

 
     translate: {                        
   var delay = (duration / 2);

 
     
   x: -step.translate.x,           

 
     
   y: -step.translate.y,           
   if (el === activeStep) {

 
     
   z: -step.translate.z            
   
      windowScale = computeWindowScale(config);

 
     },                                  
   }

 
     scale: 1 / step.scale               

 };                                        
   var targetScale = target.scale * windowScale;
// `root` is used for scaling and `canvas` for translate and rotations.
css(root, {

 transform: perspective( config.perspective / targetScale ) + scale( targetScale ),

 transitionDuration: duration + "ms",

 transitionDelay: (zoomin ? delay : 0) + "ms"
});

css(canvas, {

 transform: rotate(target.rotate, true) + translate(target.translate),

 transitionDuration: duration + "ms",

 transitionDelay: (zoomin ? 0 : delay) + "ms"
});

// store current state
currentState = target;
activeStep = el;

window.clearTimeout(stepEnterTimeout);
stepEnterTimeout = window.setTimeout(function() {

 onStepEnter(activeStep);
}, duration + delay);
배포하기

html 파일을 웹브라우저에서 보여주므로 웹서버가 필요함.

Dropbox, GitHub, Google Code

호스팅서버.

PT 하는 컴퓨터에 복사.

최신 브라우저 설치 여부 확인.

More Related Content

Similar to Impress js

3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택JinTaek Seo
 
자료구조5보고서
자료구조5보고서자료구조5보고서
자료구조5보고서KimChangHoen
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스noerror
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, ScalabilityDongwook Lee
 
R 스터디 첫번째
R 스터디 첫번째R 스터디 첫번째
R 스터디 첫번째Jaeseok Park
 
Es2015 Simple Overview
Es2015 Simple OverviewEs2015 Simple Overview
Es2015 Simple OverviewKim Hunmin
 
Python machine learning Ch.4
Python machine learning Ch.4Python machine learning Ch.4
Python machine learning Ch.4PartPrime
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차Han Sung Kim
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수NAVER D2
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1happychallenge
 
Project#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 HwpProject#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 HwpKimjeongmoo
 
5-3. html5 device access
5-3. html5 device access5-3. html5 device access
5-3. html5 device accessJinKyoungHeo
 
배워봅시다 머신러닝 with TensorFlow
배워봅시다 머신러닝 with TensorFlow배워봅시다 머신러닝 with TensorFlow
배워봅시다 머신러닝 with TensorFlowJang Hoon
 
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개beom kyun choi
 
문디 14주차 발제 scatter plot
문디 14주차 발제 scatter plot문디 14주차 발제 scatter plot
문디 14주차 발제 scatter plotMin Jeong Cho
 
R 스터디 네번째
R 스터디 네번째R 스터디 네번째
R 스터디 네번째Jaeseok Park
 
[문디 10주차] d3.js 상호작용
[문디 10주차] d3.js  상호작용[문디 10주차] d3.js  상호작용
[문디 10주차] d3.js 상호작용YooDuck Hwang
 

Similar to Impress js (20)

Python
PythonPython
Python
 
3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택3ds maxscript 튜토리얼_20151206_서진택
3ds maxscript 튜토리얼_20151206_서진택
 
자료구조5보고서
자료구조5보고서자료구조5보고서
자료구조5보고서
 
NDC11_슈퍼클래스
NDC11_슈퍼클래스NDC11_슈퍼클래스
NDC11_슈퍼클래스
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, Scalability
 
Scalability
ScalabilityScalability
Scalability
 
R 스터디 첫번째
R 스터디 첫번째R 스터디 첫번째
R 스터디 첫번째
 
Es2015 Simple Overview
Es2015 Simple OverviewEs2015 Simple Overview
Es2015 Simple Overview
 
Python machine learning Ch.4
Python machine learning Ch.4Python machine learning Ch.4
Python machine learning Ch.4
 
파이썬 스터디 2주차
파이썬 스터디 2주차파이썬 스터디 2주차
파이썬 스터디 2주차
 
[115] clean fe development_윤지수
[115] clean fe development_윤지수[115] clean fe development_윤지수
[115] clean fe development_윤지수
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
Project#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 HwpProject#5 최단거리 찾기 D0 Hwp
Project#5 최단거리 찾기 D0 Hwp
 
Pair RDD - Spark
Pair RDD - SparkPair RDD - Spark
Pair RDD - Spark
 
5-3. html5 device access
5-3. html5 device access5-3. html5 device access
5-3. html5 device access
 
배워봅시다 머신러닝 with TensorFlow
배워봅시다 머신러닝 with TensorFlow배워봅시다 머신러닝 with TensorFlow
배워봅시다 머신러닝 with TensorFlow
 
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
옛날 웹 개발자가 잠깐 맛본 Vue.js 소개
 
문디 14주차 발제 scatter plot
문디 14주차 발제 scatter plot문디 14주차 발제 scatter plot
문디 14주차 발제 scatter plot
 
R 스터디 네번째
R 스터디 네번째R 스터디 네번째
R 스터디 네번째
 
[문디 10주차] d3.js 상호작용
[문디 10주차] d3.js  상호작용[문디 10주차] d3.js  상호작용
[문디 10주차] d3.js 상호작용
 

More from Kyungryul KIM

전문검색기술도전
전문검색기술도전전문검색기술도전
전문검색기술도전Kyungryul KIM
 
Nib_NSWindowController
Nib_NSWindowControllerNib_NSWindowController
Nib_NSWindowControllerKyungryul KIM
 
서버인프라를지탱하는기술5 1 2
서버인프라를지탱하는기술5 1 2서버인프라를지탱하는기술5 1 2
서버인프라를지탱하는기술5 1 2Kyungryul KIM
 
Chaper24 languages high_and_low
Chaper24 languages high_and_lowChaper24 languages high_and_low
Chaper24 languages high_and_lowKyungryul KIM
 
Ch22 운영체제
Ch22 운영체제Ch22 운영체제
Ch22 운영체제Kyungryul KIM
 

More from Kyungryul KIM (20)

Ch4 pugixml
Ch4 pugixmlCh4 pugixml
Ch4 pugixml
 
Node ch12
Node ch12Node ch12
Node ch12
 
11.scripting
11.scripting11.scripting
11.scripting
 
32 osx app_release
32 osx app_release32 osx app_release
32 osx app_release
 
Meteor ddp
Meteor ddpMeteor ddp
Meteor ddp
 
Cocos2dx 7.1-7.2
Cocos2dx 7.1-7.2Cocos2dx 7.1-7.2
Cocos2dx 7.1-7.2
 
Cocos2 d x-7.3_4
Cocos2 d x-7.3_4Cocos2 d x-7.3_4
Cocos2 d x-7.3_4
 
Cocos2d x-ch5-1
Cocos2d x-ch5-1Cocos2d x-ch5-1
Cocos2d x-ch5-1
 
Coco2d x
Coco2d xCoco2d x
Coco2d x
 
23 drag drop
23 drag drop23 drag drop
23 drag drop
 
Hadoop ch5
Hadoop ch5Hadoop ch5
Hadoop ch5
 
전문검색기술도전
전문검색기술도전전문검색기술도전
전문검색기술도전
 
Nib_NSWindowController
Nib_NSWindowControllerNib_NSWindowController
Nib_NSWindowController
 
Dsas
DsasDsas
Dsas
 
서버인프라를지탱하는기술5 1 2
서버인프라를지탱하는기술5 1 2서버인프라를지탱하는기술5 1 2
서버인프라를지탱하는기술5 1 2
 
Chaper24 languages high_and_low
Chaper24 languages high_and_lowChaper24 languages high_and_low
Chaper24 languages high_and_low
 
Ch22 운영체제
Ch22 운영체제Ch22 운영체제
Ch22 운영체제
 
Mibis ch20
Mibis ch20Mibis ch20
Mibis ch20
 
Mibis ch15
Mibis ch15Mibis ch15
Mibis ch15
 
Mibis ch8
Mibis ch8Mibis ch8
Mibis ch8
 

Impress js

  • 2. impress.js? 브라우저만 있으면 화려한 프리젠테이션을 할 수 있습니다. 최신 브라우저의 CSS 기능 이용합니다. prezi 와 유사한 형태의 프리젠테이션을 할 수 있습니다.
  • 3. impress.js ? impress.js 도구일뿐 멋진 프리젠테이션을 보장하지 않습니다. 좋은 컨텐트를 만들세요. 스터디에서는 책 내용을 잘 정리하는 것이 중요하겠죠.
  • 5. impress.js 구성 웹브라우저에서 동작하므로 html 파일, impress.js, css파일 이 필요합니다.
  • 6. impress.js 수정전 발표할 컨텐츠를 준비하세요. 먼저 전체 레이아웃을 결정하세요.
  • 7.
  • 8. html 파일 수정 <html lang="en"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=1024" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <link href="http://fonts.googleapis.com/css? family=Open+Sans:regular,semibold,italic,italicsemibold| PT+Sans:400,700,400italic,700italic|PT+Serif: 400,700,400italic,700italic" rel="stylesheet" /> <link href="css/impress-demo.css" rel="stylesheet" /> </head>
  • 9. <body class="impress-not-supported"> <div class="fallback-message"> 지원되지 않는 브라우저에 <p>Your browser <b>doesn't support the features required</b> by impress.js, so you 메시지를 남깁니다. are presented with a simplified version of this presentation.</p> 자바스크립트에서 <p>For the best experience please use the latest <b>Chrome</b>, <b>Safari</b> or 처리되지만 <b>Firefox</b> browser.</p> </div> 명시적으로 작성합니다.
  • 10. <div id="impress"> <div id="bored" class="step slide" data- x="-1000" data-y="-1500"> <q>Aren't you just <b>bored</b> with all 프리젠테이션 div 태그, those slides-based presentations?</q> </div> impress id로 구성됩니다. : : : <div id="overview" class="step" data-x="3000" 각 스텝 div는 id, class, x, data-y="1500" data-scale="10"> </div> y,... 속성을 가집니다. </div>
  • 11. 지원 속성 data-x,y,z 는 좌표. 픽셀단위, <div id="title" class="step" data-x="0" data-y="0" data-scale="4"> 디폴트 0. : </div> data-rotate-x, rotate-y,rotate-z <div id="its" class="step" data-x="850" data- 는 회전각도, (+:CW, -:CCW) y="3000" data-rotate="90" data-scale="5"> : </div> data-scale 는 스텝의 크기. 디 폴트 1.
  • 12. js 파일 개략 분석 steps = $$(".step", root); var initStep = function ( el, idx ) { steps.forEach( initStep ); var data = el.dataset, step = { translate: { x: toNumber(data.x), y: toNumber(data.y), z: toNumber(data.z) }, rotate: { x: toNumber(data.rotateX), y: toNumber(data.rotateY), z: toNumber(data.rotateZ || data.rotate) }, scale: toNumber(data.scale, 1), el: el }; if ( !el.id ) { el.id = "step-" + (idx + 1); } stepsData["impress-" + el.id] = step; };
  • 13. var goto = function ( el, duration ) { var step = stepsData["impress-" + el.id]; var target = { rotate: { x: -step.rotate.x, var zoomin = target.scale >= currentState.scale; y: -step.rotate.y, z: -step.rotate.z duration = toNumber(duration, }, config.transitionDuration); translate: { var delay = (duration / 2); x: -step.translate.x, y: -step.translate.y, if (el === activeStep) { z: -step.translate.z windowScale = computeWindowScale(config); }, } scale: 1 / step.scale }; var targetScale = target.scale * windowScale;
  • 14. // `root` is used for scaling and `canvas` for translate and rotations. css(root, { transform: perspective( config.perspective / targetScale ) + scale( targetScale ), transitionDuration: duration + "ms", transitionDelay: (zoomin ? delay : 0) + "ms" }); css(canvas, { transform: rotate(target.rotate, true) + translate(target.translate), transitionDuration: duration + "ms", transitionDelay: (zoomin ? 0 : delay) + "ms" }); // store current state currentState = target; activeStep = el; window.clearTimeout(stepEnterTimeout); stepEnterTimeout = window.setTimeout(function() { onStepEnter(activeStep); }, duration + delay);
  • 15. 배포하기 html 파일을 웹브라우저에서 보여주므로 웹서버가 필요함. Dropbox, GitHub, Google Code 호스팅서버. PT 하는 컴퓨터에 복사. 최신 브라우저 설치 여부 확인.

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n