J'ai un défi à résoudre. Je fais un redimensionnement automatique et div collant (haut et bas). Le problème est que lorsque je fais défiler la fenêtre vers le bas (où la div doit s'arrêter), la div disparaît, je pense que c'est dû à un problème de marge, donc j'ai besoin d'idées pour le résoudre. S'il vous plaît voir l'exemple et faites défiler la fenêtre vers la ligne du bas. TOUTE AIDE SERA HAUTEMENT APPRÉCIÉE.Redimensionnement automatique et collant (haut et bas) div jQuery
je besoin pour ce faire dès que possible
Espérons que vous pouvez helpme et. est Heres le code ..
NOTE: Le div sur le nom de code #content_derecha a la classe collante
<script src="jquery-1.7.1.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
//I make the div with elastic properties
var bottomPosition = $(window).height();
$('#content_derecha').height(bottomPosition); //in this example #content_derecha is the div that has to be elastic and sticky
$(window).resize(function(){
var bottomPositionN = $(window).height();
$('#content_derecha').height(bottomPositionN); //the same div resizing its position when the window is resized
});
//Here starts the evaulation to make the div sticky
var footerFreno = $('.stop').offset().top; // returns the stop on top
var stickyTop = $('.sticky').offset().top; // returns the stop on bottom. I have another div on footer with the class .stop
if (!!$('.sticky').offset()) { //first the code verify if the sticky class exists
//here I have a function to verify if the scroll position is between the values I need
function verificaRango(x, n, m){
if (x >= n && x <= m)
{
return true; }else
{ return false;
}
}
$(window).scroll(function(){ // Here I capture in a variable the position of the scroll
//Here I calculate the bottom of the sticky and auto reize the div
var arribaValor = $('.sticky').offset().top
var altoValor = $('.sticky').height();
var posicionFreno = arribaValor + altoValor;
var windowTop = $(window).scrollTop(); // the position of the scrollbar
var posFreno = footerFreno-altoValor;
var semaforo = verificaRango(windowTop,stickyTop,posFreno); // I store in a variable named "semaforo" the result of the range verification to finally compare it in an if statement...
if (semaforo == true){ // I finally set the position fixed or static according the position nof the div...
$('.sticky').css({ position: 'fixed', top: 0 });
}
else {
$('.sticky').css('position','static');
}
});
}
});
</script>
Il y a un simple plugin JQuery appelé [StickyBar] (http://hompimpa.googlecode.com/svn/trunk/StickyBar/basic.html). Il suffit de déclencher le plugin dans le redimensionnement de la fenêtre en même temps après avoir défini la hauteur de la barre latérale. Voici une démo: http://jsfiddle.net/tovic/43eG7/29/ –