За последние 24 часа нас посетили 16715 программистов и 1619 роботов. Сейчас ищут 1788 программистов ...

width() и height() поломались)

Тема в разделе "JavaScript и AJAX", создана пользователем winsok, 24 окт 2017.

  1. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    Беда такая. Пытаюсь получить width и height блоков .panel, но мне выводит в процентах. Раньше все работало нормально.
    HTML:
    1. <div class="layout" style="border-color:#fff;">
    2. <div class="panel" style="width:33.33%;height:66.66%;top:0;left:0;"></div>
    3. <div class="panel" style="width:33.33%;height:33.33%;top:66.66%;left:0;"></div>
    4. <div class="panel" style="width:66.66%;height:100%;top:0;left:33.33%;"></div>
    5. </div>
    Вот как выводит в лог
    Код (Text):
    1. Width: 33.33
    2. Height: 66.66
    3. Width: 33.33
    4. Height: 33.33
    5. Width: 66.66
    6. Height: 100
    Как сделать чтоб оно снова получало фактический размер в пикселях? .layout у него фиксировано 905px

    PS: .layout подгружается из базы с помощью ajax вместе с js
     
  2. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Если ты задал эти параметры в процентах style, то, при запросе из style получишь значение в процентах. Логично же.

    Чтобы реальные размеры объекта получать, надо обращаться к его методу getBoundingClientRect. Или к ему подобным. Либо к свойствам offsetWidth и offsetHeight. По ситуации смотри.
     
  3. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    @Fell-x27, работало все норм) после перемещения js кода в php файл, началось так. Пока js был в файле js все работало норм)
    offsetWidth и offsetHeight не работают
     
  4. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Покажите код.
    --- Добавлено ---
    Это вообще никак не влияет ни на что.
     
  5. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    Код (Javascript):
    1. $(".lay>.layout>div").each(function(i){
    2.         $(this).attr("id", "panel-"+(i+1));
    3.         var iwidth = $(this).width();
    4.         var iheight = $(this).height();
    5.         console.log("Width: "+iwidth);
    6.         console.log("Height: "+iheight);
    7.         $(this).attr("data-minwidth", iwidth);
    8.         $(this).attr("data-minheight", iheight);  
    9.     });
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Огосподи, жиквери..
    Их ты просто вместо width и height писал? Через точку от JQueryObject, да? эхехе..
     
  7. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    а как надо?) вместо только без скобок)
     
  8. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    А надо, для начала, изучить хотя бы основы JS.
    --- Добавлено ---
    И да, а какая, собственно, проблема решается? Не адаптивная ли верстка посредством перелопачивания style в реальном времени?
     
  9. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1
    Отличный совет, а главное бесполезный.
    Повторяю еще раз. Работало до тех пор пока скрипт не перенесли в php:cool:
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Ну раз пхп виноват, а не вы, то удачной отладки.
     
  11. winsok

    winsok Активный пользователь

    С нами с:
    13 сен 2016
    Сообщения:
    82
    Симпатии:
    1