30.04.2015, 18:21
|
Аспирант
|
|
Регистрация: 16.02.2015
Сообщений: 39
|
|
Подсчет Top , left в %
Здравствуйте,есть div внутри которых таблица/таблицы,мне нужно посчитать top left этих таблиц в процентах,относительно родителя. В px я получил top и left а вот в процентах проблема
Код:
|
$("#btn4").click(function(){
var parentDivId = $(this).parent().attr('id');
var widthparent=$("#"+parentDivId).width();
var heightparent=$("#"+parentDivId).height();
var c_t=$("table").length;
var posit=" ";
for(var i = 1;i<=c_t;i++)
{
var t = $( "#t"+i );
var position = t.position()
posit+="#t"+i+"{left: " + (100*position.left/widthparent) + ", top: " + (100*position.top/heightparent)+"}"
}
alert(posit);
}); |
Когда так,все нормально работает,но в px
Код:
|
posit+="#t"+i+"{left: " + position.left + ", top: " + position.top+"}" |
Заранее Спасибо!
|
|
30.04.2015, 18:35
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
zkolya,
может проценты забыли?
posit+="#t"+i+"{left: " + (100*position.left/widthparent) + "%, top: " + (100*position.top/heightparent)+"%}"
|
|
30.04.2015, 18:45
|
Аспирант
|
|
Регистрация: 16.02.2015
Сообщений: 39
|
|
рони,да не,дело вообще навряд ли в этом
вот что на выходе
#t1{left: Infinity%, top: Infinity%}
|
|
30.04.2015, 19:29
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
zkolya,
вы с c_t ничего не перепутали в for?
|
|
30.04.2015, 19:35
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
zkolya,
$("#btn4").click(function(){
var parentDivId = $(this).parent().attr('id');
var widthparent=$("#"+parentDivId).width();
var heightparent=$("#"+parentDivId).height();
var c_t=$("table");
var posit=" ";
c_t.each(function(indx, el){
var position = $(this).position();
posit+="#t"+(indx+1)+"{left: " + (100*position.left/widthparent) + "%, top: " + (100*position.top/heightparent)+"%}"
});
alert(posit);
});
Последний раз редактировалось рони, 30.04.2015 в 19:38.
|
|
30.04.2015, 20:43
|
Аспирант
|
|
Регистрация: 16.02.2015
Сообщений: 39
|
|
рони,
Вот смотрите,тоже самое((
http://jsfiddle.net/qhbgrzj2/ Нужно создать новый div нажатать на него и сделать его активным ,после добавить в него таблицу(предварительно внизу ввести в поля количество строк и столбцов)
Выводит infinity
|
|
30.04.2015, 20:58
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
zkolya,
var parentDivId = $(this).parent().attr('id'); у вашего body нет id
|
|
30.04.2015, 21:06
|
Аспирант
|
|
Регистрация: 16.02.2015
Сообщений: 39
|
|
рони,
Прощу прощения,а body тут причем?
я сейчас думаю что то типо такого сделать.но этот вариант тоже не работает
posit+="#t"+i+"{left: " + (100*position.left/$("#"+$("#t"+i).parent().attr('id')).width()) + ", top: " + (100*position.top)+"}"
|
|
30.04.2015, 21:13
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
zkolya,
http://jsfiddle.net/qhbgrzj2/1/
как вариант появление id после клика на вновь созданную таблицу - потом на кнопку нажать
|
|
30.04.2015, 21:15
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,121
|
|
Сообщение от zkolya
|
Прощу прощения,а body тут причем?
|
потому что parent для вашей кнопки это body
|
|
|
|