2017-08-02 2 views
0

私は上のナビゲーション内のすべての要素が非表示になるようにdocument.body.getBoundingClientRect()。rightを使用しているので、それらを非表示にして[More]ドロップダウンに配置します。しかし、この機能はサファリでは機能していないようです。関数に代わるものはありますか、それともサファリで修正できる方法はありますか?あなたはjQueryのを使用しているのでgetBoundingClientRect()alternative

var windowRightOffset = document.body.getBoundingClientRect().right, 
     elementHiddenFlag = false; 

    $(".headerNav").find("li").each(function() { 
     if ($(this).className !== 'more') { 
      var elemRightOffset = $(this).find("a")[0].getBoundingClientRect().right; 
      if (elemRightOffset > windowRightOffset) { 
       $(this).hide(); 
       elementHiddenFlag = true; 
       $(".more .moreNavItems-content").append($(this).html()); 
      } 
     } 
    }); 
+0

それはSafariで正常に動作します。問題は他にもある。 – powerbuoy

答えて

0

あなたはjQueryのでpositionoffset機能を見てすることができます。

は、あなたがやっているだろうjQueryを使って、あなたのコードを交換するには:

var aTag = $(this).find("a")[0]; 
var left = aTag.offset().left; 
var width = aTag.find("a")[0].width(); 

var aTagRightOffset = width + left;