2017-03-17 7 views
1

Ich stehe vor einem Problem mit dem Eingabe-/Textbereichselement in absoluter Position, das halb außerhalb des Containers platziert ist. Die Bildschirmposition scheint dem Caret zu folgen, aber ich würde wirklich gerne in der Lage sein, einen Teil des Textes außerhalb des Elternelements zu schreiben und zu verstecken. Gibt es eine Möglichkeit, den Bildlauf beim Schreiben außerhalb des Containers zu deaktivieren? Es wäre perfekt, wenn der eingegebene Text auch nicht scrollen würde, verstecken Sie einfach, was auch immer außerhalb des Eltern- und Eingabefeldes eingegeben wird.So halten Sie die Bildschirmposition während der Eingabe an die Eingabe außerhalb des Containers

es besser zu erklären Ich habe ein fiddle

.wrapper { 
 
\t width : 200px; 
 
\t height: 150px; 
 
\t position: relative; 
 
\t overflow: hidden; 
 
\t border :1px solid #ccc; 
 
} 
 
input.test1 { 
 
\t position: absolute; 
 
\t top: 50px; 
 
\t left: 5px; 
 
\t width: 250px; 
 
\t 
 
} 
 
input.test2 { 
 
\t position: absolute; 
 
\t top: 10px; 
 
\t left: 90px; 
 
\t width: 150px; 
 
}
<div class='wrapper'> 
 

 
<input type="text" class="test1" /> 
 
<input type="text" class="test2" /> 
 

 
</div>

Antwort

1

Try this:

$('.wrapper').on('scroll', function() { 
 
    $('.wrapper').scrollLeft(0); 
 
});
.wrapper { 
 
\t width : 200px; 
 
\t height: 150px; 
 
\t position: relative; 
 
\t overflow: hidden; 
 
\t border :1px solid #ccc; 
 
} 
 
input.test1 { 
 
\t position: absolute; 
 
\t top: 50px; 
 
\t left: 5px; 
 
\t width: 250px; 
 
\t 
 
} 
 
input.test2 { 
 
\t position: absolute; 
 
\t top: 10px; 
 
\t left: 90px; 
 
\t width: 150px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class='wrapper'> 
 

 
<input type="text" class="test1" /> 
 
<input type="text" class="test2" /> 
 

 
</div>

+0

Danke, dass mein Wrapper-Scrolling aufgelöst wird. Gibt es eine bekannte Lösung, um das Scrollen von Text im Eingabefeld zu stoppen? Arg0n Ich habe deine Antwort gewählt, aber aufgrund meines schlechten Rufs scheint es nicht im öffentlichen Forum zu erscheinen. Danke für Ihre Hilfe. –

+0

Ich denke, Sie könnten das Attribut 'maxlength' für die Eingaben festlegen, um das Scrollen zu verhindern. – Arg0n

+0

Ich habe auch .scroll() Methode auf Eingabeelement verwendet, aber ich werde sehen, welches Ergebnis ich mit maxlenght bekommen werde. Vielen Dank –

0

Sind Sie wollen zu beheben, den Abstand auf die Eingabefelder erstellt? Wenn ja, habe ich nur ein Leerzeichen zwischen "Eingabe" und "Test1" und "Test2" eingefügt. Dies würde das Problem beheben, dass das erste Textfeld halbwegs vom div entfernt ist.

.wrapper { 
 
\t width : 200px; 
 
\t height: 150px; 
 
\t position: relative; 
 
\t overflow: hidden; 
 
\t border :1px solid #ccc; 
 
} 
 
input .test1 { 
 
\t position: absolute; 
 
\t top: 50px; 
 
\t left: 5px; 
 
\t width: 250px; 
 
\t 
 
} 
 
input .test2 { 
 
\t position: absolute; 
 
\t top: 10px; 
 
\t left: 90px; 
 
\t width: 150px; 
 
}
<div class='wrapper'> 
 

 
<input type="text" class="test1" /> 
 
<input type="text" class="test2" /> 
 

 
</div>

+0

Hallo, die Position der Eingabefelder wird zwischen ihnen zufällig daher sein Abstand zu mir spielt keine Rolle. Eigentlich muss es halb außerhalb des Elternteils sein. Ich versuche Scrollen innerhalb der Eingabe zu deaktivieren, wenn der Test länger als ein Feld ist. Auch Bildschirm/Kameraposition (wie ich keine besseren Worte habe, um es zu beschreiben) folgt dem Caret beim Tippen, ich suche den Weg, um es in der ursprünglichen Position zu halten, auch wenn der Cursor am Ende der Testlinie steht. –

Verwandte Themen