FreeGridv1.15.1English

툴팁 시간과 풍부한 툴팁

툴팁이 뜨는 속도와 남는 시간을 정하고, 링크가 있는 요소를 넣고, 마우스를 올리면 유지되게 하며, 셀 메모를 툴팁 자리에서 봅니다.

실행 예제툴팁 옵션

빠르게 뜨고 링크를 누를 수 있는 툴팁.

이 데모의 코드
import { createGrid, type ColumnDef, type Row } from '@freegridjs/core';
import { makeRows } from '../data';
import { button, separator, text, tr, type DemoContext } from '../ui';

export default function mount(ctx: DemoContext) {
  const h = (en: string, ko: string) => tr(ctx.lang, { en, ko });
  const grid = createGrid(ctx.host, {
    columns: [
      { field: 'name', header: h('Name', '이름'), width: 170, tooltip: p => {
        const box = document.createElement('div');
        const b = document.createElement('b');
        b.textContent = String(p.value);
        const a = document.createElement('a');
        a.href = `mailto:${p.row.email}`;
        a.textContent = String(p.row.email);
        a.style.color = 'inherit';
        box.append(b, document.createElement('br'), a);
        return box;
      } },
      { field: 'company', header: h('Company', '회사'), width: 150 },
      { field: 'email', header: h('Email', '이메일'), width: 140 },
    ],
    data: makeRows(300), locale: ctx.lang, tooltipDelay: 200, tooltipInteractive: true,
  });
  text(ctx, h('Hover a name: the tooltip shows in 0.2 s and stays while the pointer is on it, so the e-mail link can be clicked.',
    '이름에 마우스를 올리면 0.2초 만에 툴팁이 뜨고, 마우스를 올려 두면 유지되어 이메일 링크를 누를 수 있습니다.'));
  return grid;
}

툴팁은 마우스가 셀이나 헤더에 머물면 나타납니다. 아래 옵션으로 시간을 바꾸고 글자보다 많은 내용을 넣습니다.

옵션

이름타입설명
tooltipDelaynumber툴팁이 뜨기까지 마우스가 머물러야 하는 시간(ms, 기본 500).
tooltipHideDelaynumber마우스가 떠난 뒤 툴팁이 남는 시간(ms, 기본 0, tooltipInteractive면 200).
tooltipInteractiveboolean마우스가 툴팁 위에 있는 동안 유지되어 글자를 선택하고 링크를 누를 수 있습니다. 툴팁으로 가는 길에 다른 셀을 지나도 닫히지 않습니다.
tooltip (column)boolean | (params) => string | HTMLElement | nulltrue면 값을, 함수면 글자나 요소를 보여 줍니다.
overflowTooltipboolean…로 잘린 글자는 마우스를 올리면 전체를 보여 줍니다(기본 true).

링크가 있는 요소

createGrid(el, {
  columns: [
    { field: 'sku', tooltip: p => {
      const box = document.createElement('div');
      const name = document.createElement('b');
      name.textContent = p.row.name;                // text, never HTML from data
      const link = document.createElement('a');
      link.href = '/items/' + encodeURIComponent(p.value);
      link.textContent = 'Open the item';
      box.append(name, document.createElement('br'), link);
      return box;
    } },
  ],
  data,
  tooltipDelay: 250,
  tooltipInteractive: true,
});

어떤 툴팁이 나오나

  1. 셀 메모가 있으면 노란 메모 툴팁.
  2. 컬럼의 tooltip(함수, 또는 값을 보여 주는 true).
  3. 잘린 셀의 전체 글자(overflowTooltip).

헤더는 headerTooltip을 보여 줍니다. 클릭·입력·스크롤하면 툴팁이 사라집니다.