可能な限り幅広いが、固定幅のコンテナ内で実行できる水平リストを作成したい。私はjQueryを使って、本当に広いリストをスクロールできるようにしています。CSSが同じ行に浮動する変数量
私はこの線に沿ってコードを持っている:私はちょうど私が思う私のCSSのサブセットをあげる
<div class="list">
<ul>
<li class="feed">
<section>
<h1><span class="name">Title</span></h1>
<div class="scroll_left"><a class="ir" href="#">Scroll Back</a></div>
<div class="article_list">
<ul class="article_list">
<li>
<a href="article.php">
<div class="article_thumb"><img src="img/placeholder.png" alt="blah" /></div>
<h2>Title of article</h2>
</a>
</li>
<li>
<a href="article.php">
<div class="article_thumb"><img src="img/placeholder.png" alt="blah" /></div>
<h2>Title of article</h2>
</a>
</li>
<li>
<a href="article.php">
<div class="article_thumb"><img src="img/placeholder.png" alt="blah" /></div>
<h2>Title of article</h2>
</a>
</li>
<!-- variable number of li's, from 10s to 100s -->
</ul>
</div>
</section>
</li>
<!-- More of these lists -->
</ul>
</div>
は関連性がある:
.feed .article_list {
position: relative;
overflow: auto;
float: left;
width: 900px;
}
.feed .article_list ul {
position: relative;
width: 10000px; /** I want this to be wide, but not allow scrolling past the end*/
margin: 0;
background-color: #ffffff;
}
.feed .article_list li {
display: block;
width: 130px;
height: 150px;
position: relative;
float: left;
border-right: 2px solid #b5e8f4;
border-left: 2px solid #b5e8f4;
margin: 0 5px 0 0;
}
私のjavascriptは次のとおりです。
$(document).ready(function() {
$('div.article_list').css({
'overflow' : 'hidden'
});
$('.scroll_left a').click(function() {
toScroll = $(this).parent().next();
toScroll.animate({scrollLeft: "-=135"});
return false;
});
$('.scroll_right a').click(function() {
toScroll = $(this).parent().prev();
toScroll.animate({scrollLeft: "+=135"});
return false;
});
});
そうですが、内側のulを非常に広くする必要があるため、ユーザーはリスト項目を超えてスクロールしたり、再作成することができます私はあまりにも多くの項目を(動的には、私は多くの制御を持っていないので)、レイアウトが壊れて追加してください。
私は何とかスクロール可能な領域を浮動小数点のコンテンツと同じ幅にすることはできますか? また、javascriptの幅を設定する唯一のソリューション(理想的ではありませんが、私はそれを行うことができます)ですか?
ありがとうございます!今、これに対するブラウザのサポートは何ですか?私はIE6や古いブラウザを放棄しても問題ありませんが、現代的なブラウザでこれを動作させたいと思います。手を離さなければ自分の時間をテストすることができます。 – Matt
@Matt um ... browser suppor ...私は通常、IE8 +(XPが上に行くことができないように)だけ心配しています。私はそれがより多くのクロスブラウザにする必要があると思う更新を追加しました。しかし約束はない。ごめんなさい。 –
@Matt初期テストはIE7では動作しませんでした。あなたがIE7をサポートしたい場合http://jsfiddle.net/GBtCb/3/これはあなたのオリジナルとの違いは、 '.feed .article_list'と' overflow-x: 'の' float:left'の削除です。 '.article_list ul'でスクロールします –