Overflow hidden und text eingeben scrollen in Google Chrome
Hier ist mein code-snippet:
Wenn ich klicken und ziehen Sie über die Eingabe von text-Bereich, ich bekomme das div mit overflow:hidden scrollen, wie es würde tun mit overflow:auto. Wenn ich overflow:hidden auf einen div möchte ich das scrollen gesperrt werden als andere Browser.
Das merkwürdige ist, wenn ich padding:0px in das Eingabefeld, das Problem in Chrome nicht mehr auftreten.
Ist es ein Google-Chrome-bug? Jeder workaround, damit es funktioniert ohne den Einsatz von Javascript?
EDIT: Dieses Verhalten passiert auf Safari 5 auch. Vielleicht ist es ein Webkit-Problem.
- Gleiche Problem hier, mit der Ausnahme, dass der workaround bei mir nicht funktioniert. 🙁
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, was fixiert es für mich:
Dank https://stackoverflow.com/users/498031/vken für den Hinweis zu dieser ähnlichen Frage: Problem mit klicken-ziehen-wählen Sie im Texteingabe-Feld auch Schriftrollen übergeordneten element webkit-bug oder feature?
UPDATE 2013-11:
pointer-events:none
wird das Problem behoben, kommt aber mit zahlreichen Nachteilen. Beste Abhilfe für das Problem ist eigentlich, um sicherzustellen, dass Sie haben keine überquellenden Inhalt wie in "der Inhalt deroverflow:hidden
container nicht größer als Sprach-container. Wenn Sie wollen Blättern Inhalt in der via JavaScript, geben Sie Breite&height=0, solange Sie verborgen ist und die Größe nur rechts, bevor Sie es in (leicht getan mit keyframe-Animationen oder zeitgesteuerte überblendungen)WICHTIG: ich traf eine seltsame Fall mit einer angepassten
<input type=file>
Feld in Chrom, die nicht verursacht haben keine überlauf-Probleme als ich geändert es per CSS - dev-tools bestätigt, ABER: Nach einem Blick auf die Shadow-DOM erkannte ich, dass Chrome die eigenen "Knöpfe" traten die eigentliche input-Feld, und daher verursacht der gesamte Behälter größer werden.Wie um zu zeigen, Shadow-DOM: Wenn die Dinge richtig Aussehen, und es ist immer noch ein Problem, gehen Sie zu Google Chrome Dev-Tools, klicken Sie auf die Einstellungen-Schaltfläche in der unteren rechten Ecke. Auf der "allgemein"-Reiter in der Sektion "Elements" ist die option "Show Shadow DOM". Dadurch erhalten Sie das gesamte Bild von dem, was Los ist... Obwohl die meisten der Zeit, es fügt nur eine weitere Schicht der Komplexität, hier ist es wirklich hilfreich!
INPUT
FeldIch lief in dieses, auch. So weit, die Sache, die ich bekommen habe, zu arbeiten das beste ist, mit
pointer-events:none;
. Der einzige Weg, ich könnte es angewandt wurde, um diedisplay: none;
. Ansonsten wurde es ignoriert, so gibt es eine kurze blinken.http://jsfiddle.net/7CuBV/21/
Versuchte ich tiffon Lösung mit JQuery, aber konnte es nicht zu funktionieren mit mehreren Feldern, mouseup würde nicht das Feuer, nachdem ich mich gesetzt hatte, pointer-events none.
So, festlegen der Eingabe "pointer-events" zu keiner löst das problem des scrollen in die verborgenen Inhalte, aber es verhindert, dass der Benutzer konzentriert sich das Feld mit der Maus Ereignisse.
Aber ich merkte, dass Sie auf das label wäre immer noch Arbeit zu konzentrieren den Bereich.
Also machte ich diese Problemumgehung funktioniert, denn alle meine Felder sind in verschachtelten innen div ist. Im Grunde Klick auf das Feld nicht den Fokus, aber noch sprudelt das Ereignis für Eltern:
Problem ist, es lässt Sie nicht wählen Sie den text in das Feld, es sei denn, Sie verwenden die Pfeiltasten auf der Tastatur.
Set scrollLeft und/oder scrollTop 0 in der "onscroll" - Ereignis deaktiviert das scrollen: