Проверить поддержку браузером пользователя функции getBoundingClientRect () или нет - PullRequest
0 голосов
/ 20 октября 2018

Я думаю проверить, поддерживает ли браузер посетителя getBoundingClientRect (), затем вызвать функцию ниже, но если не поддерживается, не вызывать.Вот мой не рабочий код:

    var benefitpub = document.getElementById('pubbox');
    var advbox2 = document.getElementById('advbox');

    window.onscroll = function () {
       if(benefitpub.getBoundingClientRect().top == true){ if (document.documentElement.scrollTop > benefitpub.getBoundingClientRect().top) {
            benefitpub.style.visibility = 'visible';
        } else {
        	benefitpub.style.visibility = 'hidden';
        }
        }
if(advbox2.getBoundingClientRect().top == true){
        if (document.documentElement.scrollTop > advbox2.getBoundingClientRect().top) {
            advbox2.style.visibility = 'visible';
        } else {
        	advbox2.style.visibility = 'hidden';
        }
        }
    }
#advbox, #pubbox{
    margin-top: 500px;
    visibility: hidden;
}
<div id="advbox">
    Hello This is advbox
</div>

<div id="pubbox">
    Hello this is Pubbox
</div>

Любое предложение ??Или кто-нибудь понимает, как это сделать ??

Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 20 октября 2018

Вы должны проверить, существует ли функция getBoundingClientRect на элементе, и если нет, то браузер не поддерживает ее.Пример:

var benefitpub = document.getElementById('pubbox');
if (benefitpub.getBoundingClientRect) {
  // run your code here
} else {
  // browser doesn't support it
}
0 голосов
/ 20 октября 2018

Самый простой способ проверить, существует ли функция, это использовать typeof:

if (typeof benefitpub.getBoundingClientRect === 'function') {
    //Client supports getBoundingClientRect()
} else {
    //No support
}

Если benefitpub.getBoundingClientRect не определено, тогда тип будет'undefined'.Кроме того, чтобы проверить, поддерживается ли это, не требуя какого-либо конкретного элемента, проверьте прототип Element:

if (typeof Element.prototype.getBoundingClientRect === 'function') {
    //Client supports getBoundingClientRect()
} else {
    //No support
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...