Skip welcome & menu and move to editor
Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width,initial-scale=1">
  <title>Scroll bar detection: Content does not fill window - JS Bin</title>
  <meta name="description" content="Scroll bar detection: Content does not fill window">
  
  <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
  
</head>
<body>
  
  <p>There is too little content to overflow the window (<code>body</code> size &lt; window size).</p>
  
</body>
</html>
 
// dimension - Either 'y' or 'x'
// computedStyles - (Optional) Pass in the domNodes computed styles if you already have it (since I hear its somewhat expensive)
// todo: this might be more complete https://github.com/hashchange/jquery.isinview/blob/6887aa7affd07877ee6d2c04d48d393c8092632d/src/jquery.isinview.js#L573-646
function hasScrollBars(domNode, dimension, computedStyles) {
    dimension = dimension.toUpperCase()
    if(dimension === 'Y') {
        var length = 'Height'
    } else {
        var length = 'Width'
    }
    var scrollLength = 'scroll'+length
    var clientLength = 'client'+length
    var overflowDimension = 'overflow'+dimension
    var hasVScroll = domNode[scrollLength] > domNode[clientLength]
    // Check the overflow and overflowY properties for "auto" and "visible" values
    var cStyle = computedStyles || getComputedStyle(domNode)
    return hasVScroll && (cStyle[overflowDimension] == "visible"
                         || cStyle[overflowDimension] == "auto"
                         )
          || cStyle[overflowDimension] == "scroll"
}
// --------------------
$( function () {
  var $result = $( "<p />" ),
      message = hasScrollBars( document.body, 'y' ) ? "detected" : "not detected";
  
  $result
    .text( "Vertical scroll bar " + message )
    .appendTo( "body" );
} );
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
hashchangepro
0viewers