베나코드
걷고 나니 길
베나코드
전체 방문자
오늘
어제
  • 분류 전체보기 (24)
    • MicroOffice (2)
      • Excel (2)
      • PowerPoint (0)
    • Programming (9)
      • Java (5)
      • SpringFramework (0)
      • 자바스크립트 (3)
      • TypeScript (0)
      • Node.js (0)
      • Mybatis (1)
      • Vue (0)
    • Test (0)
      • Junit (0)
      • Mockito (0)
    • IT용어 (2)
      • 개발론 (0)
      • 디자인 (0)
      • 다양한 (2)
    • Data Structure (2)
    • Algorithm (0)
      • LeetCode (0)
      • Backjoon (0)
      • programmers (0)
      • 시험문제 (0)
    • Regular Expression (0)
    • Azure (0)
    • DB(DATABASE) (1)
      • ERD (0)
      • Oracle DB (1)
      • MySQL (0)
    • Tiny Bug (0)
    • 영어공부 (7)
      • TOEIC (7)
    • Git (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • santa
  • unchaged
  • 함수
  • js
  • java
  • 오류출력변경
  • splide
  • 빈문자열
  • excel
  • junit5
  • @AfterAll
  • ms
  • JRM
  • Tippy
  • @BeforeAll
  • 방어적프로그래밍
  • Microsoft Lean
  • Azure기본사항
  • FUNCITON
  • azure
  • 사용
  • copyProperties
  • az-900
  • @ParameterizedTest
  • @Nested
  • TOEIC
  • 개발속도
  • 방어코딩
  • @DisplayName
  • beanutils

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
베나코드

걷고 나니 길

[js][Tippy]Tippy(Tooltip 라이브러리) 사용
Programming/자바스크립트

[js][Tippy]Tippy(Tooltip 라이브러리) 사용

2022. 8. 5. 09:55

프로젝트에서 툴팁을 태그 속성의 title 사용하기 때문에 시인성을 위해 개선이 필요했다.

간단하고 많이 사용하는 툴팁 라이브러리인 Tippy를 적용하여 해결하였다.

Tippy 소개 및 적용 예시를 남겨둔다.

 

기본적인 소개 및 사용법 그리고 Demo까지 너무나도 깔끔하고 완벽하다.

https://atomiks.github.io/tippyjs/

 

Tippy.js - Tooltip, Popover, Dropdown, and Menu Library

The complete tooltip, popover, dropdown, and menu solution for the web

atomiks.github.io

 

Tippy는 기본적으로 popper라이브러리를 이용하여 툴팁, 드롭다운 등을 제공한다.

원하는 대로 CSS가 적용가능하며, TypeScript를 지원하는 등 범용적 활용이 가능하다.

 

기본적인 구성은 다음과 같다.

1
2
3
tippy('selector', {
    content: 'tooltip content. ex) click here to ~~',
});
Colored by Color Scripter
cs

selector : css 셀렉터 그대로 활용 가능하다 (ex : '#id', '.class', 'tag', '[attribute="value"]' ...etc)

content  : tooltip에 출력될 내용이다.

속성 마지막에 쉼표가 있다. 해당 라이브러리를 이용할 시에는 문법적으로 오류가 나지 않으며 설명에도 쉼표를 쓰는 것을 볼 수 있다. 개인적인 생각으로는 옵션이 추가될 때 쉼표 여부에 오류 나는 귀찮은 일을 막기 위해 쉼표를 붙이면서 쓸 수 있도록 배려해준 거 같다.

 

프로젝트에서는 간단하게 아래와 같이 적용해 보았다.

1
2
3
4
5
6
7
8
9
10
11
12
function imgTippy(e){
    let id = e.id;
    let contentHtml = '<div class="tooltip-btn" onclick="viewImages(\''+imgId+'\')">View details</div>'
                    + '<div class="tooltip-btn" onclick="downImages(\''+imgId+'\')">Download</div>';
    tippy('#'+id, {
        content: contentHtml,
        allowHTML: true,
        interactive: true,
        delay: [0,100],
        animation: 'scale',
    });
}
Colored by Color Scripter
cs

위의 기능은 변동되는 이미지 영역에 마우스 오버(onmouseover)를 했을 경우 작동하게 하였으며,

툴팁에 두 개의 버튼 출력되어 이미지를 상세히 보여주거나 다운로드할 수 있도록 구성하였다.

allowHTML : content에 입력되는 문자열이 html 구성되어 출력되도록 해준다.

interactive : tooltip에 마우스 오버하여 상호작용할 수 있도록 해준다.

delay : 기본 단위는 ms.

            단일 숫자만 입력 시, 해당 숫자ms만큼 뒤에 툴팁 출력.

            [num1, num2] - num1는 툴팁 display까지 delay시간이며, num2는 툴팁 display 유지시간이다.

 

 

 

위의 코드 출력 시, 이미지이다. 버튼은 tippy domo css를 가져다 이용하였다.

 

 

 

'Programming > 자바스크립트' 카테고리의 다른 글

[js][splide]이미지슬라이드 라이브러리  (0) 2022.08.05
[Javascript]Null, Undefined, 빈문자열 처리  (0) 2022.03.16
    'Programming/자바스크립트' 카테고리의 다른 글
    • [js][splide]이미지슬라이드 라이브러리
    • [Javascript]Null, Undefined, 빈문자열 처리
    베나코드
    베나코드

    티스토리툴바