Ich habe eine <div>
, die ich versuche, im sichtbaren Bereich der Eltern <div>
vertikal zu zentrieren. Here ist ein Bild, das beispielhaft zeigt, was ich zu erreichen versuche. Das Kind <div>
wird durch den weißen Kreis dargestellt, das übergeordnete Element <div>
ist das graue Rechteck und das weiße Rechteck ist das Ansichtsfenster des Browsers.jQuery Center div im sichtbaren Bereich der Eltern div
Das Problem, das ich habe, ist mit dem Schreiben der Formel für die Positionierung des Kindes <div>
, wenn der Browser scrollt oder wird in der Größe geändert. Für jedes Kind oder Elternteil <div>
.
var scrollListener = function(){
var child = $('.child'), // child element
w=$(window).height, // window height
s=$(window).scrollTop(), // window scrollTop position
t=child.parent().offset().top, // parent position in window
h=child.parent().height(), // parent height
p=(w+s-t), // initial position
v=0; // final value for child position
if(t<s){
// top of parent is beyond viewport
if(p<h){
// bottom of parent is also beyond viewport
v = (w/2)+s-t;
}else{
// ??? - not working
// bottom of parent is within viewport
v = ((h-p)/2)+s-t;
}
}else{
v = p/2;
}
child.css("top",v);
};
$(window).on("scroll resize",scrollListener);
was ist die Frage/Problem? – depperm
Wo rufst du scrollListener an? –
Mach eine funktionierende Geige oder so, da ist viel los und wenn du es uns überlässt, werden wir alle möglichen Antworten finden. Gerade jetzt ist die Frage zu weit gefasst. Hier –