2012-01-04 18 views
9

Estoy tratando de implementar nivoslider en mi instalación de magento. Solo copio y pego lo que está en el downloaded demo package (que he probado en mi Firefox y corro muy bien) al magento. Hice todas las tareasNivoSlider no funciona correctamente en magento

  • copiar todos los archivos necesarios y js css carpeta a la piel de mi tema
  • añadir esos archivos en page.xml

    <reference name="head"> 
        <action method="addCss"><stylesheet>css/styles.css</stylesheet></action> 
        ... 
        <action method="addCss"><stylesheet>css/nivo-slider.css</stylesheet></action> 
        <action method="addCss"><stylesheet>css/themes/default/default.css</stylesheet></action> 
        <action method="addCss"><stylesheet>css/themes/default/pascal.css</stylesheet></action> 
        <action method="addCss"><stylesheet>css/themes/default/orman.css</stylesheet></action> 
        <action method="addItem"><type>skin_js</type><name>js/jquery-1.6.2-no-conflict.js</name><params/></action> 
        ... 
        <action method="addItem"><type>skin_js</type><name>js/jquery.nivo.slider.pack.js</name><params/></action> 
        <action method="addItem"><type>skin_js</type><name>js/my_own_custom_script.js</name><params/></action> 
        ... 
    </reference> 
    
  • copiar el deslizador sección html en magento cms página

enter image description here

  • y finalmente añadir jQuery(document).ready(function($) { $('#slider').nivoSlider(); }); a my_own-custom_script.js

Se ejecuta, pero no sin problemas. A veces, la diapositiva solo se detuvo por un tiempo. Las otras veces, una de las diapositivas de la imagen no aparecerá. La animación también es un poco titilante. La navegación del control deslizante (el botón anterior siguiente y el círculo en la parte inferior del control deslizante) a veces no responden en mi evento de clic. Lo que me confunde es que todos esos síntomas suceden a veces, en otro momento funciona bien.

oh, una cosa más, este nivoslider también siempre hace que mi firefox se cuelgue cada vez que inspecciono uno de sus elementos con firebug.

¿Alguien podría darme alguna pista, por qué está sucediendo esto? Sospecho que esto tiene algo que ver con el conflicto con el script Prototype de magento (aunque ya se ejecuta en modo no conflictivo)

+1

Es bueno saberlo. También traté de ejecutar NivoSlide de una página de destino de clientes junto con un plugin jquery de copo de nieve, que fue la muerte de un pc más antiguo ^^ Mientras tanto uso el control deslizante Orbit, que es un control deslizante jquery rápido y fácil de usar: http://www.zurb.com/playground/orbit-jquery-image-slider El único problema es que no es compatible con IE6. – tecmec

+0

Debería poder publicarlo ahora como respuesta. Sigue adelante y hazlo. – NullUserException

Respuesta

21

después de cavar, encontré la solución ... y la solución es muy simple: tan simple como agregar un pequeño carácter de subrayado a la secuencia de comandos de nivoslider. basta con sustituir esta línea en el guión nivoslider:

$.fn._reverse = [].reverse; 

a este

$.fn._reverse = []._reverse; 

Y aquí está la explicación para aquellos que necesitan explicación:

si ves el error el listado (con Firefox, ctrl + shift + j) mientras usas nivoslider, verás que el prototipo tiene demasiada recursión. Esta es la explicación de esa "demasiada recursión" del Prototipo: prototype too much recursion problem.

El uso de la función inversa en Prototype ha entrado en conflicto con NivoSlider. chicos en GitHub encontraron este problema y dar una solución rápida aquí: https://github.com/gilbitron/Nivo-Slider/issues/35

este problema tiene volverme loco, porque no hay recursos suficientes en todas partes (Prueba Google hacia fuera y encontrará una respuesta directa a este problema) . Así que espero que mi pregunta, junto con mi propia respuesta, pueda ayudar a otras personas con el mismo caso conmigo :)

+3

excelente, gracias. Estaba teniendo el mismo problema y esto lo solucionó. –

+0

Estaba teniendo el mismo problema también. Esto resolvió la parte con "demasiada recursión" pero el control deslizante todavía no funciona bien en mis instalaciones de magento. No responde a los clics para cambiar las diapositivas, y la animación es entrecortada. Todavía estoy buscando una solución completa. – shanemgrey

+0

gracias, esto realmente funcionó y resolvió el problema. – suvajit

0

Comencé a ver esto recientemente en un sitio que ha estado en desarrollo por un tiempo. Ver:

Uncaught RangeError: Maximum call stack size exceeded 
Object.extend.reverse 

en la consola en Chrome. el detalle 'Object.extend.reverse' hace referencia al prototipo de la línea 881. No soy mucho un javascript, por lo que este es un detalle más adecuado para otra persona.

/skin/frontend/gas/default/js/jquery.nivo.slider.pack.js está cargado, por lo que debe haber algún conflicto, tal vez con la nueva versión de jQuery o algo así.

Supongo que podría cambiar a un control deslizante diferente. Recientemente encontré BX slider y me gusta, aunque aún no lo he usado en un proyecto de Magento, no puedo hablar de compatibilidad y lo ha solucionado de todos modos, así que ...