[英]Webkit Javascript Causes Page Jumping
使用此代碼
v=new Date();
var bxx=document.getElementById('bxx');
function t(){
n=new Date();
ss={time};
s=ss-Math.round((n.getTime()-v.getTime())/1000.);
m=0;h=0;
if(s<0){
bxx.innerHTML='<a ';
}else{
if(s>59){m=Math.floor(s/60);s=s-m*60;}
if(m>59){h=Math.floor(m/60);m=m-h*60;}
if(s<10){s="0"+s}
if(m<10){m="0"+m}
bxx.innerHTML=h+':'+m+':'+s+'<br>{name}</a>';
}
window.setTimeout("t();",999);
}
t();
每當調用t()時,頁面就會跳到屏幕頂部。 有任何想法嗎?
{}是服務器解析的變量,但是它們應該引起任何問題。
跳轉是指滾動到頁面底部的頁面突然跳轉到頁面頂部
我不知道跳躍的問題,但是該代碼有兩個問題:
1)希望所有這些變量都在您未顯示的地方聲明? (如果沒有,那么您將成為“隱式全球性恐怖”的獵物,我建議您避免使用。)
2)此代碼:
bxx.innerHTML='<a ';
...要求瀏覽器解析無效的HTML片段。
3)像這樣的代碼:
bxx.innerHTML=h+':'+m+':'+s+'<br>{name}</a>';
...因為h
和此類是數字,所以您最終得到1:23:45<br>name</a>
。
innerHTML
屬性不能包含部分元素標簽,因為它表示元素的全部內容,並且元素不能像這樣相互交叉(DOM是一棵樹,而不是編織)。
您需要修改代碼,以便始終將完整bxx.innerHTML
a
標記寫入bxx.innerHTML
屬性。
一旦執行此操作,如果元素的先前內容與新內容具有不同的尺寸,則可能仍會引起一些小的跳躍。 您可以使用CSS(具有寬度和高度等的內聯塊元素)緩解這種情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.