Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Estas en el tema de Algun codigo para mesclar DIV's cada vez que refrescas la pagina en el foro de Javascript en Foros del Web. Hola, conocéis algún código para barajar DIV's al refrescar la página? (div's con html dentro) Tengo 50 Divs con contenido diferente en HTML... me gustaria ...
  #1 (permalink)  
Antiguo 25/07/2018, 09:21
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 8 meses
Puntos: 4
Pregunta Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Hola, conocéis algún código para barajar DIV's al refrescar la página? (div's con html dentro)



Tengo 50 Divs con contenido diferente en HTML... me gustaria hacer que de estos 50 divs, se mostraran solo 8 y de forma aleatoria cada vez que se entrase en la web... alguna idea de un codigo así? ya que no tengo ni idea de javascript...


muchas Gracias..

Última edición por yopmail; 25/07/2018 a las 10:33
  #2 (permalink)  
Antiguo 25/07/2018, 10:44
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Si los <div> son generados por una estructura cíclica (a menos de que los hayas insertado manualmente, uno por uno), antes de ejecutarla, puedes agruparlos en un arreglo o en una lista de nodos y barajar el contenido. Si los <div> son generados desde PHP, puedes usar esta función para barajar el contenido, siendo esta otra función su equivalente en JavaScript. Una vez barajado el conjunto, puedes extraer los N primeros elementos usando esta función en PHP o esta otra en JavaScript.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 25/07/2018, 10:51
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Cita:
Iniciado por Alexis88 Ver Mensaje
Si los <div> son generados por una estructura cíclica (a menos de que los hayas insertado manualmente, uno por uno), antes de ejecutarla, puedes agruparlos en un arreglo o en una lista de nodos y barajar el contenido. Si los <div> son generados desde PHP, puedes usar esta función para barajar el contenido, siendo esta otra función su equivalente en JavaScript. Una vez barajado el conjunto, puedes extraer los N primeros elementos usando esta función en PHP o esta otra en JavaScript.

Muchas Gracias, los divs son echos manualmente... podrias facilitarme alguna estructura?

Muchas Gracias +1
  #4 (permalink)  
Antiguo 25/07/2018, 11:25
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Encontre un codigo que esta muy bien, es este:

<script type="text/javascript">
var myArray = ['1','2','3','4','5'];

var i,j,k;
for (i = myArray.length; i; i--) {
j = Math.floor(Math.random() * i);
k = myArray[i - 1];
myArray[i - 1] = myArray[j];
myArray[j] = k;
}


document.write("números aleatorios : " + myArray);
</script>

Muestra al azar los numeros y sin repetirlos, y acepta HTML, solo una pregunta, tengo 50 DIVS, pero quiero mostrar solo 6 al azar sin repetir, hay forma de limitar el numero de divs??

Mil Gracias
  #5 (permalink)  
Antiguo 25/07/2018, 11:51
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Cita:
Iniciado por yopmail Ver Mensaje
[...] tengo 50 DIVS, pero quiero mostrar solo 6 al azar sin repetir, hay forma de limitar el numero de divs?? [...]
En la última parte de mi anterior respuesta está la solución.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 25/07/2018, 12:27
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Cita:
Iniciado por Alexis88 Ver Mensaje
En la última parte de mi anterior respuesta está la solución.

Muchas gracias, aun que no me veo capaz de montar los dos codigos..
  #7 (permalink)  
Antiguo 25/07/2018, 12:42
 
Fecha de Ingreso: noviembre-2015
Mensajes: 231
Antigüedad: 8 años, 5 meses
Puntos: 86
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Con esa función en algún momento habrá repetición. Con el algoritmo fisher-yates no habrá repetición
https://www.google.es/search?client=....0.Asa9GaMuqdE
  #8 (permalink)  
Antiguo 25/07/2018, 12:44
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 8 meses
Puntos: 4
Exclamación Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Cita:
Iniciado por mpozo Ver Mensaje
Con esa función en algún momento habrá repetición. Con el algoritmo fisher-yates no habrá repetición
https://www.google.es/search?client=....0.Asa9GaMuqdE


Muchas Gracias, no hay problema por la repeticion, lo que mas me esta costando es solo mostrar 6 resultados de los 50 que tengo.. +1
  #9 (permalink)  
Antiguo 25/07/2018, 12:54
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Una vez que obtienes el arreglo barajado, solo necesitas usar el método .slice(). En el último de los enlaces de mi primera respuesta hay ejemplos de su uso.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #10 (permalink)  
Antiguo 25/07/2018, 13:40
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 8 meses
Puntos: 4
Información Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Cita:
Iniciado por Alexis88 Ver Mensaje
Una vez que obtienes el arreglo barajado, solo necesitas usar el método .slice(). En el último de los enlaces de mi primera respuesta hay ejemplos de su uso.


Código:
slice(1,4) extrae desde el segundo elemento hasta el cuarto  (los elementos con índices 1, 2,  y 3).
Me imagino que te refieres a esto, yo lo que necesito es que de 50 elementos extraiga 6 al azar y los muestre..

Alguna idea?

Muchas Gracias
  #11 (permalink)  
Antiguo 25/07/2018, 16:24
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

A ver:

1. Lo primero que tienes que hacer es barajar el contenido del arreglo, algo que veo que lograste.

Cita:
Iniciado por yopmail Ver Mensaje
Encontre un codigo que esta muy bien, es este:

<script type="text/javascript">
var myArray = ['1','2','3','4','5'];

var i,j,k;
for (i = myArray.length; i; i--) {
j = Math.floor(Math.random() * i);
k = myArray[i - 1];
myArray[i - 1] = myArray[j];
myArray[j] = k;
}


document.write("números aleatorios : " + myArray);
</script>

Muestra al azar los numeros y sin repetirlos, y acepta HTML [...]
Por cierto, es un código muy parecido al de uno de los enlaces que dejé al inicio. Deberías revisar los enlaces.

2. Una vez que lograste completar el punto uno, debes extraer los 6 primeros elementos del arreglo resultante, es decir, del arreglo cuyo contenido barajaste. Ahí es en donde entra a tallar el método .slice() y con eso darías por concluido el tema.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #12 (permalink)  
Antiguo 26/07/2018, 01:04
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

jeje esto es imposible.. probe asi pero no funciona, se queda en blanco

var myArray = ['1<br/>','2<br/>','3<br/>','4<br/>','5<br/>'];

var i,j,k;
for (i = myArray.length; i; i--) {
j = Math.floor(Math.random() * i);
k = myArray[i - 1];
myArray[i - 1] = myArray[j];
myArray[j] = k;
}
var myArray = nombres.slice(1, 6);

document.write("números aleatorios : " + nombres);
  #13 (permalink)  
Antiguo 26/07/2018, 06:05
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 8 meses
Puntos: 4
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Despues de pelear mucho me funciona este codigo, podrian decir si es correcto?

Cita:
var myArray = ['1<br/>','2<br/>','3<br/>','4<br/>','5<br/>','6<br/>','7<br/>','8<br/>','9<br/>','10<br/>'];

var i,j,k;
for (i = myArray.length; i; i--) {
j = Math.floor(Math.random() * i);
k = myArray[i - 1];
myArray[i - 1] = myArray[j];
myArray[j] = k;
}
var nombres = myArray.slice(1, 7);

document.write("números aleatorios : " + nombres);
Muchas gracias por vuestra ayuda
  #14 (permalink)  
Antiguo 26/07/2018, 07:50
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Tu implementación funciona puesto que, efectivamente, tomas a seis de los elementos del arreglo. Pero, si deseas que sean los seis primeros (ahora estás tomando desde el segundo al séptimo), el primer argumento de .slice() debe ser cero ya que esa es la posición del primer elemento en el arreglo. En la misma situación, el segundo argumento debe ser seis ya que el método toma a los elementos posicionados hasta antes de dicho valor.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #15 (permalink)  
Antiguo 26/07/2018, 07:58
 
Fecha de Ingreso: agosto-2014
Mensajes: 294
Antigüedad: 9 años, 8 meses
Puntos: 4
Exclamación Respuesta: Algun codigo para mesclar DIV's cada vez que refrescas la pagina

Cita:
Iniciado por Alexis88 Ver Mensaje
Tu implementación funciona puesto que, efectivamente, tomas a seis de los elementos del arreglo. Pero, si deseas que sean los seis primeros (ahora estás tomando desde el segundo al séptimo), el primer argumento de .slice() debe ser cero ya que esa es la posición del primer elemento en el arreglo. En la misma situación, el segundo argumento debe ser seis ya que el método toma a los elementos posicionados hasta antes de dicho valor.

Muchas Gracias sin ti no lo hubiera logrado, en cuanto a lo que dices es cierto pero al ser al azar creo que poco importa la posicion..

Muchisimas gracias por tanta ayuda +1 a todos tus comentarios xD

Etiquetas: cada, vez
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:24.