タイプライターっぽいエフェクトを実行できる jq.typewrite
今さらなんでもないメソッドですけど、せっかく作ったので記事書いておきます。対象要素内のテキストを一文字ずつ表示するだけです。
ホスト / ダウンロード
使い方
そのままつかう
最初に $.typewrite(jQueryオブジェクト) で初期化しておきます。あとは任意のタイミングで .play() メソッドでエフェクトを実行できます。
.play(4) のように実行時に duration を決めることもできます。
.play() メソッドは jQuery Deferred オブジェクトを返すので、完了時に何かしたいときは .done() でつなげばOKです。
JavaScript
var typewrite1 = $.typewrite($('#typewrite1')); $('#do_typewrite1').click(function() { typewrite1.play(); });
HTML
This is typewrite
オプションとDeferredも使う
JavaScript
var typewrite2 = $.typewrite($('#typewrite2'), { duration: 2, hide: false, end: '|' }); $('#do_typewrite2').click(function() { typewrite2.play().done(function() { alert('completed'); }); });
HTML
This is typewrite
This is typewrite
jQuery プラグインとして使う
jQuery プラグインとして使う場合は、play() メソッドが typewritePlay() メソッドに変わります。
var typewrite4 = $('#typewrite4').typewrite({ end: '|' }); $('#do_typewrite4').click(function() { typewrite4.typewritePlay(2); });
オプション
オプション | 説明 |
---|---|
duration | エフェクトが始まってから終わるまでの時間。1(s)のように秒で指定 (def 1 |
hide | 初期化時にテキストを隠すかどうか (def true |
end | 入力カーソルを指定できます (def _(underscore) |
wait | ハッシュで対象の文字と待ち時間を渡すとその文字のときに余分に待つ(次の項へ |
wait
デフォルトは日本語の4文字だけ指定してるので変えてください
文字列 | 待ち時間 |
---|---|
! | 0.1 |
? | 0.1 |
、 | 0.1 |
。 | 0.1 |
指定するときはこんな感じで
$.typewrite(hoge, { wait: { ',': 0.3, '.': 0.3 } });
使うときの注意点
対象の要素は、
以外のHTML要素を含むことができないので、その辺よろしくおねがいします。