Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

178
Views
jQuery en la posición de la imagen de fondo animada del desplazamiento de la ventana

Estoy tratando de lograr un efecto de desplazamiento usando jQuery. Tengo un div de fondo configurado al 100% del tamaño de la ventana del navegador con el desbordamiento oculto. Esto tiene una imagen de fondo grande que es de aprox. 1500px x 2000px.

El efecto que quiero es cuando el usuario se desplaza hacia abajo en la página, la imagen de fondo se mueve a un porcentaje de la distancia desplazada, por lo que por cada 200 px que se desplaza hacia abajo en la página, la imagen se mueve 10 px en la misma dirección.

¿Alguien puede señalarme en la dirección correcta? ¿Es esto posible? : ) Muchas gracias de antemano.

ACTUALIZAR

Desde entonces, probé variaciones de la sugerencia de @Capt Otis, pero todavía tengo problemas. El código con el que estoy jugando es el siguiente:

 $(window).scroll(function(){ if($(this).scrollTop() > 200) { $('#div').animate({'background-postion': '+=10px 0'}, 500); } });

¿Alguien puede arrojar alguna luz sobre lo que estoy haciendo mal?

over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Aquí tienes. El fondo se establece en un 10 % de desplazamiento. Puede cambiar la velocidad de desplazamiento de fondo cambiando el 10 en el código.

CSS

 html, body{ height:100%; min-height:100%; margin:0; padding:0; } .bg{ width:100%; height:100%; background: #fff url(..) no-repeat fixed 0 0; overflow:auto; } <div class="bg"> <span>..</span> </div>

JavaScript

 $('.bg').scroll(function() { var x = $(this).scrollTop(); $(this).css('background-position', '0% ' + parseInt(-x / 10) + 'px'); });

Consulte el ejemplo de trabajo en http://jsfiddle.net/Vbtts/
Haga clic en este enlace para ver el ejemplo de pantalla completa: http://jsfiddle.net/Vbtts/embedded/result/


over 4 years ago · Santiago Trujillo Report

0

Si no quiere que lo molesten con el div de fondo adicional, aquí está mi código que completé a partir de varios ejemplos:

 $(window).scroll(function () { setBackgroundPosition(); }) $(window).resize(function() { setBackgroundPosition(); }); function setBackgroundPosition(){ $("body").css('background-position', "-" + (1920 - $(window).width()) / 2 + "px " + -(Math.max(document.body.scrollTop, document.documentElement.scrollTop) / 4) + "px"); }

Se requiere Math.max para problemas entre navegadores. También reemplace '1920' con el ancho de su imagen de fondo

 body{ background-image:url(images/background.jpg); background-position:center top; background-repeat:no-repeat; background-attachment:fixed; }
over 4 years ago · Santiago Trujillo Report

0

Esto funcionó para mí:

En js:

 $(window).scroll(function() { var x = $(this).scrollTop(); $('#main').css('background-position', '100% ' + parseInt(-x / 1) + 'px' + ', 0% ' + parseInt(-x / 2) + 'px, center top'); });

En CSS:

 #main { background: url(../img/img1.png) center top no-repeat, url(../img/img2.png) center top no-repeat, url(../img/img3.png); background-repeat: no-repeat, no-repeat, repeat-x; background-position: right top, left top, center top;

Donde #main es el div cuya imagen de fondo quería mover. No es necesario tener altura: 100% para html, cuerpo.

Esta es una variación para múltiples imágenes de fondo.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!