• 회원가입
  • 로그인
  • 구글아이디로 로그인

[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토글)
basic BS4 - Nav (네브) - 간단메뉴 + 일반탭 + 알약탭
basic BS4 - Navbar (메뉴바) - 네비게이션 메뉴바 (= 네브바 = 네비바) ※ BS4분기점
basic BS4 - Form (BS폼양식)
basic BS4 - Input (BS입력 = BS인풋)
basic BS4 - Input Group (BS입력그룹 = BS인풋그룹)
basic BS4 - Custom Form (BS커스텀폼)
basic BS4 - Carousel (BS캐러셀)
basic BS4 - Modal (BS모달)
basic BS4 - Tooltip (BS툴팁 = BS말풍선 허버형)
basic BS4 - Popover (BS팝오버) ★ - 클릭형말풍선
basic BS4 - Toast (BS토스트) - 순간말풍선 (= 팝업상자 = 짧은경고창 = 스낵바)
basic BS4 - Scrollspy (BS스크롤스파이) - 원페이지메뉴링크 (= 내부링크)
basic BS4 - Utilities (BS유틸클래스 + BS4추가클래스) ★★★★★
basic BS4 - Flex (BS플렉스박스) ★★★★★
basic BS4 - Icon (BS아이콘)
basic BS4 - Media Object (BS미디어객체) - 썸네일형, 요약형
basic BS4 - Filter (필터링) ★ - 테이블필터링 + 리스트필터링 + 드롭다운필터링 + div안 텍스트필…
grid BS4 - Grid (BS그리드) - 반응형 레이아웃 ★★★
grid BS4 - Grid Stacked-to-horizontal (BS그리드 수직정렬 → 수평정렬)
grid BS4 - Grid Extra Small (BS그리드 초소형기기) - .col-숫자, .col 클래스
grid BS4 - Grid Small (BS그리드 소형기기) - .col-sm-숫자, .col-sm 클래스
grid BS4 - Grid Medium (BS그리드 중형기기) - .col-md-숫자, .col-md 클래스
grid BS4 - Grid Large (BS그리드 대형기기) - .col-lg-숫자, .col-lg 클래스
grid BS4 - Grid Extra Large (BS그리드 초대형기기) - .col-xl-숫자, .col-xl 클…
grid BS4 - Grid Example (BS그리드 예제) ★
theme BS4 - Template (BS템플릿)
BS_bookmark BS4 - BS메가메뉴
BS_bookmark BS4 - Masonry (메이슨리) 갤러리
목록
찾아주셔서 감사합니다. Since 2012