Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: yoelrodguez en 25 Marzo 2017, 01:14 am



Título: Como puede hacer javascript sincronico
Publicado por: yoelrodguez en 25 Marzo 2017, 01:14 am
Hola tengo el siguiente problema. Estoy usando javascript para ir ocultando poco a poco, las palabras de un texto pero lo que me sucede es que no se me está ocultando los segmentos en el orden que quiero, sino que me lo hace indistintamente .

Les dejo el código para ver si me pueden ayudar.

Código:
			ini = 0
//Conformamos la cadena a trabajar.
for(c = 0; c < v; c++){
a_seg = '';
a_seg = a_str.splice(ini,5);
if(a_seg != ''){
for(s = 0; s < a_seg.length ; s++){
search += a_seg[s]+" ";
}
search = search.trim();
search = search.replace(/&nbsp;/g,"");
var regex = new RegExp(search,'gi');
       $(this).html($(this).text().replace(regex,'<span style="color: #ff0000; font-size: 18px;">'+search+'</span>'));
       $(this).html($(this).text().replace(regex,'<span style="font-size: 18px;"></span>'));
   search = '';
   ini = ini + 5;
}



Título: Re: Como puede hacer javascript sincronico
Publicado por: ThinkByYourself en 26 Marzo 2017, 10:50 am
No veo claro la intención del código, yoelrodguez, y variables sin valor inicial (qué vale v?)

Saludos


Título: Re: Como puede hacer javascript sincronico
Publicado por: yoelrodguez en 27 Marzo 2017, 17:25 pm
Aquí te dejo el código completo básicamente lo que haces es ir ocultado un texto por segmentos.

Código:
	
function panime (i = 0){
$("p").html(function(){
val = $(this).html();
str = val.toString();
str = str.replace(/<\/?[^>]+>/gi, '').trim();
a_str = str.split(" ");
//seg = a_str.splice(0,5);
len = a_str.length;
var v = '';
if(len > 5){
v = len / 5;
v = Math.round(v);
}else{
v = 1
}
search = '';
n = 1;
ini = 0
//Conformamos la cadena a trabajar.
for(c = 0; c < v; c++){
a_seg = '';
a_seg = a_str.splice(ini,5);
if(a_seg != ''){
for(s = 0; s < a_seg.length ; s++){
search += a_seg[s]+" ";
}
search = search.trim();
search = search.replace(/&nbsp;/g,"");
var regex = new RegExp(search,'gi');
        $(this).html($(this).text().replace(regex,'<span style="color: #ff0000; font-size: 18px;">'+search+'</span>'));
        $(this).html($(this).text().replace(regex,'<span style="font-size: 18px;"></span>'));
    search = '';
    ini = ini + 5;
}
n++;
}
i++;
});
}


Título: Re: Como puede hacer javascript sincronico
Publicado por: ThinkByYourself en 28 Marzo 2017, 00:21 am
Lo siento. Prueba de usar el debugger del navegador si estás apurao


Título: Re: Como puede hacer javascript sincronico
Publicado por: yoelrodguez en 28 Marzo 2017, 00:31 am
Muchas gracias, le comento que he ido encontrando algunos detalles pero aun no me queda. En cuanto tenga la solución final lo público por si alguien más le haga falta.

Saludos

Acá les dejo la solución que encontré por si alguien mas le haga falta:

Código:
	function panime (i = 0){

$(ps[i]).text(function(){
if(val != ''){
a_str = $(this).text().trim().split(" ");
len = a_str.length;
var v = '';
if(len > 5){
v = len / 5;
v = Math.round(v);
}else{
v = 1;
}
search = '';
ini = 0;
fin = 5;
//Conformamos la cadena a trabajar.
for(c = 0; c <= v; c++){
a_seg = '';
a_seg = a_str.slice(ini,fin);
if(a_seg != ''){
    hidden_text(a_seg,ps[i]);
    search = '';
    ini = ini + 5;
    fin = fin + 5;
}
}
panime(i + 1);
}
});
}

function hidden_text(a_seg,tp,callback) {

for(i = 0; i < a_seg.length ; i++){
search += a_seg[i]+" ";
}

search = search.replace(/&nbsp;/g,"").trim();
var regex = new RegExp(search,'g');
    $(tp).html($(tp).text().replace(regex,'<span style="color: #ff0000; font-size: 18px;">'+search+'</span>'));

    if (callback && typeof(callback) === "function") {
        callback();
    }
}


MOD EDIT: No hacer doble post. Usa el botón modificar.