1. JavaScript / Говнокод #1853

    +149.8

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function getOffset(elem) {
        if (elem.getBoundingClientRect) {
            // "правильный" вариант
            return getOffsetRect(elem)
        } else {
            // пусть работает хоть как-то
            return getOffsetSum(elem)
        }
    }

    Запостил: code_master, 16 Сентября 2009

    Комментарии (9) RSS

    • и чо? комменты порадовали?
      Ответить
    • а откуда этот код ? непонятно что делают другие функции
      Ответить
    • Код для будущей отладки под другие браузеры, я бы это говнокодом не назвал...
      Ответить
    • Это код отсюда http://javascript.ru/ui/offset (см. Комбинированный вариант)
      Очень качественный, на мой взгляд. Зачем он тут?
      Ответить
      • function getOffsetRect(elem) {
            // (1)
            var box = elem.getBoundingClientRect()
         
            // (2)
            var body = document.body
            var docElem = document.documentElement
         
            // (3)
            var scrollTop = window.pageYOffset || docElem.scrollTop || body.scrollTop
            var scrollLeft = window.pageXOffset || docElem.scrollLeft || body.scrollLeft
         
            // (4)
            var clientTop = docElem.clientTop || body.clientTop || 0
            var clientLeft = docElem.clientLeft || body.clientLeft || 0
         
            // (5)
            var top  = box.top +  scrollTop - clientTop
            var left = box.left + scrollLeft - clientLeft
         
            return { top: Math.round(top), left: Math.round(left) }
        }
        function getOffsetSum(elem) {
            var top=0, left=0
            while(elem) {
                top = top + parseInt(elem.offsetTop)
                left = left + parseInt(elem.offsetLeft)
                elem = elem.offsetParent        
            }
         
            return {top: top, left: left}
        }
        Ответить
      • и не впадлу было искать откуда...?
        Ответить
    • а коммент всё-таки жжёт))
      Ответить
    • code_master по ходу сопляк в разработке, как и многие говнопостеры :)
      Ответить
    • Меня порадовали тока каменты и все, и взял я его не оттуда откуда указали :)
      Ответить

    Добавить комментарий