Pregunta sobre Featured Image Pro Post Grid de Wordpress:

Activador de cambio de evento

Un usuario preguntó 👇

Hola chicos, ¿hay alguna forma de cambiar el tamaño del evento manualmente? Traté de activar el incidente del tamaño de la ventana, pero no parece afectar la rejilla de mampostería. Quiero hacer un filtrado personalizado, donde muestro el contenido del filtro: ninguno a mano. No restablece los elementos hasta que cambie la ventana manualmente, quiero eliminar ese canal de JavaScript.

¡Agradeceríamos cualquier ayuda!

Salud

(@nomadcoder)

hace 1 año

Hola,

Si lo he entendido bien, desea cargar una página con el contenido ya filtrado.

No estoy del todo seguro, pero podrías probar las traducciones CSS. Por favor no dude en enviarme más detalles y puedo ayudarlo con el javascript.

(@geertvanamerongen)

Hace 12 meses

Hola nomadcoder,

Gracias por la respuesta, vea el enlace a mi sitio de escenario para averiguar lo que planeo hacer: https://bit.ly/381NAQb

Cuando usa uno de los filtros, los bloques están ocultos pero la cuadrícula no se reorganiza. Si cambia la ventana del navegador después de seleccionar un filtro, los bloques se reorganizan correctamente. No parece estimular el efecto del tamaño de la cuadrícula manualmente a través de JS. Intenté activar un evento window.resize manualmente pero no responde a eso. Entonces, cuando el plugin realmente cambia de tamaño, hace exactamente lo que quiero que haga, pero quiero poder llamar a esa función de tamaño después de filtrar básicamente mis artículos.

JS

jQuery(document).ready(function($){

	Array.prototype.remove = function() {
	    var what, a = arguments, L = a.length, ax;
	    while (L && this.length) {
	        what = a[--L];
	        while ((ax = this.indexOf(what)) !== -1) {
	            this.splice(ax, 1);
	        }
	    }
	    return this;
	};	

		
	var _artists = []
	var _artistCategories = []
	var _artistLength = $(".artists_item").length;
	var _activeFilters = [];
	var _filtersDOM = [];

	$(".artists_item").each(function(i){
		var _obj = {};
		var i = i;
		
		_obj.target = $(this);
		_obj.href = $(this).children(":first").children(":first").attr("href");
		_obj.id = _obj.href.split("&p=")[1];
		_obj.categories = [];

		$.ajax({
		    type: 'POST',
		    url: my_ajax_object.ajax_url,
		    dataType: "json", 
		    data: { action : 'get_ajax_category', id: _obj.id},
		    success: function( response ) {
		    	
		    	response.forEach(function(item, index){
		    		if(item.name != "artists"){
		    			_obj.categories.push(item.name)
		    			if(_artistCategories.indexOf(item.name) === -1) {
				    		_artistCategories.push(item.name);
		    			}
		    		}
			    	
		    	});
				    
			    _artists.push(_obj)
			    
			    if(i==_artistLength-1){
			    	afterCategories();
			    }

				
		    }
		});
	});

	function afterCategories(){

		$(".proto_masonry_top").parent().prepend("<div id='categoryFilters'><span>FILTERS:</span></div>");

		for (var i = 0; i < _artistCategories.length; i++) {
			
			$("#categoryFilters").append("<div class='catButton'>" + _artistCategories[i] + "</div>");

			_filtersDOM.push(_artistCategories[i]);

			getLabelDOM(_artistCategories[i]).click(function(e){
				changeFilter($(this).html());
			})
		}

	}

	function getLabelDOM
		var ret = null;
		$(".catButton").each(function(){
			if($(this).html() == t) ret = $(this);
		})

		return ret;
	}

	function changeFilter
		if(_activeFilters.indexOf
			_activeFilters.push
			for (var i = 0; i < _filtersDOM.length; i++) {
				if(t.indexOf(_filtersDOM[i]) === -1) $( getLabelDOM
			}

		}else{
			_activeFilters.remove
			for (var i = 0; i < _filtersDOM.length; i++) {
				if(t.indexOf(_filtersDOM[i]) === -1) $( getLabelDOM
			}
		}

		for (var i = 0; i < _artists.length; i++) {

			if(_activeFilters.length === 0) fadeBlock(_artists[i].target, 1)
			else fadeBlock(_artists[i].target, 0)

			
			
			for(var j = 0; j < _artists[i].categories.length; j++){
				
				for(var k = 0; k < _activeFilters.length; k++){
					if(_activeFilters[k]==_artists[i].categories[j]){
						
						fadeBlock(_artists[i].target, 1)
					}
					
				}
				
			}
			
		}

	}

	function fadeBlock(t,a){
		if(a==1)
		{
			$
			$
				resetPositions();
			});
		}
		else if (a==0)
		{
			$
				resetPositions();
		    	$
		  	});
		}
		
	}

	function resetPositions(){
		window.dispatchEvent(new Event('resize'));
	}

});

¡Muchas gracias por adelantado!

Salud

Esta respuesta fue modificada hace 12 meses por.

(@nomadcoder)

Hace 12 meses

Interesante. Me parece que son las transiciones las que no funcionan lo que significa que pueden haber sido violadas o inhabilitadas. El plugin funciona correctamente en este sitio: http://www.resasunshine.com/.

No estoy seguro de por qué sucede esto. ¿Podrías publicar tu atajo?

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *