用 JavaScript 做一個 툴팁 功能
8784 단어 javascriptopensourcehtmlcss
本篇要解決的問題
之前需要用到 툴팁 的設計時,會直接에서 CSS Portal上生成一個,優點就是純 CSS 就能解決.不過總會遇到意外,對,就是發現只靠 CSS 是解決不了的時候,這時就得呼叫野心是統治叙.
本篇是 August 自己寫了一個 Tooltips 的功能,預備著以後專案需要使用時直接下載下載下來引用,像是一篇使用的說明檔.
要特別說明的是,目前這版不算是完整的開發完,因為 Tooltips 只寫了呈現在右邊,而不像一般的可以自由選擇呈現在上下左右的任.
用寫套件的方式去開發時,會遇到一些眉眉角角,解決時覺得蠻有趣的,大家有興趣也可以自行開發個套件澆玩,寫完後瘭堀.
下載、引用 JS
8월 習慣用 ES6 의
import
來引用套件,所以自行開發 Tooltips 也是用 export
的寫法在寫.GitHub에서 JS 버전을 다운로드하세요: Let's Write Tooltips JS .
JS는
import
사용:import { letswriteTooltips } from 'path/letswrite-tooltip.mjs';
這樣就安裝完成了.
原本一開始有考慮研究一下怎麼放進 npm 裡的,但這個功能還沒完整寫完,就等寫完的那一天再來研究吧,喵~
基本使用
import
後,要使用很簡單,程式碼的說明如下.HTML
에서 要使用 Tooltips 的東西上加入
.letswrite-tooltips
, 另外再加上 data-content="要顯示的文字"
即可,如下:<button type="button"
class="letswrite-tooltips"
data-content="Tooltips 內容"></button>
JS 預設會去抓頁面上的每一個
.letswrite-tooltips
去生成 Tooltips,顯示的文字就是 data-content
的內容.자바스크립트
如果只使用預設樣式(黑底白字),執行 툴팁 的 스크립트 就一行:
const tooltip = new letswriteTooltips();
預設的樣式就是這樣:
padding: 4px 8px;
background-color: #212121;
border: 1px solid rgba(0, 0, 0, .1);
border-radius: 4px;
font-size: 16px;
color: rgba(255, 255, 255, .8);
參數說明
可以用的參數總共有 4 個,全部都是選填:
new letswriteTooltips({
el: '.letswrite-tooltips',
dataContent: 'content',
customClass: 'letswrite-tooltips-default',
callback: function() {}
})
el
:哪一個 클래스 이름 要執行 툴팁? 預設是 .letswrite-tooltips
. dataContent
:툴팁 的內文要抓哪一個 data-*
,預設是 content
,意思就是會去抓 data-content
. customClass
:需要加上客製的 class 時可以填,有多個就用空格分開.預設是 letswrite-tooltips-default
. callback
:點擊 툴팁의 콜백, 預設是 function() {}
,就是不做任何事. 客製樣式
想要客製樣式就是填寫
customClass
,下面示範改成白底黑字.<style>
.custom-demo {
padding: .25rem;
background-color: white;
border: 1px solid #a1a1a1;
border-radius: .25rem;
color: #a1a1a1;
}
</style>
<button type="button"
class="letswrite-tooltips-for-custom"
data-content="Tooltips 內容"></button>
<script>
const tooltip = new letswriteTooltips({
el: '.letswrite-tooltips-for-custom',
customClass: 'custom-demo'
});
</script>
點擊後執行 기능
比方我們在一個 버튼 上加了
.letswrite-tooltip
,點擊這個按鈕要觸發的 function,可以直接在 button 上寫 addEventListener,也可以直接用套件裡的 콜백.<button type="button"
class="letswrite-tooltips"
data-content="Tooltips 內容"></button>
<script>
const tooltip = new letswriteTooltips({
callback: (e) => {
e.preventDefault();
console.log('callback');
}
});
</script>
데모 及原始碼
데모 跟原始碼放는 GitHub 上,歡迎自行取用,取用前麻煩分享都本篇或在 GitHub 上按個星星,你的一個小小動作對本站都是大大的鼓勵.
데모: https://letswritetw.github.io/letswrite-js-tooltips/
원본: https://github.com/letswritetw/letswrite-js-tooltips
未來會找時間再來把功能補得更齊全一些,敬請期待囉~
Reference
이 문제에 관하여(用 JavaScript 做一個 툴팁 功能), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/letswrite/yong-javascript-zuo-ge-tooltips-gong-neng-2je8텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)