1. jQuery 라이브러리 활용 방법

http://detectmobilebrowsers.com/ 에서 모바일 기기를 감지하고 소스를 다운받는다.

사이트에 접속하여 jquery 버튼을 클릭하여 소스를 다운로드 한다.

 

detectmobilebrowsers.com

jQuery 소스를 다운받고 아래와 같이 작성해본다.

<!DOCTYPE html>
<html>
<body>

<h1>Mobile test</h1>
<script src="http://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="detectmobilebrowser.js"></script>
<script>
 console.log(jQuery.browser.mobile);
 alert(jQuery.browser.mobile);
</script>

</body>
</html>

해당 파일을 저장하고 브라우저에서 콘솔화면을 확인하면 false가 나오고 경고창으로 아래와 같이 나온다.

console.log

 

호스팅 서버에 올리고 모바일 기기에서 확인해보면 아래와 같이 true로 값이 경고창으로 나온다.

 

if 조건문을 작성하여 jQuery.browser.mobile 의 값이 true 일때와 false 일때 효과등을 다르게 작성할 수 있게 되겠다.

그러면 아래와 같이 모바일 기기일때 나타날 요소를 구분할 수 있겠다.

<script>
 //console.log(jQuery.browser.mobile);
 //alert(jQuery.browser.mobile);
  if(jQuery.browser.mobile == true){
		$('.pc').css({display:'none'});
  } else {
		$('.mobile').css({display:'none'});
  }
</script>

또는 모바일 기기로 접속했다면 별도의 모바일 전용 페이지로 이동시킬수도 있다.

<script>

  if(jQuery.browser.mobile == true){
		location.href="./mobile/";
  } 
</script>

참고로 디렉토리 구조는 아래와 같다.

 

 

2. javascript - userAgent 방식 

 

javascript에서 브라우저(userAgent)를 구분하는 방식을 이용하여 아래와 같이 작성하여 모바일이라면 특정 폴더 및 파일로 연결할 수 있다.

/**
* 모바일 페이지 강제 이동
*/
//Mobile여부를 구분하기 위함
var uAgent = navigator.userAgent.toLowerCase();
// 아래는 모바일 장치들의 모바일 페이지 접속을위한 스크립트
var mobilePhones = new Array('iphone', 'ipod', 'ipad', 'android', 'blackberry', 'windows ce','nokia', 'webos', 'opera mini', 'sonyericsson', 'opera mobi', 'iemobile');
for (var i = 0; i < mobilePhones.length; i++){
  if (uAgent.indexOf(mobilePhones[i]) != -1){
    location.href="/mobile/home/main.do";
  }
};

 

3. Modernizr 활용하기

https://modernizr.com/

 

Modernizr: the feature detection library for HTML5/CSS3

What is Modernizr? It’s a collection of superfast tests – or “detects” as we like to call them – which run as your web page loads, then you can use the results to tailor the experience to the user.

modernizr.com

브라우저에서 어떤 기능들을 지원하고 지원하지 못하는지 구분하여 html 최상단에 class명으로 구분하여 주는 modernizr를 활용하여 모바일 기기를 구분할 수 있다. 특히 속성중. touch 이벤트의 지원 여부를 구분하면 된다.

CSS
.no-touchevents .box { color: red; }
.touchevents .box { color: green; }


JS
if (Modernizr.touchevents) {
  // supported
} else {
  // not-supported
}

지원하지 않는 다면 클래스명 .no-touchevents라는 이름이 html 태그에 추가되어 구분할 수 있게 도와준다.

스크립트로는 Modernizr.touchevents의 값이 true, flase일때 구분하여 스크립트를 작성하면 된다.

 

모더나이저를 사용하기 위해서는 html에서 script 소스를 아래와 같이 로드해야 한다.

 

<script src="https://cdnjs.cloudflare.com/ajax/libs/modernizr/2.8.3/modernizr.js" integrity="sha256-ffw+9zwShMev88XNrDgS0hLIuJkDfXhgyLogod77mn8=" crossorigin="anonymous"></script>

 

4. vanila javascript - window.devicePixelRatio

순수한 자바스크립트를 이용하여 구분하는 방법으로 기기의 픽셀 레티오로 모바일 기기를 구분할 수 있다. 모바일 기기들은 pc와 다르게 작은 화면에 2배 또는 4배의 픽셀을 담고 있다.

 

각 디바이스의 픽셀 레티오는 아래 사이트를 참고한다.

 

http://troy.labs.daum.net/

불러오는 중입니다...

스크립트에서 아래와 같이 입력하여 pixel ratio가 2이상이면 즉 모바일 기기이면 다른 효과 및 페이지 이동을 할 수 있게 된다. 

 

	var ratio = window.devicePixelRatio;
	
	if(ratio > 1){
		window.location.href = 'mobile-home.html';
	} 

 

반응형

footer를 하단으로 고정하는 이유는 컨텐츠의 내용이 많이 않은 경우  푸터가 콘텐츠하단으로 올라와서 아래 부분이 휑하게 비어 보기가 안 좋기 때문이다.

 

이름 막기위해서 플렉스의 크기가 만들어지는 특성을 이해하면 쉽게 구현할 수 있다. 

 

[HTML 구조]

<div class="wrapper">
	<header>header</header>
	<div class="main-content">main content</div>
	<footer>footer</footer>
</div>

[ CSS ]

html,body{
	margin:0; padding:0;
	width:100%; height:100%
}

일단 중요한 것은 HTML, BODY가 화면의 높이를 모두 사용하고 있어야 한다는 것이다.

HTML에서 WRAPPER의 높이를 아무리 100%를 주어도 WRAPPER의 부모인 HTML, BODY의 높이가 없으면 화면 높이를 모두 사용하지 못하게 된다. 이때 위와 같이 html, body에 height를 100%를 주면 클래스명 wrapper에서 height를 100%로 하면 높이를 브라우저 화면 높이를 모두 사용한다.  만약 html, body에 높이를 주지 않고 하고 싶다면 아래와 같이 wrapper에서 height를 화면(viewport)의 단위인 100vh를 사용하면 된다.

 

[ CSS ]

.wrapper{
	display: flex;
	min-height: 100vh;
	flex-direction: column;
}

.wrapper가 화면을 모두 사용하고 .wrapper안의 첫번째 요소들 즉, header, div, footer 요소들의 정렬을 주축의 방향을 세로로 하는 방식 즉 가로가 아닌 세로로 배열이 되도록 한다.

 

flex layout의 기본축 주축, 교차축.

flex-direction:row(기본값) => 기본값, 박스를 왼쪽에서 오른쪽을 배치, 주축은 가로, 교차축은 세로가 된다.

flex-direction:column => 박스를 위에서 아래로 배치. 주축은 세로 교차축은 가로가 된다. (위 그림을 90도 회전한 것이라 생각하면 된다.)

 

[ CSS ]

.main-content{
	flex: 1;
}

footer{
	height:60px;
	background: #333;
	color:#fff;
}

핵심은 가운데 영역인 main-content 부분의 크기를 넘치는 속성을 줄이는 속성1, 모자른 속성을 채우는 속성1, 해당 속성을 유지하는 속성 0, flex: 1 1 0을 준다. 줄여서 flex : 1이라고만 하면 된다.

그러면 가운데 영역이 헤더와 푸터를 제외한 나머지 공간을 모두 사용하게되어 결국 푸터가 하단으로 밀리게 된다.

 

[ 완성본 ]

 

See the Pen fixed footer v2 - flexbox by Alikerock (@alikerock) on CodePen.

반응형

'Web Publishing > HTML&CSS' 카테고리의 다른 글

모바일 기기 감지하는 4가지 방법  (0) 2019.06.25
다음 daum Map API 활용하기  (0) 2019.04.29
네이버 맵 API 사용하기  (0) 2019.04.29

카카오 개발자 주소.

https://developers.kakao.com/

 

가이드

http://apis.map.daum.net/web/guide/



카카오 맵사용을 위해서는 api key를 발급 받아야 합니다.

1. 카카오 개발자사이트 (https://developers.kakao.com) 접속

2. 개발자 등록 및 앱 생성

3. 웹 플랫폼 추가: 앱 선택 – [설정] – [일반] – [플랫폼 추가] – 웹 선택 후 추가

4. 사이트 도메인 등록: [웹] 플랫폼을 선택하고, [사이트 도메인] 을 등록합니다. (예: http://localhost:8080)

5. 페이지 상단의 [JavaScript 키]를 지도 API의 appkey로 사용합니다.

 

카카오 개발자 사이트에서는 아래와 같이 다양한 API를 제공하는데 일단 지도 API를 사용해 보고자 한다.



01. 개발자 계정 만들기

카카오 계정으로 로그인 한다.

02. 앱 만들기

구분할 수 있는 이름을 입력하고 ‘앱 만들기’를 클릭하고 구분할 수 있는 이름을 입력합니다.

 

 

앱 아이콘 확인

별도의 아이콘등으로 수정하지 않아도 되면 ‘계속 진행’ 한다.

 

03. 플랫폼 설정하기
앱정보 설정에서 지도를 사용하려는 플랫폼을 설정합니다.

 

 

 

플랫폼 추가를 클릭하고 웹을 선택한후 사이트 도메인에 주소를 입력합니다.



사용하려는 Javascript 키를 복사해 놓습니다.



04. 샘플에서 지도 선택하기

 

http://apis.map.daum.net/web/sample/


샘플에클릭하고 원하는 형식의 지도를 선택합니다.

 

 

 

지도로 이동후 샘플을 클릭하여 다음에서 제공하는 지도 샘플을 확인합니다.

 

기본적인 지도 사용은 지도생성하기를 클릭하면 확인할 수 있습니다.

 

05. 선택한 샘플에서 API KEY 입력하기

 

모든 샘플마다 javascript와 html를 제공함으로 원하는 형식의 코드를 사용합니다.

샘플을 선택했으면 샘플 코드에서 발급받은 키를 입력합니다.

 

 

 

06. 다음지도를 원하는 위치로 설정하기

 

특정위치로 설정하기 위해서는 위도와 경도를 입력해야 합니다.

http://map.google.com 에서 구글맵을 사용하여 위치를 검색합니다. 예제로 신촌역을 검색했습니다.

상단 주소에 위도와 경도가 나오는 것을 확인하고 복사합니다.

 

또는 검색후 아이콘에서 마우스 우클릭후 이곳이 궁금한가요?를 클릭하면 하단에 위도와 경도를 출력해줍니다.

 

 

찾아낸 위도와 경도를 지도의 중심좌표부분에 입력합니다.

 

 

입력후의 다음 지도의 화면입니다.

 

07. 다음 맵의 표현 > 특정위치에 인포창 표시하기

 

http://apis.map.daum.net/web/sample/markerWithInfoWindow/

 

Daum 지도 API

Daum 지도 API를 이용해보세요. 다양한 샘플과 상세한 매뉴얼로 개발자분들의 시간을 아껴드리겠습니다!

apis.map.daum.net

 

 

sample page 코드 복사후 예제 파일에 붙여넣고 인포윈도우에 표출될 내용부부분에 원하는 HTML코드를 추가합니다.


FPT에 업로드하고 주소를 접속해본다.


08. 다음 맵의 표현 > 기본 컨트롤 보이기

http://apis.map.daum.net/web/sample/addMapControl/

마찬가지 소스를 복사하고 api 코드와 좌표를 적용하면 웹페이제엇 확인할 수 있다.

 

반응형

API(Application Programming Interface)

응용 프로그램 프로그래밍 인터페이스

 

응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

 

웹 API

웹 애플리케이션 개발에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 명세

 

예), 블로그 API, 우체국의 우편번호 API, 구글과 네이버의 지도 API, 카카오 스토리

 

홈페이지 구축이나 추가개편 시 따로 추가로 개발하지 않고 이런 오픈 api를 가져와 사용하는 추세

 

2018년 11월 13일부로 이전의 API 키호출 방식의 네이버 Map 서비스는 종료

 

네이버 클라우드 플랫폼 > Enterprise API 출시일 : 2018년 11월 13일

플랫폼 : 개발자센터 -> 네이버 클라우드 플랫폼(https://www.ncloud.com/)에서 신규 계정을 발급받아 지도 Enterprise API 사용 가능


NAVER map Api v3  

 

NAVER map Api v3  https://www.ncloud.com


회원가입 > 인증.


 

제품에서 Maps 선택

 

이용신청하기



하단에 application 등록 선택

 

Application 이름 입력

 

서비스중 원하는 지도 형태 선택

 

서비스환경에 지도를 사용할 곳의 웹 주소를 입력

등록된 상태 (6,000,000회까지는 무료)

 

개발가이드 확인하기

 

왼쪽 메뉴중 Web Dynamic Map 선택 / v3사이트 바로가기 클릭

https://navermaps.github.io/maps.js.ncp/

 

시작하기 클릭



필요한 코드를 복사한다.

 

 

네이버 지도를 로드하기 위한 필수 코드로서 중간에 YOUR_CLIENT_ID 부분이 어플리케이션 등록후에 나오는 코드를 넣는 곳이다.

  1. 실제 지도가 나타날 위치

  2. 네이버에서 제공하는 지도 예제의 코드 (현재는 기본 좌표와 줌의 정도)



클라이언트 아이디 확인하기

CONSOLE 링크 클릭


1.왼쪽메뉴에서 NAVER API클릭/ 2. 등록한 어플리케이션 인증정보 클릭

클라이언트 id 복사




예제 코드에 붙여넣기

 

콘솔에서 확인한 클라이언트 코드넣기


개발가이드 바로가기 클릭

Web Dynamic Map V3 사이트 바로가기

 



 

 

예제 모아보기 클릭

 

 



정보창 표시하기 예제 선택

 

 

서스 코드 복사하기 (모두 복사)

 

 

예제코드에 붙여넣기

 



애플리케이션 등록할 때 입력한 주소에 FTP를 이용하여 업로드하기

 



웹브라우저에서 등록한 파일의 주소 입력 확인

 

 


https://youtu.be/CHgyoAYAnAE

 

반응형

+ Recent posts