npm install node-sass sass-loader --save-dev

 

npm install --save-dev node-sass sass-loader

 

반응형

 

A Vue.js Sidebar Menu Component

 

https://codespots.com/library/item/1180

 

A Vue.js Sidebar Menu Component-Codespots.com

A Vue.js Sidebar Menu Component. vue-sidebar-menu A Vue.js Sidebar Menu Component Demo vue-sidebar-menu-demo Installation npm i vue-sidebar-menu --save Install the plugin globally. //main.js import Vue from 'vue' import VueSidebarMenu from 'vue-sidebar-men

codespots.com

vue-sidebar-menu Demo

vue-sidebar-menu demo

https://codesandbox.io/s/nrnlu?file=/src/main.js 

 

vue-sidebar-menu demo - CodeSandbox

vue-sidebar-menu demo by yaminncco using vue, vue-router, vue-sidebar-menu

codesandbox.io

 

반응형

Vue 로 작업한 프로젝트를 IE화면테스트 하던 중에 흰 화면 (Blank)이 뜨며 오류를 발견.

프로젝트에 사용된 Vue-cli 버전은 3이상으로 

Vue 3.x 부터는 ES6 사용으로 인해 IE브라우저를 지원하지 않는다. 

 

pollyfil 를 설치하여 별도로 세팅이 필요.


터미널(cmd) 설치

npm install --save @babel/polyfill
npm install --save-dev @babel/preset-env

main.js (주의: 최상단에 위치할 것)

//main.js

import '@babel/polyfill'
import Vue from 'vue'

vue.config.js 세팅된 선언이 많을 경우 하단에 ' , ' 입력 후 이어서 붙여주기

//vue.config.js

const ansiRegex = require('ansi-regex');

module.exports = {
	transpileDependencies: [ansiRegex]
}
 

babel.config.js

//babel.config.js

module.exports = {
	presets: [
		['@babel/preset-env']
	]
}
반응형

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=psj9102&logNo=221430447361 

 

Vue : vue-router 페이지 이동

안녕하십니까. NoDe 입니다. 우선 설치부터 하겠습니다. -- 스펙 @vue/cli 3 입니다. # 설치 > npm in...

blog.naver.com

vue router 에서 쓰는 것과 같은 브라우저 history api 를 활용하는 것이 좋습니다 

 

https://sunny921.github.io/posts/vuejs-router-03/

 

반응형

 

Github 계정이 없다면 미리 가입 후 진행하기.

 

SSH Key

GitHub 접속 시 SSH키가 필요한 이유

로컬에서 Git을 단독 사용하면 SSH가 필요없지만 

안전하게 외부 Git서버에 코드를 Push 하기위해 SSH프로토콜을 사용합니다. 

GitHub처럼 원격에서 Git저장소를 호스팅해주는 에서도 모두 SSH프로토콜을 지원하고 있습니다.

 

SSH키 확인하기

먼저 ssh키를 확인해 줍니다.

id_rsa.pub, id_ed25519.pub 등 .pub 파일이 있으면 이미 존재해서 새로 만들 필요 없습니다.
디렉토리 또는 파일이 없으면 CMD에서 새로 만듭니다.

$ cd ~/.ssh
$ ls

 

SSH키 생성하기

$ ssh-keygen -t ed25519  -C "your_email@example.com"
참고: Ed25519 알고리즘을 지원하지 않는 레거시 시스템을 사용하는 경우 다음을 사용합니다.
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

 

"키를 저장할 파일 입력"이라는 메시지가 표시되면 Enter 키를 눌러 기본 파일 위치를 적용

 

Generating public/private ed25519 key pair.
Enter file in which to save the key (C:\Users\xxx/.ssh/id_ed25519):

 

패스워드를 설정(불필요시 Enter) 깃헙에선 패스워드사용을 권장하고 있습니다.

추후 설정도 가능하니 일단 엔터 후 진행.

패스워드 추가 또는 변경 가이드 링크

Enter passphrase (empty for no passphrase):
Enter same passphrase again:

 

cmd창에서 생성된 SSH 확인하기

(전 시스템 cmd창에서 확인이 안되서 Git Bash에서 출력했습니다.)

$ cd ~/.ssh
$ ls

아래처럼 확인할 수 없는경우 Git bash에서 확인해보세요.

시스템 cmd에서 오류

Git Bash에서 ssh 확인

Git Bash에서 cd ~/.ssh  명령어를 입력하여 ssh디렉토리로 이동 후  ls 파일리스트 출력 명령어를 입력하면

생성된 파일목록들을 (id_ed25519  id_ed25519.pub) 확인할 수 있습니다.

id_ed25519 -> 개인키

id_ed25519.pub -> 공개키

$ cd ~/.ssh
$ ls

 

 

개인키를 출력해보려면 목록을 확인한 디렉토리에서 아래의 명령어를 실행해 줍니다.

(개인키는 절대 공개되면 안됩니다.)

$ cat id_ed25519

 

공개 키(Public Key) 확인

아래의 명령을 실행시켜 공개키를 출력하고 출력된 공개키를 복사해 줍니다.

$ cat id_ed25519.pub

 

 

공개 키(Public Key)를 Github 계정에 등록하기

Tilte에는 등록하려는 키의 이름을 입력합니다. 이메일이나 본인이 구분하기 편리하도록 이름을 정해줍니다.

Key 입력박스 안에는 cat id_ed25519.pub로 확인된 공개키를 복사해서 입력해줍니다.

 

SSH Key Add New 링크

 

Add SSH Key 버튼을 누르면 아래처럼 공개키가 Github에 등록됩니다.

 

브라우저창에 github.com/[USERNAME].keys 를 입력하면 사용자의 공개키를 확인할 수 있습니다.

 

GPG Key

GPG 키 생성

$ gpg --gen-key

GPG 키를 이용해서 커밋에 서명하기

$ git config --global user.email test@email.com
$ git config --global user.name "Test RealName"
$ git config --global user.signingkey keynumber
$ git config --global commit.gpgsign true
$ git config --global gpg.program gpg

 

 

----

 

관련 자료:

 

 

https://docs.github.com/ko/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

 

새 SSH 키 생성 및 ssh-agent에 추가 - GitHub Docs

SSH 키 암호 정보 SSH(Secure Shell Protocol)를 사용하여 GitHub.com의 리포지토리에서 데이터에 액세스하고 쓸 수 있습니다. SSH를 통해 연결할 때 로컬 머신에서 프라이빗 키 파일을 사용하여 인증합니다.

docs.github.com

https://www.lainyzine.com/ko/article/creating-ssh-key-for-github/

 

GitHub 접속 용 SSH 키 만드는 방법

GitHub의 저장소를 사용할 때 HTTPS과 SSH 프로토콜을 사용할 수 있습니다. SSH 프로토콜은 공개키 방식으로 안전하게 정보를 교환할 수 있습니다. 이번 글에서는 공개키를 만드는 방법부터, GitHub에

www.lainyzine.com

 

반응형

(Git , Bitbucket , SourceTree 개발환경)

 

SourceTree(소스트리) 설치

 

1. 최신 소스트리 다운받기

https://www.sourcetreeapp.com/

 

Sourcetree | Free Git GUI for Mac and Windows

A Git GUI that offers a visual representation of your repositories. Sourcetree is a free Git client for Windows and Mac.

www.sourcetreeapp.com

2. Install 

  • Bitbucket Server선택
    • Bitbukcet Server는 설치형으로 개별서버를 설치할 경우의 로그인할때 사용
    • Bitbucket은 Atlassian의 Bitbucket에 가입된 사용자가 로그인할 때 사용

소스트리 설치단계1

3. Registration

  • Url입력: pms 비트버킷 url
  • 사용자 입력
  • 계정로그인
  • 등록완료

4. 도구설치

  • 머큐리얼 선택해제 후 다음 선택
    • 머큐리얼은 Git과 비슷한 Tool

소스트리 설치단계 2_도구설치 (머큐리얼 체크박스 해제)

5. Preference

  • 다음선택
  • 완료

 

소스트리 사용법

https://kang-ji.tistory.com/202?category=946809 

 

Git / SourceTree(소스트리) 기본 사용법 (커밋, 푸시, 풀, 스태시, 브랜치이동)

커밋 Commit 현재 작업공간의 상태를 커밋으로 만들어서 저장소에 저장한다. 파일상태에서 변경사항 확인하여 커밋 주황아이콘  → 수정(변경)된 파일 보라아이콘  → 새로 추가된 파일 수정

kang-ji.tistory.com

 

반응형

i18n 설치

- 현재 9버전까지 나온상태 

- vue 3버전 일 경우엔 9버전으로 설치해야합니다.

- 반대로 vue 2 이하 버전일 경우 8버전으로 설치해야 정상적으로 작동됩니다.  (최신버전으로 설치할 경우 esm.bundelr.js 경고가 뜨며 정상적으로 출력되지 않는다.)

// vue 2.X
npm install vue-i18n@8

// vue 3.X
npm install vue-i18n@9

 

locales/ko.json

- json파일을 통해 언어 별도 관리

- json파일에는 주석 사용불가

{
	"example":"ttttttt",
    "group": {
        "ttl_1": "타이틀1",
        "ttl_2": "타이틀2",
        "ttl_3": "타이틀3"
    }
}

 

locales/en.json

{
	"example":"ttttttt",
    "group": {
        "ttl_1": "ttl1",
        "ttl_2": "ttl_2",
        "ttl_3": "ttl_3"
    }
}

 

locales/i18n.js 

import Vue from "vue";
import VueI18n from "vue-i18n";
import en from "@/locales/en.json";
import ko from "@/locales/ko.json";

//import axios from 'axios'

Vue.use(VueI18n);

export const i18n = new VueI18n({
  locale: "ko",
  fallbackLocale: "en",
  messages: { en, ko },
});

const loadedLanguages = ["ko"];

export function loadLanaguageAsync(lang) {
  if (i18n.locale === lang) {
    return Promise.resolve(lang);
  }

  if (loadedLanguages.includes(lang)) {
    return Promise.resolve();
  }
}

 

main.js

import Vue from "vue";
import App from "./App.vue";
// import router from "@/routes/index";
// import store from "@/store/index";
import { i18n } from "@/locales/i18n";

Vue.config.productionTip = false;

new Vue({
  // router,
  // store,
  i18n,
  render: (h) => h(App),
}).$mount("#app");

 

component.vue

// component.vue
<template>
    <p>{{ $t("example")}}</p>
    <p>{{ $t("group.ttl1")}}</p>
    <p>{{ $t("group.ttl2")}}</p>
</template>

이때 태그내에 <em>,<b>,<br> 등의 style요소를 주기위한 태그들이 들어갈 경우 v-html을 사용하여 적용시켜준다,. 

// component.vue
<template>
    <p>{{ $t("example")}}</p>
    <p v-html="$t('example')"></p>
    <p v-html="$t('group.ttl1')"></p>
    <p v-html="$t('group.ttl2')"></p>
</template>

 

반응형

blog.naver.com/phongdaegi/222093156060

 

[HTML] 웹 스토리지(Web Storage API) 란 무엇인가? (로컬, 세션 스토리지)

Web Storage API예제​

blog.naver.com

blog.naver.com/chon_5/222112740164

 

웹 스토리지(로컬 스토리지, 세션 스토리지)란?

웹 스토리지(Web Storage)란?#로컬스토리지 #세션스토리지 #간단요약웹 스토리지는 클라이언트 측에 데이...

blog.naver.com

blog.naver.com/rkdudwl/222052223529

 

세션 스토리지, 로컬 스토리지, 쿠키 개념 및 차이

로컬 스토리지와 세션 스토리지는 HTML5에서 추가된 저장소이다.(HTML5 이전 버전은 지원하지 않음...

blog.naver.com

sir.kr/pb_tip/246

 

Ajax에서 [즐겨찾기]와 [뒤로가기]를 다루는 방법! > SIR

아래의 Ajax 게시판에서 보았듯이 ... 게시판 리스트에서 내용을 보고 나서 뒤로 가려고 해도
익스플로러의 뒤로 가기 버튼이 활성화 되지 않습니다~!
이런 이유로 해서 게시판 이용이 불

sir.kr

 

퀵메뉴기능?

사용자마다 메뉴저장할라면

쿠키, 세션스토리지, DB인데

 

쿠키, 세션스토리지는 컴퓨터나 디바이스환경 바뀌면 유지가 안됨.

 

어느환경에서나 유지가 되야 한다면 DB로   

반응형

기존 모바일에서 확대 축소를 막기 위해선

 

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

코드만 추가해주기만 하면 정상적으로 작동이 됬습니다.

 

IOS 10 이후 새 기능으로 

 

To improve accessibility on websites in Safari, users can now pinch-to-zoom even when a website sets user-scalable=no in the viewport.

가 추가됨과 동시에 user-scalable=no 만으로는 아이폰 사파리에서 확대 축소가 불가능해졌습니다.

 

오늘은  css의 touch-action 으로 모바일 확대 축소 막는 방법을 알아보겠습니다.


touch-action: pan-y;

를 사용하게 되면 세로 터치는 가능하게 되고 전체 확대는 불가능하게 됩니다.

 

juyeol.tistory.com/30

 

[IOS] safari에서 확대 축소 막기

기존 모바일에서 확대 축소를 막기 위해선 코드만 추가해주기만 하면 정상적으로 작동이 됬습니다. IOS 10 이후 새 기능으로 To improve accessibility on websites in Safari, users can now pinch-to-zoom even..

juyeol.tistory.com

 

모바일 기기에서 화면이 확대/축소되지 않도록 설정하기

 

요즘 나오는 대부분의 워드프레스는 반응형(Responsive)으로 나오기 때문에 모바일 기기에서는 자동으로 모바일 버전이 표시됩니다. 모바일 버전에서 손가락을 벌리거나 오므리면 화면이 확대/축소되지 않도록 설정하려면 다음 코드를 header.php 파일에 추가하도록 합니다.

 

인터넷 익스플로러(IE) 10 버전에서 제대로 작동하지 않는 경우 -ms-content-zooming: none | zoom 구문을 사용합니다(여기 참고). 가령 다음과 같은 CSS 코드를 스타일시트 파일에 추가하도록 합니다.

 

html { -ms-content-zooming: none; -ms-touch-action: pan-x pan-y; } // Source: stackoverflow

 

Disable pinch to zoom in IE10

In IE10 touch mode I wish to make only a certain part of the page zoomable. The rest should not be. I found this: http://msdn.microsoft.com/en-US/library/ie/hh772044.aspx and tried to set -ms-touch-

stackoverflow.com

 

 

모바일 기기에서 가로로 스크롤되지 않도록 하기

모바일 장치에서 가로(수평)로 스크롤되지 않도록 하려면 다음과 같은 코드를 시도해봅니다.

body{ width:320px; // 혹은 적당한 크기 또는 100% overflow-x:hidden; }

이 내용은 더 이상 유효하지 않다고 Matthew님께서 알려주셨습니다. 아이폰, 스마트폰 미디어 쿼리는 "아이패드, 아이폰, 스마트폰 등의 모바일 기기에 사용 가능한 미디어 쿼리"를 참고해보시기 바랍니다.

 

 

big-blog.tistory.com/1448

 

모든 최신 브라우저에서 페이지 확대 / 축소 수준을 감지하는 방법은 무엇입니까?

모든 최신 브라우저에서 페이지 확대 / 축소 수준을 감지하는 방법은 무엇입니까? 모든 최신 브라우저에서 페이지 확대 / 축소 수준을 어떻게 감지합니까? 이 스레드 는 IE7 및 IE8에서 수행하는

big-blog.tistory.com

 

반응형

ios 터치이벤트 (hover이벤트 문제, 더블터치시 화면확대현상)

 

iOS Safari에서 더블 터치로 인한 화면 확대 방지 (두번 탭 확대 방지)

 

iOS 10에서부터 뷰포트 메타에 user-scalable=no 가 정상 실행되지 않아 사용자의 임의 확대 축소를 막을 수 없게 됨.

touch-action: manipulation를 사용하는 것으로 해결이 안되는 상황일 때.

note.toice.net/2017/09/13/iOS-double-touch-zoom/

 

iOS 두번 탭 확대 방지

iOS Safari에서 더블 터치로 인한 화면 확대 방지 iOS 10에서부터 뷰포트 메타에 user-scalable=no 가 정상 실행되지 않아 사용자의 임의 확대 축소를 막을 수 없게 됨. 문제사용자의 확대/축소 의도가 아�

note.toice.net

 

해결 방법

어떡하지 고민하다 그런 문제가 발생하지 않는 기존 작업페이지를 보니 FastClick이 모두 적용되어 있어서 체크해보니 해당 현상을 막을 수 있는게 덤.
FastClick 플러그인 적용 https://github.com/ftlabs/fastclick

주의

이미 작업되어진 페이지에 추가로 FastClick 플러그인을 사용할 경우 페이지내 클릭 테스트가 필요.
특히 iScroll 플러그인을 사용한 영역에서 클릭이 되지 않을 수 있으니 특히 더 주의.
만약 플러그인 적용 후 클릭이 되지 않으면 해당 엘리먼트 클래스에 needsclick 추가.
(참고 : https://github.com/ftlabs/fastclick#ignore-certain-elements-with-needsclick)

 


hover이벤트 문제

 

마우스를 시뮬레이션하기 위해 Webkit 모바일과 같은 브라우저는 사용자가 터치 스크린 (예 : iPad)에서 손가락을 뗀 경우 다음 이벤트를 발생시킵니다 (출처 : html5rocks.com의 Touch And Mouse ).

  1. touchstart
  2. touchmove
  3. touchend
  4. 300ms 지연, 브라우저는 이것이 두 번 탭이 아니라 한 번 탭인지 확인합니다.
  5. mouseover
  6. mouseenter
    • 참고 하십시오 경우 mouseover, mouseenter또는 mousemove이벤트 페이지 내용을 변경, 다음 이벤트가 실행되지 않습니다.
  7. mousemove
  8. mousedown
  9. mouseup
  10. click

단순히 웹 브라우저에 마우스 이벤트를 건너 뛰도록 지시하는 것은 불가능 해 보입니다.

더 나쁜 것은 마우스 오버 이벤트가 페이지 콘텐츠를 변경하는 경우 Safari 웹 콘텐츠 가이드-이벤트 처리 , 특히 One-Finger 이벤트의 그림 6.4에 설명 된대로 클릭 이벤트가 발생하지 않는다는 것 입니다. 정확히 "내용 변경"은 브라우저와 버전에 따라 다릅니다. iOS 7.0의 경우 배경색 변경은 콘텐츠 변경이 아닙니다 (또는 더 이상 변경되지 않습니까?).

 

 

qastack.kr/programming/3038898/ipad-iphone-hover-problem-causes-the-user-to-double-click-a-link

 

iPad / iPhone 호버 문제로 인해 사용자가 링크를 두 번 클릭합니다.

 

qastack.kr

humanwhocodes.com/blog/2012/07/05/ios-has-a-hover-problem/

 

iOS has a :hover problem

 

humanwhocodes.com

qastack.kr/programming/3038898/ipad-iphone-hover-problem-causes-the-user-to-double-click-a-link

 

iPad / iPhone 호버 문제로 인해 사용자가 링크를 두 번 클릭합니다.

 

qastack.kr

qastack.kr/programming/3038898/ipad-iphone-hover-problem-causes-the-user-to-double-click-a-link

 

iPad / iPhone 호버 문제로 인해 사용자가 링크를 두 번 클릭합니다.

 

qastack.kr

shylog.com/settings-for-a-more-complete-webview/

 

보다 완벽한 webview를 위한 세팅들 | 수줍은 동그래 블로그

해당 글은 2019년 3월에 작성된 글 입니다. 🙏 보다 완벽한 webview를 위한 세팅들 App에서 webview를 이용해서 앱을 웹으로 대체하는 경우가 꽤 있다. 퍼포먼스 면에서는 아직 웹뷰가 네이티브뷰를 따

shylog.com

 

 

 

////////

 

 

 

기존 모바일에서 확대 축소를 막기 위해선

 

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

코드만 추가해주기만 하면 정상적으로 작동이 됬습니다.

 

IOS 10 이후 새 기능으로 

 

To improve accessibility on websites in Safari, users can now pinch-to-zoom even when a website sets user-scalable=no in the viewport.

가 추가됨과 동시에 user-scalable=no 만으로는 아이폰 사파리에서 확대 축소가 불가능해졌습니다.

 

오늘은  css의 touch-action 으로 모바일 확대 축소 막는 방법을 알아보겠습니다.


touch-action: pan-y;

를 사용하게 되면 세로 터치는 가능하게 되고 전체 확대는 불가능하게 됩니다.

 

 

위의 방법에서 문제점 발견

safari에서는 정상작동안됨 . 여전히 더블터치시 화면확대됨. 

 

qastack.kr/programming/9038625/detect-if-device-is-ios

 

기기가 iOS인지 감지

 

qastack.kr

 

qastack.kr/programming/37808180/disable-viewport-zooming-ios-10-safari

 

뷰포트 확대 / 축소 사용 중지 iOS 10 이상 사파리?

 

qastack.kr

 

반응형

stackoverrun.com/ko/q/7854107

 

javascript - 터치 스크린 장치에 마우스를 감지 나는 장치가 터치 장치인지 여부를 감지하는 다음 �

: 나는 터치 기기를 사용하지 않을 경우에만 :hover 상태를 표시하려면이를 사용 var isTouchDevice = 'ontouchstart' in window || navigator.msMaxTouchPoints; if(isTouchDevice) { $('body').addClass('yes-touch'); } else { ...

stackoverrun.com

big-blog.tistory.com/4357

 

자바 스크립트로 터치 스크린 장치 감지

자바 스크립트로 터치 스크린 장치 감지 Javascript / jQuery에서 클라이언트 장치에 마우스가 있는지 어떻게 알 수 있습니까? 사용자가 항목 위로 마우스를 가져 가면 정보 패널이 약간 위로 미끄러�

big-blog.tistory.com

www.html5rocks.com/en/mobile/touchandmouse/

 

Touch And Mouse: Together Again For The First Time - HTML5 Rocks

This article describes techniques to support mouse and touch together.

www.html5rocks.com

m.blog.naver.com/PostView.nhn?blogId=b_feather&logNo=50117082290&proxyReferer=https:%2F%2Fwww.google.co.kr%2F%20%EC%B6%9C%EC%B2%98:%20https:%2F%2F202psj.tistory.com%2F1158%20%5B%EC%95%8C%EB%A0%88%ED%8F%B0%EB%93%9C%EC%9D%98%20IT%20%EC%9D%B4%EB%AA%A8%EC%A0%80%EB%AA%A8%5D

 

[javascript] 자바스크립트로 터치 이벤트 환경 및 접속 기기 감지하는 법

대부분의 사용자가 모바일 환경이 아닌 일반적인 PC web 인터페이스로 웹서비스에 접속하던 시절에는 방...

blog.naver.com

enterkey.tistory.com/364

 

모바일웹 터치 제스쳐 적용기 - [1] 터치 제스쳐 이해하기

FE(Front-End) 개발자에게 모바일웹 서비스 개발은 매우 까다로운 작업입니다. PC웹 환경은 디바이스 하드웨어 성능도 뛰어나며, 네트워크 속도도 기가(GIGA?) 막히게 빠릅니다. (물론 아직도 저사�

enterkey.tistory.com

모바일 사파리에서 터치를 시도하면 아래와 같은 이벤트가 순서대로 발생한다.

  touchstart - touchend - mouseover - mousemove - mousedown - mouseup - click

 

마우스가 존재하진 않지만, 내부적으로는 터치 이벤트 뿐만 아니라 마우스 이벤트도 발생하는 것을 볼 수 있다.
중요한 건, mouseover 시점에서 화면이 변경될 경우, 이벤트가 멈춘다는 것이다.
(이벤트 발생 프로세스의 자세한 내용은 Safari Developer Library의 Handling Events 챕터를 참고.)

위 문서에는 '화면이 변경(if the contents of page changes)'되는 것에 대한 명확한 정의는 없다.
테스트 해본 결과, '화면이 변경'된다는 것은 정확하게는 '레이아웃이 변경(reflow)'되는 것에 가까운 것 같다.
백그라운드가 변경된다거나, 레이아웃에 영향을 끼치지 않는 정도의 margin/padding이 변경되는 경우(repaint)에는 이벤트가 종료되지 않는다.

따라서, 두 번 클릭해야 실행되는 문제를 해결하기 위해서는,
터치 인터페이스에서는 mouseover 이벤트가 발생했을 때 화면 변경이 되지 않도록 해야 한다.

 

 

ohgyun.com/350

 

iPad hover 이슈 처리 방법

발생일: 2012.01.10 문제: 아이폰이나 아이패드와 같은 터치 디바이스에서는 PC와 다르게 hover(마우스 롤오버) 효과가 적용되지 않는다. '마우스' 개념이 없기 때문이다. 실제로 모바일 웹 페이지를 �

ohgyun.com

마우스를 시뮬레이션하기 위해 Webkit 모바일과 같은 브라우저는 사용자가 터치 스크린 (예 : iPad)에서 손가락을 뗀 경우 다음 이벤트를 발생시킵니다 (출처 : html5rocks.com의 Touch And Mouse ).

  1. touchstart
  2. touchmove
  3. touchend
  4. 300ms 지연, 브라우저는 이것이 두 번 탭이 아니라 한 번 탭인지 확인합니다.
  5. mouseover
  6. mouseenter
    • 참고 하십시오 경우 mouseover, mouseenter또는 mousemove이벤트 페이지 내용을 변경, 다음 이벤트가 실행되지 않습니다.
  7. mousemove
  8. mousedown
  9. mouseup
  10. click

단순히 웹 브라우저에 마우스 이벤트를 건너 뛰도록 지시하는 것은 불가능 해 보입니다.

더 나쁜 것은 마우스 오버 이벤트가 페이지 콘텐츠를 변경하는 경우 Safari 웹 콘텐츠 가이드-이벤트 처리 , 특히 One-Finger 이벤트의 그림 6.4에 설명 된대로 클릭 이벤트가 발생하지 않는다는 것 입니다. 정확히 "컨텐츠 변경"은 브라우저와 버전에 따라 다릅니다. iOS 7.0의 경우 배경색 변경은 콘텐츠 변경이 아닙니다 (또는 더 이상 변경되지 않습니까?).

qastack.kr/programming/8291517/disable-hover-effects-on-mobile-browsers

 

모바일 브라우저에서 호버 효과 비활성화

 

qastack.kr

 

반응형

1920x1080

Edge 브라우저 높이값 77px (상단 32px / 주소창 45px)

Firefox 브라우저 높이값 74px (상단 33px / 주소창 41px)

IE 브라우저 높이값 78px (상단 27px / 주소창 + 탭영역 51px)

Opera 브라우저 높이값 70px (상단 31px / 주소탕 49px)

Safari 브라우저 높이값 60px (상단 23 / 주소창 37

Chrome 브라우저 높이값 71px (상단 34px / 주소창 37px)

윈도우 10 기본 하단바 : 40px

1080px 높이값에서 55~77px 가려짐

 

결론 : 대략적으로 970~980 정도의 높이값을 웹디자인을 위해 사용가능

 

-------------------------------------------------------------------------------------

1600x900 

윈10 기본 하단바 40px

Chrome 상단바 103px

 

 

1366x768

윈10 기본 하단바 40px

Chrome 상단바 103px

 

 

 

아이폰 11 

해상도 414x896

사이즈: 828x1792 

DPR: 2.0

 

웹브라우저 컨텐츠 heigth : 896 - (92 + 82) = 722px

브라우저 (크롬)상단바 heigth : 92 px

하단 버튼바 heigth : 82px

 

폴더블 폰 모바일웹 브라우저 해상도 정보

기종 화면 사이즈 (W x H) 해상도 Phys. (W x H) DPR
(Device Pixel Ratio)
 
 Galaxy Flip3   384 x 939  1080 x 2640
 260 x 512
2.8125  
 Galaxy Flip2  

   
 Galaxy Flip  412 x 1004  1080 x 2636
 112 x 300


 
 Galaxy 폴드3  접힌화면 320 x 872
 넓은화면 674 x 842
 접힌화면 840 x 2289
 넓은화면 1769.25 x 2210.25

2.625  
 Galaxy 폴드2  884 x 1104  1768 x 2208 2  
 Galaxy 폴드1  768 x 1076  1536 x 2152 2  
         
         
         

 

 

 

IOS 해상도 DPR 브라우저
해상도 (px)
크롬  사파리 FireFox
컨텐츠 Height 상단Bar (px) 하단 버튼Bar (px) 컨텐츠 Height 상단Bar (px) 하단 버튼Bar (px) 컨텐츠 Height 상단Bar (px) 하단 버튼Bar (px)
iPhone 11 828 x 1792 2 414 x 896 722
724
92 82 717
719
95 84      
iPhoneX 1125 x 2436 3 375 x 812 632 92 88 633
635
95 84 632    
iPhone 7+ 1242 x 2208 3 414 x 736 620
622
45 71 620 45 71      
                    네이버
iPhone 6 750 x 1334 2 375 x 667       551 71 45      
iPad Air 2048 x 1536 2 1024 x 768 - - - 671 97 0 665 103 0
                         
                         
안드로이드 해상도
DPR
브라우저
해상도 (px)
크롬  삼성브라우저 Firefox     
컨텐츠 Height 상단Bar (px) 하단 버튼Bar (px) 컨텐츠 Height 상단Bar (px) 하단 버튼Bar (px) 컨텐츠 Height 상단Bar (px)  하단 버튼Bar (px) 
Galaxy Note 9 1440 x 2960 4 360 x 740 628 70 42 592 64 84      
      360 x 640 528 70 42 492 64 84      
Galaxy Tab Adbanced2   2 1280 x 800                  
                    네이버
Galaxy 제니레드 1080 x 2400 3 360 x 800             643 66 91
(46 + 45)
GalaxyS10 5G     412 725                
V20
(LG-F800K)
1440 x 2560 (1440 x  2392) 4 360 x 640 (360 x 598) 517
518
81 42 - - - 518 80 42
옵티머스 G2 (LG- F320K) 1080 x 1920    360 x 640 508
511
83 49 519          
        크롬            Firefox     
옵티머스 G 767 x 1280   384 x 640 558
559
82 0       567    
Galaxy S3     360 x 640                  

 

18:9(2:1)

  • 2160 x 1080
    • LG Q6, LG Q7
    • 구글 픽셀 3
  • 2880 x 1440 
    • LG G6
    • 구글 픽셀 2 XL,
    • LG V30, LG V35

 

18.5:9

  • FHD 1080 x 2220 (360 x 740)
    • Galaxy A8(2018)
    • Galaxy A8+(2018)
    • Galaxy A8 Star
    • Galaxy A9(2018)
  • QHD 1440 x 2960
    • Galaxy S8  (360 x 740)
    • Galaxy S8+
    • Galaxy S9  (360 x 740)
    • Galaxy S9+
    • Galaxy 노트8
    • Galaxy 노트9  (360 x 740)

 

19:9

  • HD 720 x 1520 (360 x 760)
    • Galaxy A10e 
  • FHD 1080 x 2280 (360 x 760)
    • Galaxy S10e
    • Galaxy 노트10
  •  QHD 1440 x 3040
    • Galaxy S10
    • Galaxy S10+
    • Galaxy S10 5G
    • Galaxy 노트10+

 

19.3:9

  • QHD 1440 x 3088
    • Galaxy 노트20 Ultra

 

20:9

  • FHD 1080 x 2400 (360 x 800)
    • Galaxy A70
    • Galaxy A80
    • Galaxy A90
    • Galaxy A21
    • Galaxy A31
    • Galaxy A41
    • Galaxy A51
    • Galaxy A71
    • Galaxy 노트20
  • QHD  1440 x 3200
    • Galaxy S20
    • Galaxy S20+
    • Galaxy S20 Ultra

 

19.5:9 (13:6)

  • 5.8 inch (2436 x 1125) - HDR AMOLED
    • iPhone X
    • iPhone XS
    • iPhone 11 Pro
  • 5.9 inch 1080 x 2340
    • 갤럭시 A40
  • 6.1 inch 3120 x 1440
    • LG G7 ThinQ - HDR IPS LCD
    • LG G8 ThinQ - HDR AMOLED
  • 6.4 inch - HDR AMOLED
    • LG V50S ThinQ (1080 x 2340)
    • LG V40 ThinQ (1440 x 3120)
    • LG V50 ThinQ (1440 x 3120)
  • 6.5 inch (2688 x 1242) - HDR AMOLED
    • Phone XS Max
    • iPhone 11 Pro Max

 

  • 6.1 inch (1792 x 828) - IPS TFT-LCD
    • iPhone XR
    • iPhone 11
  • 6.4 inch 1080 x 2340
    • 갤럭시 A9 Pro
    • 갤럭시 A30
    • 갤럭시 A50

 

 

20.5:9

  • FHD (2460 x 1080)
    • LG V60 ThinQ
    • LG VELVET
반응형

 

<button class="btn draw-outline">Draw button</button>
/* scss */
@mixin btn-border-outline($color: #ccc, $hover: black, $width: 2px, $vertical: top, $horizontal: left, $direction: horizontal, $duration: 0.25s) {
  $h-side: if($horizontal == 'left', 'right', 'left');
  $v-side: if($vertical == 'top', 'bottom', 'top');

  $dir-1: 'height';
  $dir-2: 'width';
  $pseudo-1: 'after';
  $pseudo-2: 'before';
  
  @if($direction == 'horizontal') {
    $dir-1: 'width';
    $dir-2: 'height';
    $pseudo-1: 'before';
    $pseudo-2: 'after';
  }
  
  box-shadow: inset 0 0 0 $width $color;
  color: $color;
  transition: color $duration $duration/2;
  position: relative;

  &::before,
  &::after {
    border: 0 solid transparent;
    box-sizing: border-box;
    content: '';
    pointer-events: none;
    position: absolute;
    width: 0; height: 0;
  }

  &::before {
    #{$vertical}: 0; 
    #{$horizontal}: 0;
  }
  
  &::after {
    #{$h-side}: 0;
    #{$v-side}: 0;
  }

  &::#{$pseudo-1} {
    border-#{$vertical}-width: $width;
    border-#{$h-side}-width: $width;
  }

  &::#{$pseudo-2} {
    border-#{$v-side}-width: $width;
    border-#{$horizontal}-width: $width;
  }
  
  &:hover {
    color: $hover;
    
    &::before,
    &::after {
      border-color: $hover;
      transition: border-color 0s, unquote($dir-1) $duration,  unquote($dir-2) $duration;
      width: 100%;
      height: 100%;
    }
    
    &::before { transition-delay: 0s, 0s, $duration; }
    &::after { transition-delay: $duration * 2, $duration * 2, $duration * 3; }
  }
}


.draw-outline {
  @include btn-border-outline(#c994bd, #90f183, 4px, top, right, vertical);
}

//=== Button styling, semi-ignore
.btn {
  background: none;
  border: none;
  cursor: pointer;
  line-height: 1.5;
  font: 700 1.2rem 'Roboto Slab', sans-serif;
  padding: 1em 2em;
  letter-spacing: 0.05rem;
  
  &:focus { outline: 2px dotted #55d7dc; }
}

//=== Pen styling, ignore
body { 
  background: #1a1f25;
  display: flex; 
  align-items: center;
  justify-content: center;
  min-height: 100vh;
}

 

https://codepen.io/giana/pen/yYBpVY

 

반응형

 

 

반응형

http://rwdb.kr/scroll_plugin_jquery/

 

스크롤에 반응하는 jQuery플러그인 모음 10가지 - RWDB

RWDB Responsive Web Design dB Web awards, 우수 하이브리드웹·반응형웹 모음 사이트

rwdb.kr

Swiper

https://swiperjs.com/

 

Swiper - The Most Modern Mobile Touch Slider

Swiper is the most modern free mobile touch slider with hardware accelerated transitions and amazing native behavior.

swiperjs.com

- 타이틀에도 써있듯이 가장 모던한 모바일 터치슬라이더를 표방하는 플러그인입니다.

- 장점은 굉장히 많은 옵션이 있다는 점이고, 단점 역시 굉장히 많은 옵션이 있다는 점입니다. 

- 모바일사이트에서만 사용하는 것이 아니라 PC웹, 반응형웹 어디서든 사용하기 편하게 만들어져 있습니다.

- 그리고 2020년부터는 React, Svelte, VueJs, Angular등까지 지원하면서 프론트엔드개발에 엄청난 도움이 되는 사이트

bxSlider

https://bxslider.com/install/

 

jQuery Content Slider | Responsive jQuery Slider | bxSlider

Initialize the bxSlider plugin This code tells the webpage to start the slider setup. Without this code the slider plugin would not be visible on the page.

bxslider.com

TouchSlider

TouchSwipe

TouchSlider jQuery Plugin

 

 

반응형

+ Recent posts