這可能是一個新手問題。我想要做什麼iswatch如果一個特定的元素具有自定義滾動條我想改變其父母的寬度。這完美的工作,如果我在setInterval包裝,因爲它將檢查所有的時間進行更改,但我擔心性能。如何在jQuery甚至Angularjs中更優雅地實現它?觀看DOM變化而不失性能(javascript)
(function($) {
$.fn.hasScrollBar = function() {
return this.get(0).scrollHeight > this.height();
}
})(jQuery);
if ($('#tab-content-3').hasScrollBar()) {
$('#basics md-content').css('width', '95%');
} else {
$('#basics md-content').css('width', '100%');
}
使用基於百分比的寬度來計算滾動條並不會非常健壯,即使不考慮使用'setInterval()'的事實' –
什麼事件會導致滾動條出現?元素是否可以調整大小?可編輯?別的東西?你只是在尋找當用戶放大頁面(從而導致內容佔用更多的地方)?稍後,您可以偵聽「resize」事件。對於前者,這將取決於如何實施觸發器,但每個事件應該或多或少地可以收聽。 – Kaiido