JQuery - Ayuda con función jquery

 
Vista:

Ayuda con función jquery

Publicado por Manuel (2 intervenciones) el 29/01/2017 16:52:35
Hola amigos tengo el siguiente código Jquery. Lo que hace es ir insertando la div ads en nuevas cajas (b1,b2,b3,b4) a medida que se va haciendo scroll. La div ads contiene publicidad de adsense. El problema es que la función html de jquery recarga la publicidad y eso no debe suceder. Alguna otra función que me permita hacer lo mismo sin que se recargue la publicidad.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
$(window).scroll(function () {
 
ads = $('#ads');
b1 = ($('#box_ads_1_1').length > 0) ? $('#box_ads_1_1'): $('#box_ads_1_1_a');
b2 = ($('#box_ads_1_2').length > 0) ? $('#box_ads_1_2'): $('#box_ads_1_2_a');
b3 = ($('#box_ads_1_3').length > 0) ? $('#box_ads_1_3'): $('#box_ads_1_3_a');
b4 = ($('#box_ads_1_4').length > 0) ? $('#box_ads_1_4'): $('#box_ads_1_4_a');
if(($(this).scrollTop() < b1.offset().top+b1.height())) {
if(b1.attr('id') == 'box_ads_1_1') {
b2.attr('id','box_ads_1_2');
b1.html(ads);
b1.attr('id','box_ads_1_1_a');
}
}
else if(($(this).scrollTop() > b1.offset().top+b1.height()) && ($(this).scrollTop() < b2.offset().top+b2.height())) {
if(b2.attr('id') == 'box_ads_1_2') {
b1.attr('id','box_ads_1_1');
b3.attr('id','box_ads_1_3');
b2.html(ads);
b2.attr('id','box_ads_1_2_a');
}
}
else if(($(this).scrollTop() > b2.offset().top+b2.height()) && ($(this).scrollTop() < b3.offset().top+b3.height())) {
if(b3.attr('id') == 'box_ads_1_3') {
b2.attr('id','box_ads_1_2');
b4.attr('id','box_ads_1_4');
b3.append(ads);
b3.attr('id','box_ads_1_3_a');
}
}
 
else if(($(this).scrollTop() > b3.offset().top+b3.height())) {
if(b4.attr('id') == 'box_ads_1_4') {
b3.attr('id','box_ads_1_3');
b4.append(ads);
b4.attr('id','box_ads_1_4_a');
}
}
 
});
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 302
Oro
Ha mantenido su posición en JQuery (en relación al último mes)
Gráfica de JQuery

Ayuda con función jquery

Publicado por xve (673 intervenciones) el 30/01/2017 13:25:49
Hola Manuel, no me queda muy clara tu pregunta...
Viendo el código, veo que depende una serie de condicionales, añades el "ads" que es una copia de un div con ese id, que entiendo que es la publicidad, no?

Si nos puedes comentar con mas detalle
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con función jquery

Publicado por Manuel (2 intervenciones) el 04/02/2017 16:06:09
XVE intentaré explicarlo mejor. Ese código jquey lo que hace es lo siguiente:

Al hacer scroll en la web la publicidad (ads) debe ir acompañando al usuario. Si haces scroll la publicidad debe ir cambiando a otros contenedores vacíos (#box_ads_1,#box_ads_2,#box_ads_3,#box_ads_4) que están a la espera de recibir la publicidad para así acompañar al usuario a lo largo de su recorrido por la página. Al recibir la publicidad los contenedores cambian de nombre (#box_ads_1_a,#box_ads_2_a,#box_ads_3_a,#box_ads_4_a) para ya no ser afectados por el scroll hasta que se llegue a la altura del próximo contenedor.

El script es perfecto en el fondo, pues cumple lo requerido. El problema es que al pasar de un contenedor a otro, la publicidad se recarga, es decir, se muestra un nuevo anuncio. Con todo el scroll que hacen los usuarios, de arriba hacia abajo, imagínate la cantidad de veces que se recarga la publicidad. Por tanto, lo que requiero es una forma de capturar la publicidad de forma estática en una variable, para que al pasarla por la función html para incorporarla en el siguiente contenedor, ésta no se recargue, sino que sea la misma. En definitiva, mi problema es que al capturar la publicidad en una variable -ads = $('#ads') - e incorporarla en el nuevo contenedor -por ejemplo: b1.html(ads)- ésta se recarga, lo cual puede ser penalizado por adsense. Espero haber aclarado el tema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar