javascript - 關於iscroll的一段程式碼,希望有人解釋
世界只因有你
世界只因有你 2017-05-16 13:34:55
0
1
691

這裡的if (el instanceof SVGElement)用意應該是一個能力檢測,但是我發現傳入的元素el,他的原型鏈上是否有SVGElement和它是否具有getBoundingClientRect好像並沒有什麼關係吧?即使一個元素的原型鏈上沒有SVGElement,它還是有getBoundingClientRect方法的,那這裡的寫法到底是什麼意思呢?

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

感謝!

CRIMX

#有理有據,令人信服!

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

全部回覆(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 更慢。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板