2
我有一個問題,它進入了一種調試。我希望你問,我怎麼能找出整個標記的哪個元素導致滾動條。任何一種方法都可以。 我想過在開發者工具中搜索overflow
,但是這對我沒有任何幫助。如何找出哪個元素導致滾動條
有誰知道我該如何解決這個問題?
我有一個問題,它進入了一種調試。我希望你問,我怎麼能找出整個標記的哪個元素導致滾動條。任何一種方法都可以。 我想過在開發者工具中搜索overflow
,但是這對我沒有任何幫助。如何找出哪個元素導致滾動條
有誰知道我該如何解決這個問題?
你會想檢查一些東西。首先,一個元素會產生一個會產生滾動條的溢出:overflow: scroll
強制它們,如果需要,overflow: auto
會顯示它們。如果溢出是自動的,您可以檢查它的滾動高度與實際高度。
function isScroller(el) {
var isScrollableWidth, isScollableHeight, elStyle;
elStyle = window.getComputedStyle(el, null); // Note: IE9+
if (elStyle.overflow === 'scroll' ||
elStyle.overflowX === 'scroll' ||
elStyle.overflowY === 'scroll') {
return true;
}
if (elStyle.overflow === 'auto' ||
elStyle.overflowX === 'auto' ||
elStyle.overflowY === 'auto') {
if (el.scrollHeight > el.clientHeight) {
return true;
}
if (el.scrollWidth > el.clientWidth) {
return true;
}
}
return false;
}
var els = document.querySelectorAll('body *');
for (var i = 0, el; el = els[i]; i++) {
if (isScroller(el)) {
console.log(el);
}
}
這裏你可以看到它(打開控制檯):http://jsfiddle.net/rgthree/zfyhby1j/
注意,一些觸摸設備可能不會產生實際的「滾動條」滾動時除外。這不會檢測到,而是該元素能夠滾動。
顯示它發生的頁面 – RST
@RST我沒有它,我想這對這個問題並不重要。很顯然,我可以在很長一段時間後進行搜索並找到它,但是我想動態地找到它。 – supersize
可能的重複:http://stackoverflow.com/questions/4880381/check-whether-html-element-has-scrollbars – hindmost