0

私は現在、混合メディア可変幅クラスと組み合わせて Smoothdivscroll を使用しています - 実際には設定されていませんでした (すべてのクラスを固定幅にするのが好きですが、空白コードを追加すると、ほとんど問題なく動作するようです.

私が抱えている問題は、ページがコンテンツをロードしている間、div を上下に配置し、すべてがロードされたときにそれらを正しく表示することです。例については、以下を参照してください。

http://www.betweenmanandbeast.com/bmb_om

これがプラグインの本来の機能ではないことは理解していますが、ほぼ正しく動作しています (全員が 100 MB の回線を使用している場合は問題ありません!)。

コードのjsfiddleは次のとおりです。

http://jsfiddle.net/wnD3r

また、言及する価値があるのは、それが単一の自動幅の投稿の場合 (「ブログ」をクリックした場合など)、読み込まれるときにすべてが 1 行にとどまることです。つまり、1 つの自動幅クラスで正しく計算されますが、ページに複数あります。初期化のコードは次のとおりです。

$("#content").smoothDivScroll({
    mousewheelScrolling: "allDirections",
    manualContinuousScrolling: true,
    autoScrollingMode: "onStart",
    hiddenOnStart: false
    });

何か案は?

よろしくお願いします!

4

3 に答える 3

0

問題を 100% 理解しているとは言えませんが、Smooth Div Scroll は、スクロール可能な領域の合計幅を設定できるように、スクローラー内の各要素の幅を知る必要があります。これは、スクローラー内のすべての要素を反復し、各要素の幅をすべての要素の合計幅に追加することによって行われます。

マークアップで常に固定要素幅を設定している場合 (CSS で指定するか、画像のように HTML タグの属性として指定することもできます)、Smooth Div Scroll はすべての要素の合計幅を問題なく計算できます。スクローラーの実際のコンテンツがロードされる前。これは、jQuery イベント $(document).ready でスクロール可能領域の合計幅を設定できることを意味します。

しかし、問題は、多くのユーザーがコンテンツの幅を設定していないことです。また、コンテンツが動的であるか、何らかの方法で AJAX を介して読み込まれるため、幅を指定できない場合があるため、要素の幅は事前にわかりません。したがって、Smooth Div Scroll は、コンテンツがロードされる ($(window).load で発生する) まで待機してから、スクロール可能な領域内のすべての要素の合計幅を計算しようとします。

これが、Smooth Div Scroll が現在どのようにコンテンツをロードするかに関する背景です。幅の計算については多くの質問が寄せられるため、これについてもっと効果的に、または別の方法で実行できると思われることがあれば、ぜひお知らせください。

于 2013-10-26T14:20:38.943 に答える
0

CSS でスクロール可能な領域の幅を任意の幅に設定できる必要があります。すべての要素の幅の合計が計算されると、幅を指定するインライン スタイル属性によってオーバーライドされます。このようなもの:

div.scrollableArea
{
    position: relative;
    width: 9999px;
    height: 100%;
}

また、スクローラーに適用された overflow:hidden を使用して、1 つの要素のみが表示されるように高さを調整することもできます。その場合、すべてのコンテンツがロードされて幅が計算される前に、要素が垂直方向に積み重なっても問題ありません。

もちろん、これらは単なる提案であり、私自身は試していません。

于 2013-12-18T15:08:44.847 に答える
0

これについて個人的に返信してくれてありがとう、そして他のものでは達成できなかった何かを可能にする素晴らしいプラグインに感謝します!

問題をさらに詳しく説明すると、最初のリンクをクリックしたときに、(すべてのコンテンツが読み込まれる前に) 複数行の読み込みが表示されますか? そうでない場合は、別の例を試して設定できます。

プラグインが幅を計算する方法に関して。なぜそれがそのように動作するのかを完全に理解しており、個人的に解決策を提案できるほど十分なJSを知りませんが、いくつかのことがあります-たとえば、一時幅を9999 のようなものなので、プラグインが幅を合計している間、コンテンツは線を壊しませんか?

私は実際にこれを 0 から 9999 まで変更して試しましたが、実際には違いはありませんでした。

于 2013-10-31T11:27:25.010 に答える