Buenos días, estoy realizando un pequeño script para la descripción de las categorías en la plantilla Classic de prestashop 1.7.5.
El script en cuestión detecta el scroll de usuario (está testeado y funcionando en otra tienda en producción prestashop 1.6), una vez el usuario realiza scroll aplica unos cambios al css para colapsar la descripción de las categorías, ya que en algunos casos es tanto texto que dificulta un poco la experiencia en móvil:
$(function(){ //detectar scroll hacia abajo var scroll_done = false; //controlar scroll var obj = $(document); //objeto sobre el que quiero detectar scroll var obj_top = obj.scrollTop() //scroll vertical inicial del objeto obj.scroll(function(){ var obj_act_top = $(this).scrollTop(); //obtener scroll top instantaneo if(obj_act_top > obj_top || obj_act_top < obj_top){ //scroll hacia abajo if (scroll_done==false){ $('#collapse-description').css('height','120px'); $('#collapse-description').css('overflow','hidden'); $('#bot-ampliar').show(); //boton para ampliar descrip en category-header.tpl $('#bot-reducir').hide(); //boton para reducir descrip en category-header.tpl scroll_done = true; } } obj_top = obj_act_top; //almacenar scroll top anterior }); });
Los id #bot-ampliar y #bot-reducir los he incrustado en el category-header.tpl al final del block-category, ya que por temas SEO es importante que la info colapsada se pueda volver a abrir y cerrar.
Hasta ahí todo bien, pero no me llega a cargar el script correctamente, en consola me dice que "Uncaught ReferenceError: $ is not defined". He probado también introduciendo el script en:
$( document ).ready(function() { "Mi Script" });
Pero tampoco funciona... alguna idea de donde tengo que colocar el script? lo tengo ahora mismo al final de footer.tpl. Aquí el ejemplo funcionando en la tienda en producción.