0

高さを動的に生成するスライダーの下にメニューの位置を設定しようとしているので、最後に jquery をロードするためにimagesloadedを使用しました。スライダー セットの高さを取得する safari を除くすべてのブラウザーですべて問題ありません。ページサイズに応じて動的に生成される画像の高さではありません。これはサファリでのみ発生しています....メニューを配置するJavaScriptは次のとおりです。

$.browser.safari = ($.browser.webkit && !(/chrome/.test(navigator.userAgent.toLowerCase())));
if ($.browser.safari) {
    $(window).load(function () {
        var $container = $('.ls-wp-fullwidth-container');
        $container.imagesLoaded(function () {
            var height = $(".ls-wp-fullwidth-container").height() - 50;
            $(".menu_wrap").css('top', height);
        });
    });
} else {
    $(window).load(function () {
        var $container = $('.ls-wp-fullwidth-container');
        $container.imagesLoaded(function () {
            var height = $(".ls-wp-fullwidth-helper").height();
            $(".menu_wrap").css('top', height);
        });
    });
}
$(window).resize(function () {
    var height = $(".ls-wp-fullwidth-container").height() + 40;
    $(".menu_wrap").css('top', height);
});

使用されているスライダーは何でもスライダーです。cleanspace という名前のテーマフォレスト テーマを使用し、wordpress 3.5.1 を実行しています。$(window).bind("load",function(){最後にjqueryをロードして$.browser.safari = ($.browser.webkit && !(/chrome/.test(navigator.userAgent.toLowerCase()))); if ($.browser.safari) { 、PCでは正常に動作するがMacでは失敗するブラウザを検出するために使用しようとしたので、ここに貼り付けた最初のコードが残っており、息を呑むような助けを待っています. 注:サファリがスライダー画像の後にjQueryをロードする場合、ここのifステートメントは不要です...

4

1 に答える 1

0

私は回避策を見つけました。それは最良のアンサーではないと推測しており、より良い提案を喜んで聞いてくれるでしょう。基本的に、次のようにロードする関数にタイマーを配置しました。

if (navigator.userAgent.indexOf('Safari') != -1 && navigator.userAgent.indexOf('Chrome')     == -1) {
      $(window).load(function() {
           setTimeout(function(){
             var $container = $('.ls-wp-fullwidth-helper');
               $container.imagesLoaded( function() {
                  var height = $(".ls-wp-fullwidth-helper").height() ;
                  $(".menu_wrap").css('top', height);
               });
           }, 2000);
        });
       }
else {
      $(window).load(function() {
       var $container = $('.ls-wp-fullwidth-helper');
       $container.imagesLoaded( function() {
         var height = $(".ls-wp-fullwidth-helper").height();
         $(".menu_wrap").css('top', height);
       });
      });
     }
 $(window).resize(function(){
   var height = $(".ls-wp-fullwidth-helper").height() + 40;
   $(".menu_wrap").css('top', height);
 });
于 2013-01-29T23:12:55.047 に答える