Ver Mensaje Individual
  #2 (permalink)  
Antiguo 23/02/2014, 22:28
Avatar de 2D6
2D6
 
Fecha de Ingreso: enero-2006
Ubicación: Posadas, Misiones
Mensajes: 60
Antigüedad: 18 años, 4 meses
Puntos: 4
Respuesta: Cambiar color de fondo del menú dependiendo del div que este viendo

Bueno, encontré un script que adapte para mis necesidades, lo paso por si a alguno le sirve.
La idea es que Y toma el valor de la parte superior que se está viendo en todo momento y luego lo compara con el valor que tiene cada div. Con un if compara si el valor de Y es igual o mayor al valor de cada div, si es así significa que el usuario está visualizando ese div en cuestión y ahí hace el cambio de background-color.

Los -200 los agregué yo (no estaban en el script original) para que el cambio de color sea "llegando" a la sección y no en el momento exacto.

Código Javascript:
Ver original
  1. $(document).ready(function () {
  2.     $(window).scroll(function () {
  3.         var y = $(this).scrollTop();
  4.         var quienes = $('#quienes_somos').offset().top;
  5.     var nuestros = $('#nuestros_trabajos').offset().top;
  6.     var contacto = $('#contacto').offset().top;
  7.        
  8.     var quienes = quienes - 200;
  9.     var nuestros = nuestros - 200;
  10.     var contacto = contacto - 200;
  11.  
  12.         if (y >= quienes) {
  13.             $('header').css('background-color','rgba(39, 174, 96,0.8');
  14.         }
  15.        
  16.         if (y >= nuestros) {
  17.             $('header').css('background-color','rgba(243, 156, 18,0.8');
  18.         }
  19.        
  20.         if (y >= contacto) {
  21.             $('header').css('background-color','rgba(192, 57, 43,0.8');
  22.         }
  23.     });
  24. });