0

問題があります。

jQuery を使用して最大高を画像に割り当てています。高さの最大値は、ロゴ画像が横にあるスライドショーの高さを取得することによって生成されます。サイトをご覧ください: http://debourg-dev.ch/lestroisverres/

影響を受けるコードは次のとおりです。

var sliderHeight = $('.flexslider').height();
$('#logo img').css({'max-height': sliderHeight});

$(window).resize(function() {

    var sliderHeight = $('.flexslider').height();
    $('#logo img').css({'max-height': sliderHeight});

});

ウィンドウのサイズ変更を開始すると、ロゴが表示され、適切にスケーリングされるため、スライドショーの高さが決定される前にスクリプトがロードされているように見えます。影響を受けるコードを $(window).load 関数でラップしようとしましたが、違いはありません。

何か助けはありますか?

ありがとう

4

2 に答える 2

0

これを試して:

$('.flexslider').flexslider({
    animation: "slide",
    controlsContainer: ".flex-container",
    controlNav: false,
    slideshowSpeed: 6000,
    animationDuration: 1600,
    start: function(slider) {
        var sliderHeight = this.height();
        $('#logo img').css({'max-height': sliderHeight});
    }
});

このstartオプションは、スライダーが最初の画像を表示するときに関数を実行するため、それまでに画像をロードする必要があり、高さがわかります。

于 2013-05-23T16:56:40.470 に答える
-1

max-heightは最大の高さだけを決定するため、max - height の代わりにheightを使用する必要があります。この場合、これは常に画像サイズであり、これを使用すると縮小することしかできません。

// 高さ 0 の問題が Barmar によって説明されているように編集します。ロゴの高さを設定する時点で、javascript はまだ画像をロードしていないため、高さをまだ知りません。

ドキュメントが示すように、いくつかのコールバックがあります。

start: function(){},            //Callback: function(slider) - Fires when the slider loads the first slide
added: function(){},            //{NEW} Callback: function(slider) - Fires after a slide is added

そのため、ドキュメントのロード コールバックではなく、初期の高さ設定をこれらのいずれかに追加する必要があります。

于 2013-05-23T16:48:54.633 に答える