jQueryでリッチエディタを自作
テキスト入力時に文字を装飾したり画像や表を埋め込めるリッチエディタ。ワードプレスを使用す…
キャッチコピーなどを効果的に見せたいときに使用したタイピング風に一文字づつ文字を表示される方法をメモ。
複数行にも対応しているので文字の大きさも自由に変更できる。
<p><small class="typ_first">jQueryでテキストを</small><span class="typ_second">タイピング風に一文字ずつ表示</span></p>
p {
font-size: 6rem;
}
p small {
font-size: 2.8rem;
display: block;
margin: 0 0 10px;
}
.typ_first,
.typ_second {
opacity: 0;
}
.typ_first span,
.typ_second span {
opacity: 0;
}
var speed = 75; //表示速度
//文字変換
var typ_first = $('.typ_first').text().split('');
var textbox01 = '';
$.each(typ_first, function(){
textbox01 += '<span>'+this+'</span>'
});
$('.typ_first').html(textbox01);
$('.typ_first').css({'opacity':1});
var typ_second = $('.typ_second').text().split('');
var textbox02 = '';
$.each(typ_second, function(){
textbox02 += '<span>'+this+'</span>'
});
$('.typ_second').html(textbox02);
$('.typ_second').css({'opacity':1});
//タイピング処理
function typing(name){
for (var i = 0; i <= $(name).children().size(); i++) {
$(name).children('span:eq('+i+')').delay(speed*i).animate({'opacity':1}, speed);
};
}
//非同期処理部分
function func(){
var d = new $.Deferred;
typing('.typ_first');
setTimeout(function(){
d.resolve();
}, speed*$('.typ_first').children().size());
return d.promise();
}
var promise = func();
promise.done(function(){
typing('.typ_second');
});
「split」関数を使って対象の文字を、一文字ずつ分解してから「span」タグで囲み、元の位置に再配置。
今回は上段を表示してから下段を表示したいので「非同期処理」を利用。
「実行」をクリックでタイピング風に表示。
jQueryでテキストをタイピング風に一文字ずつ表示
テキスト入力時に文字を装飾したり画像や表を埋め込めるリッチエディタ。ワードプレスを使用す…
スライダーの中に音源を設置し都度再生したいとのご要望があった際に、スライドが切り替わる度…
トップページなどのメインイメージの切り替えをする際、自動と手動を組み合わせて行うことも多…