タイポグラフィの表現
【開発環境】
OS:Win11(64ビット)
VSCode1.72.2、
クロム
jquery-3.7.1.min.js CDN 及び 1.13.3/jquery-ui.min.js
【Webデザイン】
下図のように、文字を浮かせる。また、マウスを動かすと、影も動く様ににする
【フォルダ作成】
【コード書く】
1.index.html
続1
・CSS/main.css
【プラグイン】
・js/typoShadow.js
(関数($){
var uid = 0 の場合、
//即時実行関数
now = (function(isDateHasNow) {
戻り値 function() {
if (isDateHasNow) {
現在のタイムスタンプで、1970年1月1日 00:00:00 UTC からのミリ秒)を返します
Date.now()を返します。
} else {
//コンストラクタ
戻る +(new Date);
}
};
})(!!日付.now);
関数 typoShadow(e){
var $typo = これ,
center = $typo.width() * 0.5,
半径 = e.radius、
x = (roundMinMax(-radius, radius, e.pageX - $typo.offset().left - center) / radius).toFixed(3) - 0,
y = Math.sin(Math.acos(x)).toFixed(3) - 0;
$typo.css('テキストシャドウ', '0 1px 0 #ccc,' +
'0 2px 0 #c9c9c9,' +
'0 3px 0 #bbb,' +
'0 4px 0 #b9b9b9,' +
'0 5px 0 #aaa,' +
'0 6px 1px RGBA(0,0,0,0.1),' +
'0 0 5px RGBA(0,0,0,0.1),' +
1 * -x + 'px ' + 1 * y + 'px 3px rgba(0,0,0,0.3),' +
3 * -x + 'px ' + 3 * y + 'px 5px rgba(0,0,0,0.2),' +
5 * -x + 'px ' + 5 * y + 'px 10px RGBA(0,0,0,0.25),' +
10 * -x + 'px ' + 10 * y + 'px 10px rgba(0,0,0,0.2),' +
20 * -x + 'px ' + 20 * y + 'px 20px rgba(0,0,0,0.15)');
}
関数 roundMinMax(min, max, value){
if(最小値>値) 値 = 最小;
if(最大値<値) value = max;
戻り値;
}
$.fn.typoShadow = function(オプション){
var $typos = これ;
オプション = $.extend(true, {
半径:800、
スロットル:33、
削除: false
}, オプション);
if (options.remove) {
$typos.each(関数(){
var $typo = $(これ)、
tid = $typo.data('typoShadowId');
if (tid) $typo.removeData('typoShadowId').off('mousemove.' + tid)
.css('text-shadow', '');
});
} else {
$typos.each(関数(){
var $typo = $(これ)、
tid = 'typoShadow' + uid++,
タイマー = now();
if ($typo.data('typoShadowId')) 戻り値 uid--;
$typo
.data('typoShadowId', tid)
.on('マウスムーブ.' + tid, function(e){
var _now = now();
if (_now - タイマー < options.throttle) return;
タイマー= _now;
e.radius = options.radius;
typoShadow.call($typo, e);
});
typoShadow.call($typo, {pageX: 0, radius: options.radius});
});
}
$typosを返します。
};
})(jQueryの)
※コメント投稿者のブログIDはブログ作成者のみに通知されます