2010-11-27 5 views
2

Ich habe ein Div, es wird eine bestimmte feste Höhe sein. Sagen Sie 500px. Im Allgemeinen wird es Inhaltsblöcke haben, die länger als 500 px sind und Überlauf verwenden: auto; Eine Bildlaufleiste erscheint im Element. Aber manchmal nicht und das Design sieht wackelig (die Bildlaufleiste ist in der Tat ein Design-Element hier).Erkennen, ob ein Überlauf auf einem Element ins Spiel kommt

Markup könnte wie folgt aussehen:

<div class="col2"> 
    ... 
</div> 

Wenn .col2 überquellenden Elemente hat (dh eine Scrollbar) Ich will nichts tun, wenn es nicht der Fall, ich will eine andere Klasse (etwas mit einer Grenze addieren), vielleicht .border.

Nur nicht sicher, wie man das macht? Vorzugsweise mit jQuery, da diese Bibliothek bereits verwendet wird. Würde wirklich jede Hilfe zu schätzen wissen!

+2

Wäre das nicht etwas mit wie 'Überlauf-y: scroll;' besser sein? – Stephen

Antwort

1

Dies sollte Ihnen helfen ... Im Grunde erstellen Sie Funktionen, die Ihnen Wetter oder nicht das Div eine Bildlaufleiste haben. (Entweder vertikal oder horizontal)

$.fn.hasVerticalScrollBar = function() { 
    if (this[0].clientHeight < this[0].scrollHeight) { 
    return true 
    } else { 
    return false 
    } 
} 

$.fn.hasHorizontalScrollBar = function() { 
    if (this[0].clientWidth < this[0].scrollWidth) { 
    return true 
    } else { 
    return false 
    } 
} 

Nutzungs

alert($('#mydivid').hasHorizontalScrollBar()); 
alert($('#mydivid').hasVerticalScrollBar()); 
Verwandte Themen