私はそれに関連するWebデザインとプログラミングに非常に慣れていません。JavaScript を使用して簡単なギャラリーを作成していますが、jQuery を使用すると非常に簡単です。しかし、私はそれを使用することを許可されていません (割り当て)。
問題があるコードは次のとおりです。
var img = new Array(); //declared globally, accessed by other functions
function displayImage(){
var img_num = document.getElementById('img_num').getAttribute("value");
for(j=0;j<img_num;j++)
img.push(document.getElementById('h'+j).getAttribute("value"));
var list_width = 0;
for(var i=0;i<img_num;i++)
{
document.getElementById('list_holder').innerHTML += "<img src='" +img[i]+ "'onclick=\"show(this.id);\" height = \"70%;\"id='"+i+"'/>";
list_width += document.getElementById(i).offsetWidth + 15;
}
document.getElementById('list_holder').style.width = list_width+"px";
return false;
}
ID が h0、h1、h2... などの要素は、画像のパスを含む非表示の入力タイプであり、ID の 0,1,2.. はタグです。
を使用してパスを配列に格納するためにJSでそれらを使用していimg
ますimg.push
。次に、配列内の値を使用して、正確にその数のタグを作成します (高さを指定し、縦横比を決定するために幅を残します。次に、親の合計幅('list_width')<img>
を計算する必要があります)。これらのタグの を使用することを考えました。div
img
list_width+=document.getElementById(i).offsetWidth
しかし、ページを初めて開いたときに、実際の幅が返されていません。を返します4
。これは基本的に、私が考え出したタグの最小幅です。ページを更新した場合にのみ、期待どおりに機能します。ページを読み込んだ直後に一度ページを更新することで回避策を使用できることは知っていますが、それを行うための「推奨」または「専門的な」方法があるかどうかを知りたいです。
前もって感謝します。