Foros del Web » Programando para Internet » Jquery »

url amigables con jquery y el plugin .scrollto

Estas en el tema de url amigables con jquery y el plugin .scrollto en el foro de Jquery en Foros del Web. gola estoy armando esta página http://verano.cabaniasvillage.com/ y lo que hace el menú de arriba es hacer un scrollto dependiendo de que menú se clique tambien ...
  #1 (permalink)  
Antiguo 09/12/2013, 18:04
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
url amigables con jquery y el plugin .scrollto

gola estoy armando esta página

http://verano.cabaniasvillage.com/

y lo que hace el menú de arriba es hacer un scrollto dependiendo de que menú se clique

tambien me modifica la url

y lo hago con este script

Código HTML:
NavigationManager = {
    currentPageType : null,
    navigationAllowed : true,
    paths: false,
    isSamePage: false,
    samePage: ['ellugar', 'nuestrocomplejo', 'clubhouse', 'servicios', 'fotos', 'ubicacion', 'contacto', 'reservas'],
    init: function() {
        NavigationManager.addListeners();
    },

    addListeners: function() {
        

        $('.state').on('click', function (event) {
            var
                $this = $(this),
                url = $this.attr('href'),
               // title = ($this.attr('title') || ''),
                title = $this.attr('title');
                data = null;

            //title = (title != '')? title + ' | Cabañas Village' : 'Cabañas Village | NEUQUEN.';
            //title = (title != '')? title ;

            if($this.hasClass('nav-link')){
                $('.nav-link.on').removeClass('on');
            }
            $this.addClass('on');

            if(!NavigationManager.navigationAllowed) {
                return false;
            }
            
            History.pushState(data, title, url);

            event.preventDefault();

            return false;
        });
        $(window).on('statechange', NavigationManager.handleStateChange);
    },

    handleStateChange: function(event) {
        var
            State = History.getState(),
            url = State.url,
            relativeUrl = url.replace(HistoryRootURL, '')

        NavigationManager.navigationAllowed = false;
        NavigationManager.handlePageChange('', relativeUrl);
            console.log('la url es ' +relativeUrl);


    },
    analizePath: function($path){
        //$path = ($path.substr(1)).toLowerCase();
        $paths = $path.split( '/' );
        return $paths;
    },
    handlePageChange: function(data, url) {
        analizePath = true;
        if(typeof url == 'undefined') {
            url = window.location.href.replace(HistoryRootURL, '');
            analizePath = false;
        }
        if(analizePath){
            console.log('1');
            NavigationManager.paths = NavigationManager.analizePath(url);
            console.log('el NavigationManager.paths es ' + NavigationManager.paths);
            NavigationManager.currentPageType = (NavigationManager.paths)[0].toLowerCase();
        } else {
            console.log('2');
            NavigationManager.currentPageType = $state;
            console.log(NavigationManager.currentPageType);
        }
        NavigationManager.trackGA();


     
        //console.log(NavigationManager.currentPageType);
          curPage = NavigationManager.currentPageType;
          //console.log(NavigationManager.currentPageType);
        $shut = false;
        //switch(NavigationManager.currentPageType){
            //default: 
                if($.inArray(NavigationManager.currentPageType, NavigationManager.samePage) >= 0){
                    NavigationManager.trackGA();
                    NavigationManager.isSamePage = NavigationManager.currentPageType;
                    $goTo = $('#'+NavigationManager.isSamePage);
                    if($goTo.length > 0){
                        $.scrollTo($goTo, 800, {easing:'swing'} );                
                    }
                    //if(Project.initializated){
                        //Project.shut();    
                    //}
                    NavigationManager.pageReady();

                    return false;
                } 

            //break;
            /*case 'projects':
                $shut = Project.initializated == true ? false : false;    
                $loadProject = analizePath == false ? $projectActive : (NavigationManager.paths)[1];
                if(Project.initializated){
                    Project.move($loadProject);
                } else {
                    Project.set($loadProject);
                }                                        
            break;
        }*/
        // if($shut){
  //           Project.shut();    
  //       }
        NavigationManager.pageReady();

        return false;

    },
    trackGA: function(){
        if(typeof _gaq != 'undefined') {
            _gaq.push(['_trackPageview']);
        }
    },
    pageReady: function() {
        NavigationManager.navigationAllowed = true;
    }
};


var History, HistoryRootURL;
$(function() {
    History = window.History,
    HistoryRootURL = History.getRootUrl();
    //Layout.setLoader(1);
    Layout.setup();
    NavigationManager.init();
    setTimeout(function() {
        NavigationManager.handlePageChange($('body'));
    }, 700);
});
pero no se como hacer que si por ejemplo la url tenga http://verano.cabaniasvillage.com/Fotos me lea la url y y me haga el scroolto

no se como sacarlo... si alguien sabe me va a sacar de un problema que no se como solucionar

muchas gracias
  #2 (permalink)  
Antiguo 09/12/2013, 18:20
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

E estado mirando tu proyecto, y a mi si me hace el scroolto en mi esplorador.
No se si esque ya lo arreglaste o que tienes problemas con otro navegador, por lo menos con el Ghrome lo hace a la perfeccion.
  #3 (permalink)  
Antiguo 09/12/2013, 18:31
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

Cita:
Iniciado por Dalam Ver Mensaje
E estado mirando tu proyecto, y a mi si me hace el scroolto en mi esplorador.
No se si esque ya lo arreglaste o que tienes problemas con otro navegador, por lo menos con el Ghrome lo hace a la perfeccion.
si cuando clicas hace el scrool pero si por ejemplo vas a la url

http://verano.cabaniasvillage.com/Fotos/

me sale notfound, y no se si es que tengo que poner algo en .htaccess o el script lee la url y me hace un scroll to #fotos

se entiende

este script está implementado correctamente en

http://wearecuko.com/Team/ fijate que te hace un scrollto a #team
  #4 (permalink)  
Antiguo 09/12/2013, 18:49
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

Tienes mod_rewrite en ese hosting?
en caso de ser asi utiliza esto
RewriteRule http://verano.cabaniasvillage.com/(.*) #$1/ [L, NC]
La L es para que no siga utilizando el modulo rewrite y el NC para que sea case insesitive
Si vas a usar algun otro script que valla a tener otra direccion tendrias que expecificar que casos usara este rewrite, si es asi dimelo y te explico como seria para definir solo unas cuantas opciones

Última edición por Dalam; 09/12/2013 a las 19:03
  #5 (permalink)  
Antiguo 09/12/2013, 19:27
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

Cita:
Iniciado por Dalam Ver Mensaje
Tienes mod_rewrite en ese hosting?
en caso de ser asi utiliza esto
RewriteRule http://verano.cabaniasvillage.com/(.*) #$1/ [L, NC]
La L es para que no siga utilizando el modulo rewrite y el NC para que sea case insesitive
Si vas a usar algun otro script que valla a tener otra direccion tendrias que expecificar que casos usara este rewrite, si es asi dimelo y te explico como seria para definir solo unas cuantas opciones

tenho este rewriterule en el hosting ya que lo tengo en un subdominio

RewriteEngine on
# Si se accede desde
RewriteCond %{HTTP_HOST} verano.cabaniasvillage.com
# Y la carpeta solicitada no es "mi"
RewriteCond %{REQUEST_URI} !verano/
# accedemos directamente a la carpeta mi/la_url_indicada
RewriteRule ^(.*)$ verano/$1 [L]


y en el servidor local tengo este

Options +FollowSymLinks
RewriteEngine on
# Si se accede desde
RewriteCond %{HTTP_HOST} 192.168.0.203
# Y la carpeta solicitada no es "mi"
RewriteCond %{REQUEST_URI} !cabaniasvillageverano/
# accedemos directamente a la carpeta mi/la_url_indicada
#RewriteRule ^(.*)$ cabaniasvillageverano/$1 [L]
RewriteRule ^(.*)$ cabaniasvillageverano/$1 [L]
#RewriteRule http://verano.cabaniasvillage.com/(.*) #$1/ [L, NC]

ya que hago una dirección a una carpeta, pero ya te digo que es en modo de prueba

por que van a ir en un dominio raiz pero mientras estan en producción lo tengo que hacer así
  #6 (permalink)  
Antiguo 09/12/2013, 19:53
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

Este es el aspecto que tendrias que dejar en el hosting para que te funcione
Cita:
# Si se accede desde
RewriteCond %{HTTP_HOST} verano.cabaniasvillage.com
# Y la carpeta solicitada no es "mi"
RewriteCond %{REQUEST_URI} !verano/
# accedemos directamente a la carpeta mi/la_url_indicada
RewriteRule ^(.*)$ verano/$1
#Para las peticiones actuales de tu pagina
RewriteRule ^(ElLugar|NuestroComplejo|ClubHouse|Servicios|Foto s|Ubicacion|Contacto|Reservas)/$ http://verano.cabaniasvillage.com/#$1 [L]
  #7 (permalink)  
Antiguo 09/12/2013, 20:04
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

Cita:
Iniciado por Dalam Ver Mensaje
Este es el aspecto que tendrias que dejar en el hosting para que te funcione

me tira un error de servidor


lo que tengo en la raiz del sitio es este htaccess
Código:
RewriteEngine on
# Si se accede desde
#RewriteCond %{HTTP_HOST} verano.cabaniasvillage.com
# Y la carpeta solicitada no es "mi"
#RewriteCond %{REQUEST_URI} !verano/
# accedemos directamente a la carpeta mi/la_url_indicada
#RewriteRule ^(.*)$ verano/$1 [L,NC]

# Si se accede desde
RewriteCond %{HTTP_HOST} verano.cabaniasvillage.com
# Y la carpeta solicitada no es "mi"
RewriteCond %{REQUEST_URI} !verano/
# accedemos directamente a la carpeta mi/la_url_indicada
RewriteRule ^(.*)$ verano/$1
#Para las peticiones actuales de tu pagina 
RewriteRule ^(ElLugar|NuestroComplejo|ClubHouse|Servicios|Foto s|Ubicacion|Contacto|Reservas)/$ http://verano.cabaniasvillage.com/#$1 [L]
y en la carpeta /verano

tengo este otro

Código:
# DOM2
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
#
es que si no me hacia una redirección de dominio ya que la empresa de hosting me hace redireccion de de subdominios y no me crea un subdominio tal y como es
  #8 (permalink)  
Antiguo 09/12/2013, 20:07
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

ya está erra un espacio en blancdo dentro del último rewriterule

pero tampoco funciona por que sy voy a la url http://verano.cabaniasvillage.com/Contacto/ me sale notfound...


ahora no se si es el script que no hace su trabajo o no se que pasa
  #9 (permalink)  
Antiguo 09/12/2013, 20:16
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

Prueba a poner esta linea pero en el rewrite de la carpeta verano
RewriteRule (ElLugar|NuestroComplejo|ClubHouse|Servicios|Foto s|Ubicacion|Contacto|Reservas)/$ #$1 [L]
Y en el rewrite del root quitando el flag L de la linea
RewriteRule ^(.*)$ verano/$1
  #10 (permalink)  
Antiguo 09/12/2013, 20:48
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

Cita:
Iniciado por Dalam Ver Mensaje
Prueba a poner esta linea pero en el rewrite de la carpeta verano
RewriteRule (ElLugar|NuestroComplejo|ClubHouse|Servicios|Foto s|Ubicacion|Contacto|Reservas)/$ #$1 [L]
Y en el rewrite del root quitando el flag L de la linea
RewriteRule ^(.*)$ verano/$1

ahora funciona bien

pero si le hago refrescar con el simbolito de firefox pero si copio y pego la url me va al home y no me hace el scroolto ahora si que creo que es culpa del script!

muchas gracias mañana lo seguiré mirando

repito muchas gracias
  #11 (permalink)  
Antiguo 09/12/2013, 21:03
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

es por culpa del id de article.
Los deberias de cambiar por sus correspondientes que hemos puesto en el rewrite.
Fijate que los tienes en minusculas
  #12 (permalink)  
Antiguo 10/12/2013, 05:30
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

ok lo voy a solucionar...

pero ahora que lo pienso todo lo del modrewritter para el subdominio me ha servido para aprender mucho... pero este proyecto va a estar en un dominio root

entonces solo poniendo la ultima rule
  #13 (permalink)  
Antiguo 10/12/2013, 05:35
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

Si va a estar en el root lo que le tendrias que agregar seria estas dos lineas solamente
Cita:
RewriteEngine on
RewriteRule (ElLugar|NuestroComplejo|ClubHouse|Servicios|Fotos |Ubicacion|Contacto|Reservas)/$ #$1 [L]
Puede que el error de que no te mostrara la url con la almohadilla sea por que no la escapamos correctamente %23 es el codigo ASCII de la misma. si no te funciona lo anterior prueba con este
Cita:
RewriteEngine on
RewriteRule (ElLugar|NuestroComplejo|ClubHouse|Servicios|Fotos |Ubicacion|Contacto|Reservas)/$ %23$1 [L]

Última edición por Dalam; 10/12/2013 a las 08:07
  #14 (permalink)  
Antiguo 10/12/2013, 09:20
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

si pongo %23 no funciona

en cambio con esta regla
Código:
RewriteRule (ElLugar|NuestroComplejo|ClubHouse|Servicios|Fotos |Ubicacion|Contacto|Reservas)/$ #$1 [L]
si que funciona

lo que sigue sin funcionar es que si copio y pego la direccion veran.cabaniasvillage.com/servicios/ me va al home y no me hace un scrollto pero ya digo que esto puede ser que sea el script


y si lo pego son el / final me pone not found...
  #15 (permalink)  
Antiguo 10/12/2013, 09:26
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 2 meses
Puntos: 578
Respuesta: url amigables con jquery y el plugin .scrollto

Para evitar problemas usar la bandera NE y poner / optativo:

Código Apache:
Ver original
  1. RewriteRule (ElLugar|NuestroComplejo|ClubHouse|Servicios|Fotos |Ubicacion|Contacto|Reservas)/?$ #$1 [L,NE]

Este tema se está aproximando mucho al servidor.
  #16 (permalink)  
Antiguo 10/12/2013, 09:46
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

no es optativo la barra invertida, el plugin scrollto la pone por defecto
  #17 (permalink)  
Antiguo 10/12/2013, 09:58
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

ahora no se por qué pero el scrollto no me funciona

he modificado la regla así

Código:
RewriteRule (ellugar|nuestrocomplejo|clubhouse|servicios|fotos|ubicacion|contacto|reservas)/$ #$1 [L]
todo en minúsculas y los enlaces también los he puesto en minúsculas

y lo que hace es hace el scroll pero me vuelve al home.... una cosa muy rara...
  #18 (permalink)  
Antiguo 10/12/2013, 10:16
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

prueba asi
Cita:
RewriteRule (ellugar|nuestrocomplejo|clubhouse|servicios|fotos |ubicacion|contacto|reservas)/$ %23$1 [L]
por que al introducir la # es como si estubieras comentando el resto de la linea
  #19 (permalink)  
Antiguo 10/12/2013, 10:21
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

Si no te funciona, vuelvelo a poner como estaban los vinculos y las definimos de una en una. Me voy a comer algo y en un rato estoy por aqui para ver como te fue.
  #20 (permalink)  
Antiguo 10/12/2013, 10:22
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

Cita:
Iniciado por Dalam Ver Mensaje
prueba asi
por que al introducir la # es como si estubieras comentando el resto de la linea

me sale un error diciendo que /3nuestrocomplejo no existe esto del tres es despues de poner el %23
  #21 (permalink)  
Antiguo 10/12/2013, 10:38
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 11 años, 2 meses
Puntos: 578
Respuesta: url amigables con jquery y el plugin .scrollto

engonga, No le hagas caso a Dalam y hazme caso a mí:

Utiliza la bandera [NE] para evitar el escape. Los hashes NO se codifican y punto.
  #22 (permalink)  
Antiguo 10/12/2013, 11:20
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

No estaba seguro si se tenia que escapar o no, por eso le puse que si no funcionaba que lo pusiera asi. Se que el interrogante y las barras si se escapan, pero tenia la duda.
  #23 (permalink)  
Antiguo 10/12/2013, 12:59
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

bueno ahora resulta que no funciona nada! no me hace el scrollto, y ya no se si es por el script o po culpa del htaccess
  #24 (permalink)  
Antiguo 10/12/2013, 13:33
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

Cita:
Iniciado por engonga Ver Mensaje
bueno ahora resulta que no funciona nada! no me hace el scrollto, y ya no se si es por el script o po culpa del htaccess
ya he conseguido que vuleva a funcionar era una linea del script

pero ahora estoy como en el principio

tengo esta regla rewrite

Código:
RewriteRule ^(ElLugar|NuestroComplejo|ClubHouse|Servicios|Fotos|Ubicacion|Contacto|Reservas)/$ #$1 [L,NE]
me hace el scrollto correctamente y si le doy al icono de actualizar del browser y estoy, por ejemplo en verano.cabaniasvillage.com/servicios/ me mantiene en servicios pero si copio y pego la url me va al home y no me hace un scrollto
  #25 (permalink)  
Antiguo 10/12/2013, 14:04
Avatar de Dalam  
Fecha de Ingreso: septiembre-2010
Mensajes: 409
Antigüedad: 14 años, 2 meses
Puntos: 56
Respuesta: url amigables con jquery y el plugin .scrollto

pues o te toca cambiar las url del scrollto o los id de los article.
  #26 (permalink)  
Antiguo 10/12/2013, 14:21
Avatar de engonga
Usuario no validado
 
Fecha de Ingreso: marzo-2002
Ubicación: Buenos Aires
Mensajes: 1.300
Antigüedad: 22 años, 8 meses
Puntos: 8
Respuesta: url amigables con jquery y el plugin .scrollto

Cita:
Iniciado por Dalam Ver Mensaje
pues o te toca cambiar las url del scrollto o los id de los article.

ya está he retocado el script y listo

gracias por lo del htaccess

de verdad muchas gracias

Etiquetas: amigables, plugin, scrollto, url
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:34.