Я понимаю, что могу использовать jQuery для получения ширины элемента, но мне любопытно; есть ли способ сделать это с помощью AngularJS?Как я могу получить ширину элемента с помощью AngularJS?
ответ
Родной JS (#id):
document.getElementById(id).clientWidth;
Родной JS (querySelector (класс, идентификатор, селектор CSS3)):
document.querySelectorAll(".class")[0].clientWidth;
Подключив это в angular.element:
angular.element(document.getElementById(id)).clientWidth;
angular.element(document.querySelectorAll(".class")[0]).clientWidth;
Если вам нужно получить не округленные числа, используйте getBoundingClientRect.
angular.element(document.getElementById(id)).getBoundingClientRect();
Некоторые ресурсы по теме:
- http://msdn.microsoft.com/en-us/library/hh781509(VS.85).aspx
- https://developer.mozilla.org/en-US/docs/Web/API/Element.clientWidth
- https://developer.mozilla.org/en-US/docs/Web/API/element.getBoundingClientRect
Если это плывет лодка с точки зрения синтаксиса и не-нужно подключить jQuery в микс, будьте осторожны с кросс-браузерным адом.
Возможно, мне что-то не хватает, но примеры «углового.элемента» не работают для меня. Я думаю, вам нужно * развернуть * элемент DOM из своей оболочки jqLite, чтобы получить доступ к основным DOM-методам/свойствам. то есть 'angular.element (document.getElementById (id)) [0] .clientWidth;', NOT 'angular.element (document.getElementById (id)). clientWidth;' Это, конечно, делает всю вещь 'angleular.element' в этом примере глупо, но нужно сделать что-то подобное, чтобы получить элемент ванильного дома, например, из '' функции '' '' '' '' '' '. –
@ ZachLysobey прав ... по крайней мере в Chrome, вам нужно выбрать первый элемент: angular.element (document.getElementById (id)) [0] .clientWidth – azuax
Если вы почесали свою голову, как я, со всеми этими предложениями, и они не работают, я обнаружил, что мне нужно установить тайм-аут. Я не уверен, почему, может быть, потому, что я использую атрибуты материального дизайна для своих div.
setTimeout(function(){
var divsize = angular.element(document.getElementById('fun_div')).prop('offsetWidth');
console.log('Width of fun_div: ' + divsize);
},50);
Использование setTimeout для этой цели - не очень хорошая идея. В этом случае вы предполагаете, что браузер завершит рендеринг всего, что вам нужно, в течение 50 мс. Я уверен, что современный компьютер может справиться с этим, но как насчет бюджетного смартфона? Вместо этого используйте тайм-аут Angulars $, он гарантирует, что весь рендеринг закончен, прежде чем вызывать свою функцию. – HammerNL
@HammerNL Согласен. – Helzgate
- 1. Как я могу узнать ширину элемента div
- 2. Как я могу получить полную ширину этого элемента?
- 3. Как я могу получить ширину элемента/высоту в модальном (бутстрапе)
- 4. Как я могу получить всю доступную ширину?
- 5. Получить живую ширину элемента
- 6. Как получить ширину элемента g?
- 7. Как я могу получить правильную ширину JTable?
- 8. Увеличьте ширину элемента с помощью jqLite
- 9. Могу ли я установить ширину элемента viewpager?
- 10. Как получить максимальную ширину моего элемента css с помощью javascript
- 11. Могу ли я получить реальную ширину и высоту элемента Text?
- 12. Ember.js - как получить ширину элемента?
- 13. Создание элемента html с jquery, как я могу получить ширину элемента?
- 14. Как получить ширину границы элемента в IE7 с помощью jQuery?
- 15. Как я могу получить данные с помощью ресурса Angularjs?
- 16. Как я могу получить ответ POST с помощью angularjs?
- 17. Установите ширину элемента с помощью другого элемента
- 18. Как я могу получить ту же «ширину»?
- 19. Как я могу получить ширину объекта CVOpenGLTextureRef?
- 20. Как я могу получить тип элемента массива с помощью RTTI
- 21. Как я могу получить класс скрытого элемента с помощью JQuery?
- 22. Как я могу получить размер шрифта элемента с помощью jQuery?
- 23. Как я могу получить класс элемента с помощью jQuery/javascript?
- 24. Как я могу получить текст первого элемента с помощью Nokogiri?
- 25. Как я могу получить elementbyname с помощью элемента управления webbrowser?
- 26. Как получить ширину без размера полосы прокрутки с помощью AngularJS?
- 27. Как получить ширину элемента с javascript?
- 28. Получить идентификатор элемента HTML с помощью AngularJS
- 29. Как изменить ширину элемента с помощью Javascript?
- 30. Как я могу получить доступ к следующим свойствам/атрибутам элемента sibling с помощью angularjs?
Вы можете использовать '.css()' – elclanrs
является CSS дает правильное значение для коробчатых изменения размера ситуаций или с авто рассчитывается ширин? – Lupus
try '$ ('element'). Width();' в js .. заменить 'element' с помощью вашего идентификатора или класса. Ссылка: http://api.jquery.com/width/ –