Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Подсчет Top , left в % (https://javascript.ru/forum/jquery/55500-podschet-top-left-v-%25.html)

zkolya 30.04.2015 18:21

Подсчет 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

zkolya,
может проценты забыли?
posit+="#t"+i+"{left: " + (100*position.left/widthparent) + "%, top: " + (100*position.top/heightparent)+"%}"

zkolya 30.04.2015 18:45

рони,да не,дело вообще навряд ли в этом
вот что на выходе
#t1{left: Infinity%, top: Infinity%}

рони 30.04.2015 19:29

zkolya,
вы с c_t ничего не перепутали в for?

рони 30.04.2015 19:35

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);
});

zkolya 30.04.2015 20:43

рони,
Вот смотрите,тоже самое((
http://jsfiddle.net/qhbgrzj2/ Нужно создать новый div нажатать на него и сделать его активным ,после добавить в него таблицу(предварительно внизу ввести в поля количество строк и столбцов)
Выводит infinity

рони 30.04.2015 20:58

zkolya,
var parentDivId = $(this).parent().attr('id'); у вашего body нет id

zkolya 30.04.2015 21:06

рони,
Прощу прощения,а body тут причем?
я сейчас думаю что то типо такого сделать.но этот вариант тоже не работает

posit+="#t"+i+"{left: " + (100*position.left/$("#"+$("#t"+i).parent().attr('id')).width()) + ", top: " + (100*position.top)+"}"

рони 30.04.2015 21:13

zkolya,
http://jsfiddle.net/qhbgrzj2/1/
как вариант появление id после клика на вновь созданную таблицу - потом на кнопку нажать

рони 30.04.2015 21:15

Цитата:

Сообщение от zkolya
Прощу прощения,а body тут причем?

потому что parent для вашей кнопки это body


Часовой пояс GMT +3, время: 23:23.