四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

javascript YUI 讀碼日記之 YAHOO.util.Dom - Part.4

var getXY = function() {
    // 判斷是否是 IE
    if (document.documentElement.getBoundingClientRect) {
        // 注1
        return function(el) {
            var box = el.getBoundingClientRect();

            var rootNode = el.ownerDocument;
            return [box.left + 
          Y.Dom.getDocumentScrollLeft(rootNode), box.top +
                    Y.Dom.getDocumentScrollTop(rootNode)];
        };
    } else {
        return function(el) {
            var pos = [el.offsetLeft, el.offsetTop];
            var parentNode = el.offsetParent;

            // 判斷是否在 Safari 下,節點是否為 absolute ,
            // 并且父元素是否為 body
            // 注2.
            var accountForBody = (isSafari &&
                    Y.Dom.getStyle(el, 'position') == 'absolute' &&
                    el.offsetParent == el.ownerDocument.body);

            // 如果父元素不是自身
            if (parentNode != el) {
                while (parentNode) {
                    pos[0] += parentNode.offsetLeft;
                    pos[1] += parentNode.offsetTop;
                    if (!accountForBody && isSafari && 
                            Y.Dom.getStyle(parentNode,'position') 
                                                  == 'absolute' ) { 
                        accountForBody = true;
                    }
                    parentNode = parentNode.offsetParent;
                }
            }

            // 還是針對 Safari 的
            if (accountForBody) { //safari doubles in this case
                pos[0] -= el.ownerDocument.body.offsetLeft;
                pos[1] -= el.ownerDocument.body.offsetTop;
            } 
            parentNode = el.parentNode;

            // account for any scrolled ancestors
            while ( parentNode.tagName && 
                         !patterns.ROOT_TAG.test(parentNode.tagName) ) 
            {
               // work around opera inline/table scrollLeft/Top bug
               // 注3.
               if (Y.Dom.getStyle(parentNode, 'display')
                                  .search(/^inline|table-row.*$/i)) { 
                    pos[0] -= parentNode.scrollLeft;
                    pos[1] -= parentNode.scrollTop;
                }

                parentNode = parentNode.parentNode; 
            }

            return pos;
        };
    }
}() // NOTE: Executing for loadtime branching注. 有關 IE 的 getBoundingClientRect 方法,可以參考這里。
注. Safari 的 BUG,詳細情況參見這里。
注. 參見老外的原話(出處):
"- Remove parent scroll UNLESS that parent is inline or a table 
to work around Opera inline/table scrollLeft/Top bug"
Fixed in Opera 9.5. (also, Opera 9.5 supports getBoundingClientRect 
and getClientRects.)最后,有關更多 DOM 的兼容性,可以參看 PPK 的總結(怎么又是他)。

JavaScript技術javascript YUI 讀碼日記之 YAHOO.util.Dom - Part.4,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 宋元甫| 红电视剧演员表| 零下的风 完整版| 金太阳教育试卷答案网| 美女热吻| 黄金比例身材| 虞书欣新剧永夜星河免费观看| 美国西部牛仔电影大全| 拔萝卜视频免费完整版| 韩国电影解禁男女| 我有一个好朋友作文二年级 | 电视剧对峙| 肢体的诱惑| 暗恋桃花源剧本| 性视频动态图| 抖音官方| 陕西卫视节目表| 教育向美而生读书心得体会 | ★爱色★直播| 大学英语精读3第三版全书答案| 黄视频免费| 女生宿舍2在线| 孤岛飞鹰演员表| 创业史全文免费阅读| 红剪花| 蒋雯丽个人简历| 超级小熊布迷全集免费观看| 啊摇篮电影| 熊汝霖| 琉璃演员表全部演员介绍| 杨少华简历个人资料简介| 九号所有车型图片| 韩国电影《姐姐》| 小数加减法100道题| 快播电影网怡红院| 心奇爆龙| 从此以后歌词| 幼儿园玩具| 我的宇宙| 电影《塔蒂亚娜1》演员表| 卡通图片头像|