mam ten sam problem :(
Zrobiłem pełzający obejście (działa do 80%) Czasami wciąż skacze do góry. należy wiedzieć, że mam okno z układem " "Jeśli masz okno z (na przykład) układem" dopasuj "z xtype" formularza "- być może będziesz musiał trochę zmienić kod: Na przykład linia el.child (". x-window-ciało”, fasle) nie będzie działać.
init: function() {
this.control({
...
/** My Ext.window.Window is called reservationwindow **/
'reservationwindow': {
afterrender: function(comp) {
// comp is this Ext.Component == wrapper
var el = comp.getEl();
//extjs adds the scrollbar to the body element...
var elForm = el.child(".x-window-body", false);
// or el.child(".x-panel-body", false);
//we are listinig to the scroll-event now
this.myFormEl = elForm;
this.safeScroll = {top:0, left:0};
elForm.on('scroll', function() {
console.log("save");
this.safeScroll = this.myFormEl.getScroll();
}, this);
elForm.on('click', function() {
var resWin = this.getResWin();
resWin.scrollBy(0,this.safeScroll.top,false);
console.log("reset");
}, this);
elForm.on('keyup', function() {
var resWin = this.getResWin();
resWin.scrollBy(0, this.safeScroll.top, false);
console.log("reset");
}, this);
}
Jak widać, jestem słuchania przewijania zdarzenia i bezpiecznie i zresetuj pasek przewijania. Czasami (szczególnie jeśli piszesz bardzo szybko w polu tekstowym) zdarzenia są w innej kolejności, a strona wciąż przeskakuje na szczyt. Czasami widzisz też, jak migocze (jeśli potrzebuje zbyt dużo czasu, aby przywrócić pierwotną pozycję).
Więc .... Tak jak powiedziałem, jest to przerażające obejście. Jeśli znajdziesz lepsze rozwiązanie, proszę dać mi znać.
EDIT
Ja również zorientowali się, że rosną opcji na textareafield był jednym z awanturników.
{
id: this.id + '-details',
xtype: 'textareafield',
// grow: true, now it isn't jumping
name: 'message',
fieldLabel: 'Zusätzliche Informationen',
labelAlign: 'top',
renderder: 'htmlEncode',
disabled: isDisabled,
anchor: '100%'
}
dziękuję, działa dla mnie. Po prostu zmień układ na "vbox". – wengeezhang