使用 jQuery 檢測元素是否存在水平滾動條的函數 hasHScrollBar()
(以及垂直滾動條檢測函數)。
jQuery hasHScrollBar()
函數
// 用于检查元素是否存在滚动条的实用程序函数 jQuery.fn.hasScrollBar = function(direction) { if (direction === 'vertical') { return this.get(0).scrollHeight > this.innerHeight(); } else if (direction === 'horizontal') { return this.get(0).scrollWidth > this.innerWidth(); } return false; }; // $('#c3 .mbcontainercontent').hasScrollBar('horizontal');
類似函數:
// 用于检查元素是否存在水平滚动条的实用程序函数 jQuery.fn.hasHScrollBar = function() { return this.get(0).scrollWidth > this.innerWidth(); }; // $('#c3 .mbcontainercontent').hasHScrollBar(); // 用于检查元素是否存在垂直滚动条的实用程序函数 jQuery.fn.hasVScrollBar = function() { return this.get(0).scrollHeight > this.innerHeight(); }; // $('#c3 .mbcontainercontent').hasVScrollBar();
另一個版本:
function hasScroll(el, direction) { direction = (direction === 'vertical') ? 'scrollTop' : 'scrollLeft'; let result = !!el[direction]; if (!result) { el[direction] = 1; result = !!el[direction]; el[direction] = 0; } return result; } // alert('vertical? ' + hasScroll(document.body, 'vertical')); // alert('horizontal? ' + hasScroll(document.body, 'horizontal'));
jQuery 和水平滾動條的常見問題 (FAQ)
使用 jQuery 檢查是否存在水平滾動條,您可以使用 scrollWidth
屬性。此屬性以像素返回元素的總寬度,包括填充、邊框和滾動條。如果 scrollWidth
大於 clientWidth
,則表示存在水平滾動條。這是一個簡單的代碼片段:
if (document.documentElement.scrollWidth > document.documentElement.clientWidth) { // 存在水平滚动条 }
scrollWidth
和 clientWidth
之間的區別是什麼? scrollWidth
屬性以像素返回元素的總寬度,包括填充、邊框和滾動條。另一方面,clientWidth
以像素返回元素的可視寬度,包括填充,但不包括邊框、滾動條或邊距。
是的,您可以使用類似的方法來檢查垂直滾動條。您需要比較 scrollHeight
和 clientHeight
,而不是 scrollWidth
和 clientWidth
。
您可以通過使用 jQuery 中的 css()
方法將 overflow
屬性設置為 'hidden'
來隱藏水平滾動條。這是一個簡單的代碼片段:
$("body").css("overflow-x", "hidden");
您可以通過使用 jQuery 中的 css()
方法將 overflow
屬性設置為 'scroll'
來強制顯示水平滾動條。這是一個簡單的代碼片段:
$("body").css("overflow-x", "scroll");
其餘的FAQ與上麵類似,只是將水平滾動條替換為垂直滾動條,或者針對特定元素進行操作。 為了避免重複,這裡不再贅述。 所有問題都可以通過使用scrollWidth
/scrollHeight
和 clientWidth
/clientHeight
屬性以及 jQuery 的 css()
方法來解決。
以上是jQuery檢查是否存在水平滾動的詳細內容。更多資訊請關注PHP中文網其他相關文章!