Reagieren, wie dynamische div Höhe an die Folgen der vollen Fensterhöhe einschließlich scroll
Mache ich ein reagieren redux app.
Meiner Ansicht nach größer als ich Elemente hinzufügen (oder kleiner, wie ich Sie entfernen zu lassen), aber ich kann nicht mein hintergrund zu Folgen richtig.
Ich habe versucht, mit scrollHeight, um zu bestimmen, die Größe sollte es haben :
https://i.imgur.com/HGHJgub.gifv
Hier ist mein code :
constructor(props) {
super(props);
this.state = {
heightSet: 0,
};
this.updateDimensions = this.updateDimensions.bind(this);
}
componentDidMount() {
this.updateDimensions();
window.addEventListener('resize', this.updateDimensions);
}
componentWillUnmount() {
window.removeEventListener('resize', this.updateDimensions);
}
updateDimensions() {
this.setState({ heightSet: document.body.scrollHeight });
console.log(document.body.scrollHeight);
}
render() {
const divStyle = {
height: this.state.heightSet + 'px',
};
return (
<div style={divStyle}>
</div>
)
}
aber All dies ist klar zu verwerfen.
Ich bin nicht für die richtige Herangehensweise.
Es berührt auch auf ein weiteres Problem meiner app :
Er weiß um die Höhe hinzu, um die Ansicht aber nicht, um es zu entfernen.
Weiß jemand, warum es dieses Verhalten und wie um es zu beheben?
UPDATE :
KLÄRUNG das eigentliche Problem ist, dass diese Lösung nicht über ein update auf den var, wenn ich auf "add component" und meine scroll-Höhe steigt.
alles in allem ist die oben genannte Lösung ist völliger Müll.
Ich mag die Idee : Einstellen der Farbe für extra-Seite Teile sichtbar, während der Gummi-band Blättern (ja, es ist ein hack, aber das ist in Ordnung von mir)
von Shishir Arora und tksb
aber es scheint, dass es nicht funktioniert auf modernen Browsern (zumindest nicht in Chrome und die neueste Chrome ist Ziel N°1 für meine app).
- stackoverflow.com/questions/30640446/...
- komisch. klingt vielversprechend, aber am Ende nicht funktioniert. die 50% über und 50% unter der Anzahl im Rahmen der Seite nicht außerhalb der Sicht, auch mit den einfachsten layouts.
- irgendwelche neuen Ideen ???
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich das Szenario reproduziert und ich habe zu dieser. Hoffe, es hilft.
In meinem Fall
document.body.scrollHeight
Rückkehr ist die Höhe des Körpers mit seinem Rand (aus irgendeinem Grund), so dass jedes mal, wenn die Komponente Höhe eingestellt ist, er bleibt kleiner als der Körper ist scrollHeight und da der Körper wächst mit seinen Kindern, mit der Größe der Komponente, die gerade wächst.Beispiel:
Könnte man abziehen, den Rand des Körpers von den scrollHeight oder berechnen Sie die Höhe von der Komponente s Kinder s Höhe.
Ich habe gerade dieses:
So wie es sich herausstellt KANN man das auch mit css machen nur und der trick ist verblüffend einfach:
in deiner navbar-Komponente hinzufügen diese :
und css :
diese Weise lassen Sie die Hintergrundfarbe auf
html
oderbody
:und daher Ihre überlauf Farbe auf der oberen Seite und der unteren Seite wird anders sein, als gewünscht.
Haken auf das scroll-Ereignis und nicht das resize-Ereignis