私は個人的にこの画像をbackground-image
a<div>
に設定width
し、画像の幅の倍数 (例: 23.4 * 幅) に設定background-repeat
しrepeat-x
ます。
バックグラウンドの使用を明確に拒否する場合は、 を に設定しoverflow
、JS でhidden
aを内の指定された数のに設定します。このように、オーバーフローのおかげで、最後のものは「半分見える」ものになる可能性があります。loop
document.createElement
image
div
編集:
これを解決するには、改行を設定する必要があります。たとえば、画像の幅が 21 ピクセルであることを確認した場合、1 行の画像の最大数が 20 (幅 840 ピクセル) であるとします。
では、75.5 枚の画像を配置する必要があるとしましょう。
まず、div
幅 840px のを作成し、75.5 - (75.5 % 20)
そこに画像を配置します。3 行の画像を作成する必要があります。次に残りの部分 ( ) を幅px75.5 % 20 = 15.5 => 16 images
の newに配置し、前のケースと同様にオーバーフローを非表示にします。ここでも、最後の 16 番目の画像が半分表示されます。div
15.5 * 21
編集2:
画像の幅が異なる場合は、新しい手法が考えdiv
られます。幅が固定されているものだけを好きなものに使用します。そこにすべての画像を入れます。ページの色で不透明な背景を使用してdiv
、最後の後に新しいものを追加します。image
http://jsfiddle.net/qTb8T/1/
HTML:
<div id="wrapper">
<div id="overlay">
</div>
CSS:
#wrapper {
background: blue;
width: 700px;
}
#overlay {
background: blue;
display: inline-block;
position: relative;
}
JS:
var count = 75.5,
ceil = Math.ceil(count),
image = 'http://jsfiddle.net/img/logo.png',
overlay = $('#overlay'),
wrapper = $('#wrapper'),
hide = ceil - count;
for(var i = 0; i < ceil; i++) {
var img = document.createElement('img');
img.src = image;
wrapper.prepend(img);
}
overlay.css({
'width': img.clientWidth,
'left': -img.clientWidth * hide,
'height': img.clientHeight,
});