Свойства Top и его определение!
$("div").text($("#book").attr("alt")); <img id="book" src="fiesta/lightbox2/images/image-1.jpg" width="90" height="66" alt="gert" /> <div id="pole"> </div> Короче говоря свойство Alt добавляется , а вот TOP ни в какую , с чем это связано. Нужно узнать положение элемента в любой момент времени при вызове функции, как узнать? |
Добавляется в смысле значение заносится в div в виде текста.
|
-- Вы, наверное, хорошо стреляете?
-- Подходяще, -- ответил Азазелло. -- А на сколько шагов? -- задала Маргарита Азазелло не совсем ясный вопрос. -- Во что, смотря по тому, -- резонно ответил Азазелло. |
$('#book').attr("top",function(arr){ $("div").text(arr);});
Такой вариант все время показывает 0, хотя элемент перемещался! В arr заносится значение top , а не тут то было! Ема е! |
Как узнать значение css top.?
|
function printing() { var top=0, left=0; top = $('#book').offsetTop; left = $('#book').offsetLeft; $("div").text("Высота элемента " + top + " равна " + left + "px."); } Нашел еще вот такой вариант, но значение не определяется , пишет undefinedpx. <div id="pole"> <img id="book" src="fiesta/lightbox2/images/image-1.jpg" width="90" height="66" alt="gert" style="position:relative"/> </div> #pole { width:400px;height:400px; position:absolute;} |
Цитата:
$('elem').css('top'); |
Яа а ху! все отлично!
|
Уважаемый Валик, у предложенного Вами способа есть одно НО, получаем ответ в виде Число+.px
Что делает невозвожным оператор сравнения с числом! Ищу ответ , форматирование строк или перевод в число? |
var top = '25px'; var number = 15; alert(parseInt(top) > number); Используйте функцию parseInt к примеру. |
tx=$('#book').css('top'); ty=$('#book').css('left'); tx1 = tx.replace("px", ""); ty1 = ty.replace("px", ""); alert(tx1+" "+ty1); if (ty1 > 100) Вот где то так работает, тоесть мы методом replace форматируем строку, убираем px (меняя на ничего, вот бы так в магазине), и после этого все проверяется норм, тоесть условие что ty1>100 а если без replace то нифига! |
parseInt наверное даже лучше)) или правильнее!
Нужно провести тест на скорость работы, каким методом быстрее перевести в нужный вид и проверить? Например 100 000 0 вариантов! Что Вы на это скажите Валентин? |
$(document).ready(function() { var y = '+=1'; var x = '+=1'; var i = 0; for (i=0;i<500;i++) { $("p").text(i); tx=$('#book').css('top'); ty=$('#book').css('left'); tx1 = tx.replace("px", ""); ty1 = ty.replace("px", ""); if (ty1 > 100) { y = '-=1'; } else { y = '+=1'; } if(tx1 > 100) { x = '-=1'; } else { x = '+=1'; } $('#book').animate( { opacity: 0.25, top:x, left: y }, 1, function() { // alert($('#book').css('top')); // Animation complete. }); } //}); }); Грубо говоря эта функция должна проверять каждый раз условие на зашел ли элемент за границу, а получается что выполняется сначала строчка $("p").text(i); , а только потом анимация и то без проверки условий, короче говоря порядок выполнения неправильный! надеюсь ясно что я хочу получить в итоге |
Часовой пояс GMT +3, время: 10:45. |