使用imagesloaded设置Jquery height()

时间:2013-01-27 17:05:34

标签: javascript jquery

我正在尝试将菜单的位置设置为动态生成高度的滑块下方,所以我使用imagesloaded加载我的jquery,所有内容都适用于除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语句是不需要的......

1 个答案:

答案 0 :(得分: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);
 });