Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript getBoundingClientRect()不适用于safari_Javascript - Fatal编程技术网

Javascript getBoundingClientRect()不适用于safari

Javascript getBoundingClientRect()不适用于safari,javascript,Javascript,我已将getBoundingClientRect()用于菜单,但不在safari上工作。它在iphone的移动浏览器、chrome和firefox上运行良好,但在safari网络浏览器上却无法运行 <div class="menuDiv" id="menuDivId"> <div class="menu" id="menuId"> <ul> <li> <div class="

我已将getBoundingClientRect()用于菜单,但不在safari上工作。它在iphone的移动浏览器、chrome和firefox上运行良好,但在safari网络浏览器上却无法运行

<div class="menuDiv" id="menuDivId">
    <div class="menu" id="menuId">
        <ul>
          <li>
            <div class="borderBo">
              <a class="active" id="booking" href="#book">Booking</a
            </div>
          </li>
        </ul>
     </div>
</div>


<div>

.
.
.
  lots of text
.
.
.
.

</div>


<div class="bookings" id="bookingScroll">
</div>

<div>

  .
  .
  .
    lots of text
  .
  .
  .
  .

</div>

编辑:我在jquery中提出了一个适用于safari的解决方案。

也许有更好的答案。这是我的案例的解决方案:


它不工作
不是问题的完整描述。您是否在浏览器的控制台中收到错误消息?
bookingScroll.getBoundingClientRect().top的值是多少?您希望得到什么值?控制台中没有错误。单击事件激发,之后不会发生任何事情。顺便说一句,我在菜单上还有几个项目,在这个标签前面有很多文本内容。我将编辑以整理混乱。
bookingScroll.getBoundingClientRect().top的值是多少?您期望的值是多少?不同的屏幕大小会有所不同:1407.8751385.51744.296875。。。等等firefox全屏显示:1520.800048828125。safari给出1519.875。
var bookingScroll = document.getElementById("bookingScroll");
document.getElementById('booking').addEventListener('click', function(){
  window.scrollTo({
    top: bookingScroll.getBoundingClientRect().top,
    behavior: "smooth"
  });
})
if(navigator.userAgent.indexOf("Safari") != -1)
  {
    $('#booking').on('click', function(event) {
        $(window).scrollTo($("#bookingScroll"));
    });
  }