Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2015, 03:36   #1
justfor
Пользователь
 
Регистрация: 09.02.2015
Сообщений: 12
По умолчанию Неправильно определяется отступ слева

Здравствуйте

У меня есть arrayDiv, в который динамически добавляются элементы, и arrowL, arrowR и arrowM.
Код:
<div class="main">
		<div id="arrayDiv">
		</div>
		<div id="arrowL"><img src="arrow_left.png"></div>
		<div id="arrowR"><img src="arrow_right.png"></div>
		<div id="arrowM"><img src="arrow_middle.png"></div>
		<input type="button" id="searchButton" value="Дальше" onclick="nextStep()">
</div>
По клику на кнопку я должен определить координату для Элементы[left], Элементы[right] и Элементы[mid] и передвинуть соответствующую стрелку к ним

CSS:

Код:
.main {
       margin:0 auto;
	   width: 1000px;
	   position:relative;
    }

#arrowL, #arrowR, #arrowM {
          display:none;
	  margin-top:10px;
	  width:30px;
	  height:30px;
	  position:absolute;
}
Как пытаюсь передвигать:

Код:
        var arrayElements = document.getElementsByClassName('arrayElement');
	var arrowL = document.getElementById('arrowL');
	var arrowR = document.getElementById('arrowR');
	var arrowM = document.getElementById('arrowM');		
	var posL = $(arrayElements[left]).offset();	
	var posR = $(arrayElements[right]).offset();	
	var posM = $(arrayElements[mid]).offset();	
	$(arrowL).animate({left: posL.left,}, 1200, function() {});
	$(arrowM).animate({left: posM.left, }, 1200, function() {});	
	$(arrowR).animate({left: posR.left,}, 1200, function() {});
Проблема в том, что в окне 1024x всё окей, а вот если на 1366, то получается такое:


Стрелки съезжают

Помогите разобраться
justfor вне форума Ответить с цитированием
Старый 25.02.2015, 09:18   #2
mv28jam
Старожил
 
Аватар для mv28jam
 
Регистрация: 09.09.2008
Сообщений: 2,624
По умолчанию

В мануале есть замечание
Цитата:
Note: jQuery does not support getting the offset coordinates of hidden elements or accounting for borders, margins, or padding set on the body element.

While it is possible to get the coordinates of elements with visibility:hidden set, display:none is excluded from the rendering tree and thus has a position that is undefined.
Не ваш ли случай?
Стрелок-охотник
mv28jam вне форума Ответить с цитированием
Старый 25.02.2015, 10:37   #3
justfor
Пользователь
 
Регистрация: 09.02.2015
Сообщений: 12
По умолчанию

mv28jam, использовал первое попавшееся через гугол, не прочитав мануалы
надо было юзать position, он относительно родителя координаты возвращает.
Спасибо!
justfor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не определяется тип var qrax C# (си шарп) 7 21.04.2014 01:38
Язык не определяется peplenko Общие вопросы по Java, Java SE, Kotlin 2 04.08.2011 17:55
Не определяется главный класс PastoriXx Общие вопросы по Java, Java SE, Kotlin 3 21.04.2011 18:46
Казахский язык не определяется adil Общие вопросы Delphi 9 02.08.2010 19:31
Не определяется монитор. Alex Cones Операционные системы общие вопросы 6 17.01.2010 19:05