javascript – Ein Code über iscroll, ich hoffe, jemand kann ihn erklären
世界只因有你
世界只因有你 2017-05-16 13:34:55
0
1
657

Der Zweck von if (el instanceof SVGElement) hier sollte ein Fähigkeitstest sein, aber ich habe festgestellt, dass für das eingehende Element el die Frage, ob SVGElement in seiner Prototypenkette vorhanden ist, nichts damit zu tun zu haben scheint, ob es getBoundingClientRect hat, oder? Auch wenn in der Prototypenkette eines Elements kein SVGElement vorhanden ist, verfügt es dennoch über die Methode getBoundingClientRect. Was bedeutet die Schreibweise hier?

    me.getRect = function(el) {

        if (el instanceof SVGElement) {
            var rect = el.getBoundingClientRect();
            return {
                top : rect.top,
                left : rect.left,
                width : rect.width,
                height : rect.height
            };
        } else {
            
            return {
                top : el.offsetTop,
                left : el.offsetLeft,
                width : el.offsetWidth,
                height : el.offsetHeight
            };
        }
    };

Danke!

CRIMX

Fundiert und überzeugend!

世界只因有你
世界只因有你

Antworte allen(1)
伊谢尔伦
  1. SVGElement - The properties offsetParent, offsetTop, offsetLeft, offsetWidth, and offsetHeight are deprecated in Chrome 48.

  2. The offsetLeft and offsetTop properties of SVG elements always returns 'undefined'.

不对 HTMLElement 使用的原因可能是考虑到 getBoundingClientRect 更慢。

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!