2

ページが読み込まれたときに最初のsmoothHeightが持つ効果が大好きです。最初の読み込み後にページのサイズ変更にゆっくりと反応する方法が嫌いです。最初のページ読み込みの効果を維持してから、アニメーションなしでデフォルトのサイズ変更にフォールバックしたいと思います。私はこれを何時間も追いかけてきました。SmoothHeight関数自体の最後でsmoothHeight変数をfalseに戻すことで、最初のアニメーションの後で変数をfalseに戻すことができますが、これにより、最初のロード後の高さのサイズ変更が無効になります。これは非常に簡単な操作のように感じますが、私には理解できません。アイデアを前もってありがとう!

基本的に、このブロックを1回実行すると、高さが設定されるため、変数がfalseに戻されても、高さは柔軟ではなくなります。

smoothHeight: function(dur) { if (!vertical || fade) { var $obj = (fade) ? slider : slider.viewport; (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height()); } }

4

2 に答える 2

0

これで完了したようです。サイズ変更関数の開始時にsmoothHeight変数を「false」に戻し、最初のページの読み込み後にサイズ変更時に高さをアニメートしようとしないようにしました。次に、サイズ変更関数でslider.viewportの高さを「100%」に設定します。これにより、高さがリセットされ、それ以降、ページのサイズ変更が応答して機能します:)最後に、resetHeightブール変数をスクリプトの先頭に追加しました。これは、サイズ変更を初めて実行するときにfalseに設定されるため、ページのサイズが変更されるたびにビューポートの高さを100%に設定してリソースを浪費することはありません。

resize: function() { if(resetHeight) { slider.viewport.height("100%"); resetHeight=false;} if (!slider.animating && slider.is(':visible')) { if (!carousel) slider.doMath(); if (fade) { // SMOOTH HEIGHT: methods.smoothHeight(); } else if (carousel) { //CAROUSEL: slider.slides.width(slider.computedW); slider.update(slider.pagingCount); slider.setProps(); } else if (vertical) { //VERTICAL: slider.viewport.height(slider.h); slider.setProps(slider.h, "setTotal"); } else { // SMOOTH HEIGHT: if (vars.smoothHeight) methods.smoothHeight(); slider.newSlides.width(slider.computedW); slider.setProps(slider.computedW, "setTotal"); } } }, smoothHeight: function(dur) { if (!vertical || fade) { var $obj = (fade) ? slider : slider.viewport; (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height()); } },

于 2012-12-13T01:48:42.673 に答える
0

サイズ変更時にスムーズな高さのFlexSliderを無効にし、サイズ変更時にトランジションの高さのFlexsSiderを無効にします。

私の場合、サイズ変更後にビューポートの高さにスムーズに適応するためにFlexsSiderを停止する必要がありました。

ソリューションは.jsファイルにありませんでした。

の遷移効果を排除するのが嫌いです.css。これにより、遅延が発生していました。

.flex-viewport {max-height: 2000px; -webkit-transition: all 1s ease; -moz-transition: all 1s ease; transition: all 1s ease;}

これに変更されました:

.flex-viewport {max-height: 2000px;}

よろしくお願いします

于 2013-07-04T19:34:26.123 に答える