プロジェクトの div に挿入された時計があり、それが「インライン」で表示されることが非常に重要です。実際、AM/PM セルはすぐ隣にあり、クロックが短くなるにつれて移動したいと思います (つまり、22:22 ではなく 11:11)。
だから私はそのプロパティをdisplay: inline;に設定しました。このような :
.time{
display: inline;
position: relative;
cursor: pointer;
z-index: 1;
font-size: 50pt;
}
同じことが am/pm 要素にも当てはまります:
.ampm{
display: inline;
cursor: pointer;
position: relative;
z-index: 1;
font-size: 18pt;
top: -40px;
}
これは HTML ファイルです:
<div class="timeDate">
<div class="hour"><div id="time" class="time"></div><div id="ampm" class="ampm"></div></div>
<div id="date" class="date"></div>
</div>
そして少なくとも、それを更新し続ける Javascript コードの一部:
setInterval('checkTime()', 1000);
function checkTime(){
currentTime = new Date();
_minutes = currentTime.getMinutes();
_hours = currentTime.getHours();
_day = currentTime.getDay();
_date = currentTime.getDate();
_month = currentTime.getMonth();
time.innerHTML = _hours + ":" + _minutes;
ampm.innerHTML = ampmValue;
}
display: block; で問題なく動作します。さらに、秒を追加すると、更新が表示されますが、10回のうち2回しか表示されません。理由と、どうすれば修正できますか? 前もって感謝します !
ここに私のプロジェクトへのリンクがあります(Chrome のみ): http://acemond.free.fr/FEZAceme/BETA/FEZ_Lockscreen_1.2-3.theme/LockBackground.html(キャッシュを保持します)
うーん、わかりました...ちょっと抜け道を見つけました...
if(mode12h) time.innerHTML = _hours + ":" + _minutes + "<sup><font size='5'>" + ampmValue + "</font></sup>";
else time.innerHTML = _hours + ":" + _minutes;
簡単に思えますが、そのコードの問題は、時計に割り当てられた .click 関数が正常に機能しなくなることです。そこで、クリックを受け取るために、これらすべての上にある空のコントロールを追加しました。それは動作しますが、理由はわかりません。
編集:それを行うためのさらに良い方法を見つけました:
hours.innerHTML = _hours + ":" + _minutes + "<span class='ampm'>" + ampmValue + "</span>";
関連付けられた CSS を使用:
.ampm{
position: absolute;
z-index: 1;
height: 75px;
text-align: center;
width: 40spx;
font-size: 20pt;
}
私は以前にこれを行いましたが、私が言ったように .click 関数が正しく動作するのを防ぎました。しかし今では、クリックを管理する上で追加したパネルでうまく機能します。