jQuery - узнать ширину элемента, как указано в CSS (например, в% age, если он был указан в% age, а не только в px)

Аналогично этому вопросу: получить процентное значение правила CSS в jQuery

Однако я пишу плагин, и он должен изящно работать с ним, в зависимости от того, как изначально была указана ширина. Если элемент был первоначально указан в пикселях, это хорошо, так как это значение, которое .width () , .innerWidth () , outerWidth () и .css ('width') return.

Но я хочу знать, был ли оригинал установлен в процентах. Таким образом, если размер элемента контейнера изменяется, я знаю, как пересчитать ширину, установленную для моего элемента.

Возможно ли это? Единственное, о чем я могу думать, - это попытаться перебрать в файле document.styles, чтобы найти соответствующие правила, но я думаю, что это будет более или менее невозможно сделать в общем. Есть еще идеи?

Спасибо!

12
задан Community 23 May 2017 в 12:19
поделиться

2 ответа

Я не смог найти способ сделать то, что я просил в вопросе, но я придумал обходной путь, который позволяет мне сделать то, что мне нужно в моей ситуации. Код, о котором идет речь, относится к моему плагину jQuery под названием jScrollPane ( http://jscrollpane.kelvinluck.com/ ). В итоге я устанавливаю ширину в null (elem.css('width', null);). Это удаляет ширину, которую я установил ранее, и позволяет элементу принять естественную ширину, определенную в таблице стилей (т.е. используя процент, если он был определен именно так). Затем я могу измерить это новое значение и использовать его для установки желаемой ширины...

2
ответ дан 2 December 2019 в 23:42
поделиться

Похоже, .css ('width') мне подходит.

Небольшой пример, показывающий, как это работает:

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.min.js"></script>
</head>
<body>

<div style="width:10%;" id="foo"></div>
<script>
alert($("#foo").css('width'));
</script>

</body>
</html>

Это дает мне выход «10%». Надеюсь, я не пропустил ничего очевидного.

2
ответ дан 2 December 2019 в 23:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: