jQueryを頻繁に使用するウェブサイト用のボルトツールを提供するプロジェクトに取り組んでいます。プレゼンテーション/デザインは非常に重要です。ブラウザで適用された標準(醜い)スクロールバーをhtml要素に置き換えて、内容が溢れているように見せています。jQueryカスタムスクロールバーを使用しているときにフォームフィールド間をタブで移動する問題
カスタムスクロールバーを適用し、CSSを使ってスタイリングすることができるjQueryプラグインが数多くありますが、これは私が試したすべてのものが同じ問題を抱えているようです。スクロール可能なコンテンツにフィールド間のタブ移動はスクロールバーをアクティブにせず、場合によってはカスタムスクロールバーのレイアウトを完全に崩壊させる可能性があります。プラグインの
二つの例は、私が試した:私も他の人が試してみた
http://manos.malihu.gr/jquery-custom-content-scroller http://baijs.nl/tinyscrollbar/が、すべてのデモ/例のコンテンツプレーンテキストです。私はすでにこれについて多くの検索を行ってきましたが、フォームベースのコンテンツでこれらのプラグインを使用しようとした人はいないようです。
これらのプラグインは多少同じように動作するようですが、何が起きているのか、理由は分かりますが、他の誰かがこの問題を抱えているか、
次のように、この問題は簡単に(tinyscrollbarプラグインを使用して)複製することができます。
は、標準のHTMLテストページにこれを追加 -
CSS:
<style>
#tinyscrollbartest { width: 520px; height: 250px; padding-right: 20px; background-color: #eee; }
#tinyscrollbartest .viewport { width: 500px; height: 200px; overflow: hidden; position: relative; }
#tinyscrollbartest .overview { list-style: none; position: absolute; left: 0; top: 0; }
#tinyscrollbartest .scrollbar { position: relative; float: right; width: 15px; }
#tinyscrollbartest .track { background: #d8eefd; height: 100%; width: 13px; position: relative; padding: 0 1px; }
#tinyscrollbartest .thumb { height: 20px; width: 13px; cursor: pointer; overflow: hidden; position: absolute; top: 0; }
#tinyscrollbartest .thumb .end { overflow: hidden; height: 5px; width: 13px; }
#tinyscrollbartest .thumb, #tinyscrollbartest .thumb .end { background-color: #003d5d; }
#tinyscrollbartest .disable { display: none; }
</style>
HTML:
を<div id="tinyscrollbartest">
<div class="scrollbar">
<div class="track">
<div class="thumb">
<div class="end"></div>
</div>
</div>
</div>
<div class="viewport">
<div class="overview">
</p>Here's a text field: <input type="text"/><p>
...
// lots of content to force scrollbar to appear,
// and to push the next field out of sight ..
...
<p>Here's another field: <input type="text"/></p>
</div>
</div>
</div>
プラグインリファレンス(jqueryライブラリなども参照されていると仮定します) :
<script type="text/javascript" src="scripts/jquery.tinyscrollbar.min.js"></script>
のjQueryコード:今すぐ
<script type="text/javascript">
$(document).ready(function() {
$('#tinyscrollbartest').tinyscrollbar();
});
</script>
にフォーカスがあるので、最初のテキストフィールドをクリックは、次のいずれかに移動し、何が起こるかを確認するために、Tabキーを押します。