tricks fijo 100px jquery css background-position

jquery - fijo - css background scroll



Cambiar la posiciĆ³n de fondo con jQuery (5)

Aqui tienes:

$(document).ready(function(){ $(''#submenu li'').hover(function(){ $(''#carousel'').css(''background-position'', ''10px 10px''); }, function(){ $(''#carousel'').css(''background-position'', ''''); }); });

Me gustaría cambiar la posición de fondo de una clase CSS mientras se mueve un elemento li.

HTML:

<div id="carousel"> <ul id="submenu"> <li>Apple</li> <li>Orange</li> </ul> </div>

CSS:

#carousel { float: left; width: 960px; height: 360px; background: url(../images/carousel.png); }

¿Alguna sugerencia sobre cómo hacer esto?


Establece un nuevo valor para backgroundPosition en el carousel div cuando un lib en el submenu div está suspendido. Quita la posición de backgroundPosition cuando el estacionario finaliza y restablece la posición de backgroundPosition al valor anterior.

$(''#submenu li'').hover(function() { if ($(''#carousel'').data(''oldbackgroundPosition'')==undefined) { $(''#carousel'').data(''oldbackgroundPosition'', $(''#carousel'').css(''backgroundPosition'')); } $(''#carousel'').css(''backgroundPosition'', [enternewvaluehere]); }, function() { var reset = ''''; if ($(''#carousel'').data(''oldbackgroundPosition'') != undefined) { reset = $(''#carousel'').data(''oldbackgroundPosition''); $(''#carousel'').removeData(''oldbackgroundPosition''); } $(''#carousel'').css(''backgroundPosition'', reset); });


La respuesta de la rebelión de arriba no funcionará, porque para CSS, ''posición de fondo'' es en realidad una forma abreviada de ''background-position-x'' y ''background-position-y'' para que la versión correcta de su código sea:

$(document).ready(function(){ $(''#submenu li'').hover(function(){ $(''#carousel'').css(''background-position-x'', newValueX); $(''#carousel'').css(''background-position-y'', newValue); }, function(){ $(''#carousel'').css(''background-position-x'', oldValueX); $(''#carousel'').css(''background-position-y'', oldValueY); }); });

Me tomó alrededor de 4 horas golpear mi cabeza para llegar a esa comprensión agravante.


Ustedes están complicando las cosas. Usted puede hacer esto desde CSS.

#carousel li { background-position:0px 0px; } #carousel li:hover { background-position:100px 0px; }


$(''#submenu li'').hover(function(){ $(''#carousel'').css(''backgroundPosition'', newValue); });