Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

eripusisu

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

eripusisu

Text truncation library

  • 1.3.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
37
decreased by-51.32%
Maintainers
1
Weekly downloads
 
Created
Source

Eripusisu

テキスト省略表示ライブラリ。
Text truncation library.

特長

  • 指定行数より後のテキストを省略表示する
  • 指定行数がリンクやリストの途中でも大丈夫
  • 内容の一部が float していても大丈夫
  • 省略文字列を指定可能(複数文字可)
  • アクセシビリティに配慮
  • RTL 言語サポート

動作例

デモ Demo

インストール

script 要素で読み込む

<script src="https://unpkg.com/eripusisu@1.3.1/dist/eripusisu.umd.js"></script>

npm パッケージを利用する

npm install --save Eripusisu
var Eripusisu = require("eripusisu");

使いかた

次のような HTML を想定して解説しています。

<div class="container">
  <!-- 任意の省略対象の要素(群) -->
</div>
<button class="button">開閉</button>

<div class="container">
  <!-- 任意の省略対象の要素(群) -->
</div>
<button class="button">開閉</button>

:
:

シンプルな省略表示

省略表示をしたいコンテンツを含むコンテナー要素を取得し、Eripusisu コンストラクタ―の第1引数に渡します。第2引数には省略表示にする行数を指定します。

// 省略表示をしたいコンテンツを含むコンテナー要素を取得する
var container = document.querySelector(".container");

// Eripusisu を実行する(3行で省略)
new Eripusisu(container, 3);

jQuery:

new Eripusisu($container$(".container")[0], 3);

クラス名から複数のコンテナーを省略表示

// 省略表示をしたいコンテンツを含むコンテナー要素を取得する
var containers = document.querySelectorAll(".container");

// ループを利用して Eripusisu を実行する
for (var i = 0; i < containers.length; i += 1) {
  new Eripusisu(containers[i], 3);
}

jQuery:

$(".containers").each(function () {
  new Eripusisu(this, 3);
})

開閉ボタン

第3引数の toggleButton プロパティに要素を渡すことで開閉ボタンが動作します。

// 省略表示をしたいコンテンツを含むコンテナー要素を取得する
var container = document.querySelector(".container");

// ボタン要素を取得する
var button = document.querySelector(".button");

// Eripusisu を実行する
new Eripusisu(container, 3, { toggleButton: button });

jQuery:

// 省略表示をしたいコンテンツを含むコンテナー要素を取得する
var container = document.querySelector(".container");

// ボタン要素を取得する
var button = document.querySelector(".button");

// Eripusisu を実行する
new Eripusisu(container, 3, { toggleButton: button });

幅の変化に追随させる

設計上、幅の変化には自動的に追随しません。必要があれば、resize イベントをハンドリングするなどして refresh() メソッドを呼び出します。

var eripusisu = new Eripusisu(container, 3);

window.addEventListener("resize", function () {
  eripusisu.refresh();
})

API

コンストラクタ

new Eripusisu(container, lines, options);
パラメーター必須説明
container省略表示をしたいコンテンツを含むコンテナー要素
lines省略表示する行数
optionsオプション。後述
オプション

Eripusisu コンストラクタは第3引数にオプションを受け取ります。

オプション名説明
expandedboolean初期状態の開閉状態をあらわします。true にすると初期状態で開いた状態になります。初期値は false
ellipsisTextstring省略をあらわす文字列。複数文字を指定することも可能です。初期値は "…"
toggleButtonHTMLElement開閉に使用するボタン。初期値は undefined
rtlbooleanRTL 言語(右から左に記述する言語)のときに true にする。初期値は false

メソッド

メソッド名説明
toggle呼び出すごとに交互に開閉します。引数に boolean を渡すと開閉方向を指定できます。
expand開きます。すでに開いている場合、何もしません。
collapse閉じます。すでに閉じている場合、何もしません。
refresh画面表示にあわせて省略位置を算出しなおします。画面や要素の大きさが変わったら refresh を呼び出す必要があります。
rebuildDOM の変化には自動的に追随しません。コンテナーに含まれる要素が変わったら rebuild を呼び出す必要があります。

プロパティ

プロパティ名説明
visuallyCollapsed閉じているかどうかを表します。コンテンツが少なく閉じる必要がない場合は false を返します。
needsCollapseコンテンツを閉じる必要があるかどうかを返します。コンテンツ量に応じて変動します。

イベント

イベント名説明
eripusisu-toggle開閉状態がトグルされたときに発火します。
イベントオブジェクトの detail プロパティから開閉状態がわかります。

サポートブラウザ

  • 各種モダンブラウザ
  • Internet Explorer 11

利用上の注意

最大限のパフォーマンスを発揮するように設計していますが、仕組み上、極めて軽快に動作するとは言えません。ページ内に多数の折りたたみ要素があるとユーザー体験を損ねる可能性があります。

ライセンス License

MIT

Keywords

FAQs

Package last updated on 17 Jan 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc