Bootstrap 4

[basic] BS4 - Popover (BS팝오버) ★ - 클릭형말풍선

목차
  1. Popover 구문 (기본/위치)
  2. Popover 정의
  3. Popover 닫기 - 아무곳이나 클릭하면 닫기
  4. Popover 툴팁화 - mouseover시 열기, mouseleave시 닫기
  5. JS PopOver 플러그인
  6. JS PopOver 구문 - data-* 속성
  7. JS PopOver 초기화
  8. JS PopOver Option (옵션)
  9. JS PopOver Method (메서드)
  10. JS PopOver Event (이벤트)
  11. JS PopOver Design (디자인) - CSS 추가

※ BS3와 거의 동일. (단, 옵션 추가변경됨.) 

 

Popover 구문 (기본/위치)


<a href="#" title="머리글data-toggle="popover" data-placement="위치"  data-content="내용">노출글</a> 

<a href="#" title="Homzzang.comdata-toggle="popover" data-placement="top"  data-content="홈페이지제작관리">홈짱닷컴</a>
<a href="#" title="Homzzang.comdata-toggle="popover" data-placement="bottom"  data-content="홈페이지제작관리">홈짱닷컴</a>
<a href="#" title="Homzzang.comdata-toggle="popover" data-placement="left"  data-content="홈페이지제작관리">홈짱닷컴</a>
<a href="#" title="Homzzang.comdata-toggle="popover" data-placement="right"  data-content="홈페이지제작관리">홈짱닷컴</a>

<a href="#" title="Homzzang.comdata-toggle="popover" data-placement="auto left"  data-content="홈페이지제작관리">홈짱닷컴</a>

 

<script>

$(document).ready(function(){

    $('[data-toggle="popover"]').popover();   

});

</script>

 

결과보기

※ 모든 popover은 해당 요소를 선택 후, jQuery popover() 함수로 초기화 필요. (위 하단 스크립튼)

※ 말풍선 위치는 data-placement 속성 이용해 변경 가능. (기본위치 : 오른쪽)

※ data-placement 속성의 속성값을 "auto"와 함께 사용하면 브라우저가 위치를 결정 가능.

   (예) 속성값이 "auto left"인 경우, 가능하면 왼쪽에 표시되고 그렇지 않으면 오른쪽에 표시.

 

Popover 정의

 

사용자가 요소를 클릭하면 나타나는 팝업 상자.

 


 

1.

마우스허버 시 나타나는 툴팁(Tooltip)과 유사하나,

툴팁(Tooltip)보다 훨씬 더 많은 내용을 추가 가능.

 

2.

플러그인 추가 방법

popover.js (+ tooltip.js) 개별 플러그인 파일로 추가하거나, 

bootstrap.js (또는 bootstrap.min.js) 종합 플러그인 파일을 추가.

 

3.

기본적으로, 요소를 클릭하면 나타났다가 다시 요소 클릭하면 사라지나,

data-trigger="focus" 또는 data-trigger="hover" 이용해 쉽게 열고 닫을 수 있음.

 

 

Popover 닫기 - 아무곳이나 클릭하면 닫기

 

<a href="#" title="Homzzang.com" data-toggle="popover" data-trigger="focus" data-placement="top"  data-content="홈페이지제작관리">홈짱닷컴</a>

 

결과보기 

 

Popover 툴팁화 - mouseover시 열기, mouseleave시 닫기

 

<a href="#" title="Homzzang.com" data-toggle="popover" data-trigger="hover" data-placement="top"  data-content="홈페이지제작관리">홈짱닷컴</a>

 

결과보기 

 

 

JS PopOver

 

JS PopOver 플러그인

 

popover.js 플러그인은 tooltip.js 플러그인에 의존 관계에 있음. (즉, 둘 다 필요.)

 

개별: popover.js + tooltip.js

통합: bootstrap.js (또는, bootstrap.min.js)

 

 

JS PopOver 구문 - data-* 속성

 

<a href="#" data-toggle="popover" title="Homzzang.com" data-content="코딩강의">홈짱닷컴</a>

 

<script>

$(document).ready(function(){

    $('[data-toggle="popover"]').popover(); // 초기화. 

});

</script>

 

 

JS PopOver 초기화


// data-toggle="popover" 속성 갖는 모든 요소 초기화.

$('[data-toggle="popover"]').popover();


// 특정요소 초기화

$('#myPopover').popover();


※ PopOver는 CSS 전용 플러그인이 아니므로 jQuery로 초기화 필요.

 

JS PopOver Option (옵션)


animation

팝오버를 열고 닫을 때 CSS 페이드 전환 효과를 추가할지 여부.

옵션값 유형: boolean  (기본값: true)

true - 페이딩 효과 추가 O  (기본값)

false - 페이딩 효과 추가 X

 

container

팝오버 추가할 요소 지정. (예 : container: 'body')

옵션값 유형: string | false  (기본값: false)

string: 특정 요소를 나타내는 문자열.

false : 아무 요소도 지정 안함. (boolean의 false 의미) (기본값)

 

content

팝오버 본문 내부의 텍스트 지정. (기본값: "")

옵션값 유형: string

string : 본문에 입력할 텍스트 내용. "" 입력하고 아무 것도 안 적을 수 있음.

 

delay

팝오버를 열고 닫는 데 걸리는 시간 (밀리초) 지정.

옵션값 유형: number | object  (기본값: 0)

열기 지연과 닫기 지연을 지정하려면 객체 구조를 사용. (예: 보이기 0.5초, 숨기기 0.1초)

(예) delay: {show : 500, hide : 100} 

 

html

팝 오버에서 HTML 태그를 승인할지 여부를 지정.

옵션값 유형: boolean (기본값: false)

true - HTML 태그 허용 O

false - HTML 태그 허용 X

참고 : HTML은 title 속성에 (또는 title 옵션 사용해) 삽입해야 함.

참고 : false (기본값) 설정 시, jQuery의 text() 메소드 사용. (XSS 공격에 안전)

 

placement

팝오버 위치 지정. 

옵션값 유형: string (가능값: top | bottom | left | right | auto)  (기본값: right)

"top" - 상단에 위치.

"bottom" - 하단에 위치.

"left" - 왼쪽에 위치.

"right" - 오른쪽에 위치. (기본값)

"auto" - 브라우저가 팝오버의 위치를 결정. 다른 속성값들과 함께 사용 가능. 

(예제)

"auto left" : 가능한 경우 팝오버가 왼쪽에 표시되고 그렇지 않으면 오른쪽에 표시.

"auto bottom" : 가능한 경우 팝 오버가 맨 아래에 표시되고 그렇지 않으면 맨 위에 표시.

 

selector

지정 선택자에 팝오버 추가.

옵션값 종류: string | false   (기본값: false)

string : 선택자를 나타내는  문자열.

false : 아무 선택자도 지정 안 함. (boolean의 false 의미.)

 

template

문자열 팝업을 만들 때 사용할 기본 HTML. 디자인 커스텀할 때 유용. 맨 하단 예제 참고.

.popover 클래스 : 팝오버 맨 외곽.

.popover-title 클래스 : 팝오버 제목.

.popover-content 클래스 : 팝오버 내용.

.arrow 클래스 : 팝오버 화살표.


title

팝 오버의 헤더 텍스트 지정.

옵션값 유형: string  (기본값: "")

 

trigger

팝업이 트리거(=촉발)되는 방식 지정

옵션값 유형: string  (가능값: click, hover, focus, manual)  (기본값: click)

"click" - 클릭으로 팝오버 트리거 (기본값)

"hover" - 호버 (= 마우스오버) 시 팝오버 트리거

"focus" - 포커스 (= 요소 선택해 커서 갖을 때) 팝오버 트리거 (예 : 탭 또는 클릭).

"manual" - 팝오버를 수동으로 트리거

참고 : 여러 값을 전달하려면 공백으로 구분.


offset

target 기준으로 팝오버 오프셋 지정. BS4 추가.

옵션값 유형: number | string   (기본값: 0)

 

fallbackPlacement
대체 위치에서 Popper가 사용할 위치 지정. BS4 추가.

옵션값 유형: string | "flip" 배열  (기본값: "flip")

 

boundary
팝오버의 overflow 제약 경계. BS4 추가. 
옵션값 유형: string| element  (기본값: "scrollParent")
string :  "viewport", "window", "scrollParent" 중 하나의 문자열.  (예) boundary:'viewport'
element : HTML 요소 중 하나.

 

주의: viewport 옵션은 BS4에서 제거됨.


※ data-* 속성 방식이나 JS 통해 옵션 전달 가능.

 

JS PopOver Method (메서드)

 

.popover(options)

옵션으로 팝 오버를 활성화. 유효값은 위 옵션 참조.

 

.popover( "show")

팝오버 보이기.

 

.popover( "hide")

팝오버 숨기기.

 

.popover("toggle")

팝오버 토글.

 

.popover("dispose")

팝오버 숨기고 삭제. cf. BS3: .popover ("destroy")

 

.popover("enable")

팝오버 표시 가능 설정. (기본값) . BS4 추가.

 

.popover("disable")
팝오버 표시 제거 설정. BS4 추가.
다시 활성화 된 경우에만 표시 가능.

 

.popover("toggleEnabled")

팝오버 (표시/숨김) 기능을 토글. BS4 추가.

 

.popover("update")
팝오버 위치 업데이트. BS4 추가.

 

 

JS PopOver Event (이벤트)

 

show.bs.popover

팝오버가 표시 되려고 할 때 발생.

 

shown.bs.popover

팝오버가 완전히 표시되면 (CSS 전환 완료 후) 발생.

 

hide.bs.popover

팝오버가 숨겨지려고 할 때 발생.

 

hidden.bs.popover

팝 오버가 완전히 숨겨지면 (CSS 전환 완료 후) 발생.

 

insert.bs.popover popover
template이 DOM에 추가 될 때, show.bs.popover 이벤트 후에 발생.  BS4 추가.

 

 

JS PopOver Design (디자인) - CSS 추가

 

<style>

 /* Popover */

.popover {

  border: 2px dotted red;

}


/* Popover Header */

.popover-title {

  background-color: #73AD21;

  color: #FFFFFF;

  font-size: 28px;

  text-align:center;

}


/* Popover Body */

.popover-content {

  background-color: coral;

  color: #FFFFFF;

  padding: 25px;

}


/* Popover Arrow */

.arrow {

  border-right-color: red !important;

}

</style>

 

예제보기

※ .popover , .popover-title , .popover-content , .arrow 클래스에 대한 CSS 추가.


방문 감사합니다. (즐겨찾기 등록: Ctrl + D)

분류 제목
basic BS4 - HOME (BS소개)
basic BS4 - Start (BS시작) - BS4다운 / BS4CDN / BS4구문
basic BS4 - Container (BS컨테이너) - 박스형 vs 와이드형 (= .container vs. .co…
basic BS4 - Grid (BS그리드)
basic BS4 - Text/Typography (BS글자 = BS텍스트)
basic BS4 - Color (BS색깔 = BS색상) - BS글자색 + BS배경색
basic BS4 - Table (BS테이블) - 테이블테두리 + 테이블배경색 + 반응형테이블
basic BS4 - Image (BS이미지) - 이미지모양 + 이미지정렬 + 반응형이미지
basic BS4 - Jumbotron (BS점보트론) - 박스형 vs 와이드형
basic BS4 - Alert (BS경고 = BS얼럿 = BS경보) - 배경색 + 글자색 + 링크색 + 닫기 + 애니…
basic BS4 - Button (BS버튼) - 버튼색깔 + 버튼크기 + 버튼활성화 + 버튼비활성화
basic BS4 - Button Group (BS버튼그룹)
basic BS4 - Badge (BS배지)
basic BS4 - Progress Bar (BS진행바 = BS진도바 = BS프로그레스바)
basic BS4 - Spinner (BS스피너 = BS회전 = BS로더)
basic BS4 - Pagination (BS페이지매기기 = BS페이지번호 = BS페이징 = BS패지네이션) + BS…
basic BS4 - List Group (BS리스트그룹)
basic BS4 - Card (BS카드) - Well (BS웰) + Panel (BS패널) + Thumbnail (B…
basic BS4 - Dropdown (BS드롭다운/BS드롭업 = BS드랍다운/BS드랍업)
basic BS4 - Collapse (BS접기 = BS컬랩스 = BS토글)
1/3
목록
  • 채팅방
  • 필독
1. 채팅창 헤드에서 접속자 확인 2. 닉네임 클릭해 1:1 채팅 가능 3. 닉네임 클릭해 귓속말 가능 4. 닉네임 클릭해 호출하기 가능 5. 우하단 클릭해 환경 설정 가능 6. 의뢰글 작성 후 의뢰 상담 가능 7. 질문글 작성 후 질문 상담 가능 8. 채팅방에 개인정보 입력 금지 9. 채팅방에 광고 욕설 비방 금지
 홈  PC버전 로그인 일본어
웹디자인언어
서버관리언어
고급코딩언어
그누보드
제작의뢰
Q&A
커뮤니티 1
웹유틸
회원센터
홈짱 PC버전 로그인