0

我正在尝试在动态生成高度的滑块下方设置菜单的位置,所以我使用imagesloaded最后加载我的 jquery 并且在每个浏览器中一切都很好,除了 safari 检索滑块集的高度在后端而不是根据页面大小动态生成的图像的高度。这仅在 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 上失败的浏览器,所以我留下了粘贴在这里的第一个代码,等待任何关于诱饵呼吸的帮助。注意:如果 safari 会在滑块图像之后加载我的 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 回答