cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Sekeping kod tentang iscroll, saya harap seseorang boleh menerangkannya

Tujuan if (el instanceof SVGElement) di sini mestilah ujian keupayaan, tetapi saya mendapati bahawa untuk elemen masuk el, sama ada terdapat SVGElement pada rantai prototaipnya nampaknya tidak ada kaitan dengan sama ada ia mempunyai getBoundingClientRect, bukan? Walaupun tiada SVGElement dalam rantaian prototaip sesuatu elemen, ia masih mempunyai kaedah getBoundingClientRect Jadi apakah maksud penulisan di sini?

    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
            };
        }
    };

Terima kasih!

CRIMX

berasas dan meyakinkan!

世界只因有你世界只因有你2794 hari yang lalu696

membalas semua(1)saya akan balas

  • 伊谢尔伦

    伊谢尔伦2017-05-16 13:36:55

    1. SVGElement - Sifat offsetParent, offsetTop, offsetLeft, offsetWidth dan offsetHeight ditamatkan dalam Chrome 48.

    2. Sifat offsetLeft dan offsetTop elemen SVG sentiasa mengembalikan 'tidak ditentukan'.

    Sebab

    tidak digunakan untuk HTMLElement mungkin disebabkan oleh fakta bahawa getBoundingClientRect lebih perlahan.

    balas
    0
  • Batalbalas