Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
63 / 3 / 1
Регистрация: 11.05.2011
Сообщений: 666
1

Какая замена в IE7 свойству offsetLeft?

10.07.2014, 21:18. Показов 1293. Ответов 13
Метки нет (Все метки)

a? подскажите, пожалуйста
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.07.2014, 21:18
Ответы с готовыми решениями:

OffsetLeft при position - absolute
Камрады, HELLO. Что есть: div в нем span, который имеет значение left. Значение position для div...

Определение абсолютных координат картинки через offsetTop и offsetLeft
Есть следующая проблема - при определении абсолютных координат картинки через offsetTop и...

Какая нужна замена?
поясните пожалуйста какая нужна замена и почему?

Для введенного целого трехзначного числа определить, какая цифра в числе является первой, какая второй и какая третьей
Разработать программу, которая для введенного целого трехзначного числа определяет, какая цифра в...

__________________

Записывайтесь на профессиональные курсы Fullstack-разработчиков на JavaScript‌
Обучение в Java Mentor с оплатой после трудоустройства
13
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
11.07.2014, 02:59 2
Johnlion, уточните, что нужно.

В общем случае, - неплохо подходит element.getBoundingClientRect();
0
63 / 3 / 1
Регистрация: 11.05.2011
Сообщений: 666
11.07.2014, 11:27  [ТС] 3
Tatikoma, мне нужно расстояние от левого края div'a до левого края окна, как это сделать, чтоб в ИЕ7 работало?
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
11.07.2014, 15:23 4
Лучший ответ Сообщение было отмечено Johnlion как решение

Решение

А, ну так это ровно то что вам нужно!

Javascript
1
2
var bcr = element.getBoundingClientRect();
alert(bcr.left);
Причем обратите внимание, что это именно от левого края окна, а не документа! Если понадобится от документа - прибавите scrollLeft.

К слову, этот подход быстрее и точнее, - используйте offsetParent/offsetLeft только при недоступности метода getBoundingClientRect.
1
супермизантроп
Эксперт JS
3862 / 2936 / 685
Регистрация: 18.04.2012
Сообщений: 8,540
11.07.2014, 16:43 5
Цитата Сообщение от Tatikoma Посмотреть сообщение
К слову, этот подход быстрее и точнее
ух ты! а мужики то и не знали!

на какой олимпиаде свойства offsetLeft|Top соревновались со свойствами left|top объекта TextRectangle ?

и где можно получить официальный протокол с результатами соревнований, из которого видно, что:

а) вторые свойства быстрее первых на ХХХ милли(микро-, нано-, зепто-)секунд ?
б) погрешность вторых свойств меньше таковой у первых ?


Не по теме:

терпеть ненавижу любителей красивых словечек
любой всплывающий div у них - "модальное" окно
всякий редкоиспользуемый метод у них "точнее" и "быстрее"

0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
11.07.2014, 17:15 6
Язвить не обязательно, я с удовольствием отвечу на ваши вопросы.

Цитата Сообщение от kalabuni Посмотреть сообщение
на какой олимпиаде свойства offsetLeft|Top соревновались со свойствами left|top объекта TextRectangle ?
С чего вы взяли что они соревновались? - Мне о таких соревнованиях не известно, если услышите что-то - дайте знать.

Цитата Сообщение от kalabuni Посмотреть сообщение
вторые свойства быстрее первых на ХХХ милли(микро-, нано-, зепто-)секунд ?
В зависимости от реализации вызов этих методов может занимать различное время. Если смотреть на актуальную версию chromium-browser - результат скорее обратный, использование getBoundingClientRect будет занимать на порядок больше времени.

Цитата Сообщение от kalabuni Посмотреть сообщение
погрешность вторых свойств меньше таковой у первых ?
Это личный опыт. Почитайте в интернете, - многие разработчики сталкивались с тем, что в разных браузерах эти свойства косячат по-разному на сложной верстке. Крайне рад, что вам не приходилось с этим сталкиваться.

-----

Я не троллю, я прекрасно понимаю, что вы имеете в виду. Однако хочу обратить ваше внимание, что вы невнимательно читали то, что я пишу.
А пишу я что быстрее именно подход, а не полученный код. Написать вызов одной функции - явно быстрее, нежели писать функцию итерирующую offsetParent. Я говорю о чистом JS, т.к. в теме обсуждается чистый вариант - в противном случае автор использовал соответствующие методы фреймворка, а не offsetLeft.

Не по теме:

Цитата Сообщение от kalabuni Посмотреть сообщение
терпеть ненавижу любителей красивых словечек
Это ваши личные половые трудности.
Цитата Сообщение от kalabuni Посмотреть сообщение
любой всплывающий div у них - "модальное" окно
Модальным окном называется любое окно блокирующее работу с приложением. Передайте этим людям, что любой всплывающий блок не может считаться модальным окном.
Цитата Сообщение от kalabuni Посмотреть сообщение
всякий редкоиспользуемый метод у них "точнее" и "быстрее"
Это вероятно камень в мой огород? - Я далеко не всякий метод обзываю точнее и быстрее.

0
kalabuni
11.07.2014, 17:30
  #7

Не по теме:

Tatikoma, монологи для Петросяна писать не пробовали?

0
Tatikoma
11.07.2014, 17:37
  #8

Не по теме:

kalabuni, уточните пожалуйста - вы считаете мой текст смешным или нет?

Мне просто не кажется, что у товарища Петросяна - смешные шутки, а следовательно вы имеете в виду что мой текст не смешной.

Соответственно мне не ясен смысл вашего комментария, т.к. ответ на вопрос на форуме программистов и не обязан быть смешным.

Если предположить, что собеседник не идиот и смысл всё-таки есть, то можно предположить следующее:
1. Вы интересуетесь не пишу ли я монологи для Петросяна, т.к. моё сообщение - смешное.
2. Т.к. моё сообщение смешное и вы предположили что я пишу монологи для Петросяна - вы считаете юмор Петросяна смешным.
Я не имею ничего против творчества этого человека, но нахожу немного странными тех людей, которые от него фанатеют. Вы странный.

0
63 / 3 / 1
Регистрация: 11.05.2011
Сообщений: 666
11.07.2014, 20:00  [ТС] 9
Tatikoma, а отступ от правого края блока до правого края окна? bcr.right что-то очень большое число показывает
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
11.07.2014, 20:43 10
Johnlion, отступ справа = ширина экрана - отступ слева - ширина элемента.
1
388 / 275 / 76
Регистрация: 19.09.2011
Сообщений: 828
12.07.2014, 04:00 11
kalabuni, http://jsperf.com/offset-vs-getboundingclientrect
+ http://jsperf.com/offset-vs-ge... ientrect/7

Цитата Сообщение от kalabuni Посмотреть сообщение
и где можно получить официальный протокол с результатами соревнований, из которого видно, что:
а) вторые свойства быстрее первых на ХХХ милли(микро-, нано-, зепто-)секунд ?
ты же не заверяешь с нотариусом каждую строчку своего кода.

Не по теме:

хотя твой код такой грязный, что его никто заверять и не стал бы

0
супермизантроп
Эксперт JS
3862 / 2936 / 685
Регистрация: 18.04.2012
Сообщений: 8,540
12.07.2014, 05:39 12
nubideus, ресурсом пользоваться не умеете

см. последнюю ревизию -- http://jsperf.com/offset-vs-ge... entrect/14 -- во всех браузерах свойство offset возвращает значение значительно быстрее
0
388 / 275 / 76
Регистрация: 19.09.2011
Сообщений: 828
12.07.2014, 13:15 13
Цитата Сообщение от kalabuni Посмотреть сообщение
см. последнюю ревизию -- http://jsperf.com/offset-vs-ge... entrect/14 -- во всех браузерах свойство offset возвращает значение значительно быстрее
лол, там же написано:
operations per second (higher is better)
чем полосочка длиннее, тем лучше

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function fullOffset(elm) {
    
  var offsetTop = elm.offsetTop,
    offsetLeft = elm.offsetLeft,
    elm = elm.offsetParent;
 
  while (elm !== null) {
    offsetTop += elm.offsetTop;
    offsetLeft += elm.offsetLeft;
    elm = elm.offsetParent;
  }
 
  return {
    left: offsetLeft,
    top: offsetTop
  };
}
будто бы при таком коде getBoundingClientRect может быть медленнее

Цитата Сообщение от kalabuni Посмотреть сообщение
ресурсом пользоваться не умеете
см. последнюю ревизию
см. я сделал еще одну последнюю ревизию
http://jsperf.com/offset-vs-ge... entrect/15
Какая замена в IE7 свойству offsetLeft?
0
F́́́́́́́ŕ́́́́́́́é́́́ ́ak
259 / 223 / 109
Регистрация: 07.07.2014
Сообщений: 965
12.07.2014, 23:35 14
http://tati.pro/1225735/speed-test.html (что к чему - см. сурсы)
Как-то у меня в chromium/linux - offset'ы шустрее работают в 1.5-3 раза.

Но тут опять-таки от вложенности еще зависит. Что ни разу не меняет того, что оффсеты косячат.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.07.2014, 23:35

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Before/after в ie7
кто нибудь может подсказать как можно сделать эмуляцию before/after в ie7 что бы не плодить лишнюю...

IE6, IE7
Зарание прошу прощения если создал тему не там где надо!! А вопрос в общем такой: Какие...

виснет IE7
В >html< реализовано выпадающее меню с сылками типа: >td class="mainmenu >a rel="dropmenu1"...

Анимация в IE7,8
Всем добрый день возникла такая проблема, делаю шаблон, сделал чтобы был там анимированный баннер,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.