Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <!-- Required meta tags -->
- <meta charset="utf-8" />
- <meta name="viewport" content="width=device-width, initial-scale=1" />
- <!-- Bootstrap CSS -->
- <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet"
- integrity="sha384-eOJMYsd53ii+scO/bJGFsiCZc+5NDVN2yr8+0RDqr0Ql0h+rP48ckxlpbzKgwra6" crossorigin="anonymous" />
- <link rel="stylesheet" href="{{ URL::asset('styles.css') }}" />
- <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
- <title></title>
- </head>
- <body>
- <input type="hidden" name="_token" value="{{csrf_token()}}">
- <input type="hidden" name="_url" value="{{route('pregunta.getData')}}">
- <input type="hidden" name="_url2" value="{{route('score.save')}}">
- <div style="display: flex; flex-wrap: wrap;">
- <div style="float: center; flex:11">
- </div>
- <div style="margin:25px; float: right; flex:1" >
- <a href="/"><img id="logo-pequeno" class="img-fluid float-right" src="{{ asset('imagenes/logofut.svg') }}"></a>
- </div>
- </div>
- @php
- $letras = ["A","B","C","D","E"];
- @endphp
- <div class="container" style="color: #fff; padding-left: 20px;">
- <h6 class="text-center" id="contentTime">
- Tiempo: 25
- </h6>
- </div>
- @foreach ($questions as $row => $pregunta)
- <div class="container" id="content-question-{{$row}}" style="color: #fff; padding-left: 20px; padding-top: 50px; padding-bottom: 140px; {{($row+1) > 1 ? 'display:none' : 'display:block'}}">
- <h1 id="pregunta" class="text-center">
- {{$row+1}}. {{$pregunta->question}}
- </h1>
- <div class="row content-questions" style="margin-top: 5rem;" id="question-{{$row}}">
- <!-- Para 2 líneas
- <div class="col-sm-8 col-md-6 col-lg-5 mx-auto opciones" letra="A" style="display: flex; margin-bottom: 140px; position: relative;">
- <div class="opcion-default opcion">Lorem ipsum dolor, sit amet consectetur adipisicing gdfgdfhfghgfjgfj</div>
- <div class="letra-default letra">
- <span class="content-letra"></span>
- </div>
- </div>
- -->
- @php
- $options = $pregunta->options;
- shuffle($options);
- @endphp
- @foreach ($options as $cont => $item)
- <div class="col-sm-8 col-md-6 col-lg-5 mx-auto opciones" actual="{{$row}}" letra="{{$letras[$cont]}}" style="display: flex; margin-bottom: 80px; position: relative;">
- <div class="opcion-default opcion text-center">{{$item}}</div>
- <div class="letra-default letra">
- <span class="content-letra"></span>
- </div>
- </div>
- @endforeach
- <!--
- <div class="col-sm-8 col-md-6 col-lg-5 mx-auto opciones" letra="D" style="display: flex; margin-bottom: 80px; position: relative">
- <div class="opcion-default opcion">Piso 3 junto a Cinext</div>
- <div class="letra-default letra">
- <span class="content-letra"></span>
- </div>
- </div>
- -->
- </div>
- <div>
- <div id="enviar" class="enviar mx-auto" actual="{{$row}}" {{ $row+1 < count($questions) ? 'next='.($row+1).'': 'next=final'}} idQuestion="{{$pregunta->id}}">
- <button type="button" class="mx-auto btn btn-primary"
- id="boton-confirmar">Confirmar
- </button>
- </div>
- </div>
- </div>
- @endforeach
- <div class="container col-auto" id="content-question-final" style="color: #fff; padding-top: 50px; padding-bottom: 100px; display:none">
- <h1 id="titulo-formulario" class="text-center">TU PUNTUACIÓN</h1>
- <div id="puntuacion" class="mx-auto" style="padding-top: 50px; padding-bottom: 170px;">
- <div class="mx-auto btn btn-primary" id="puntuacion-1"></div>
- <div class="mx-auto btn btn-primary" id="puntuacion-2"></div>
- </div>
- </div>
- </body>
- <footer>
- </footer>
- </html>
- <script>
- porpregunta = 20;
- puntaje = 0;
- TiempoTemporizador = 35
- Temporizador = TiempoTemporizador
- document.querySelector('#contentTime').innerHTML = 'Tiempo: '+Temporizador
- tempo= null;
- actualQuestionDisplay=0
- pausarTemporizado = false;
- final = false;
- audioCorrecto = new Audio("{{ asset('/music/Correcto.mp3') }}");
- audioIncorrecto = new Audio("{{ asset('/music/Incorrecto.mp3') }}");
- opciones = ['default','seleccionada','correcta','incorrecta']
- imagenes = ['seleccionado.svg','play.svg','incorrecto.svg']
- listaOpciones = document.querySelectorAll('.opciones');
- listaOpciones.forEach(element => {
- content = element.querySelector('.content-letra');
- if (content != null) {
- content.innerHTML = element.getAttribute('letra')
- }
- element.onclick = seleccionarOpciones;
- });
- function seleccionarOpciones(){
- let id = this.getAttribute('actual')
- if(id){
- let question = document.querySelector('#question-'+id)
- if(question){
- listaOpciones = question.querySelectorAll('.opciones');
- listaOpciones.forEach(element => {
- let opcion = element.querySelector('.opcion');
- let letra = element.querySelector('.letra');
- opcion.className = 'opcion-default opcion text-center';
- letra.className = 'letra-default letra';
- content = element.querySelector('.content-letra');
- if (content != null) {
- content.innerHTML = element.getAttribute('letra')
- }
- });
- let opcionSelect = this.querySelector('.opcion');
- let letraSelect = this.querySelector('.letra');
- opcionSelect.className = `opcion-${opciones[1]} opcion text-center`;
- letraSelect.className = `letra-${opciones[1]} letra`;
- let contentLetra = this.querySelector('.content-letra');
- if (contentLetra != null) {
- contentLetra.innerHTML = `<img src="{{ asset('iconos/${imagenes[0]}') }}" alt="" width="15px">`
- }
- }
- }
- }
- let botones = document.querySelectorAll(".enviar");
- botones.forEach(element => element.onclick = verificarRespuesta )
- function verificarRespuesta(){
- let id = this.getAttribute('actual')
- if(id){
- let question = document.querySelector('#question-'+id)
- if(question){
- let opcion = question.querySelector('.opcion-seleccionada');
- if(opcion){
- var ajax = new XMLHttpRequest();
- let answer = opcion.innerHTML.trim()
- let data = new FormData();
- ajax.open('POST', document.querySelector("input[name='_url']").value,true);
- data.append('id_question',this.getAttribute('idQuestion'));
- ajax.setRequestHeader('X-CSRF-TOKEN', document.querySelector("input[name='_token']").value)
- ajax.send(data);
- pausarTemporizado = true;
- ajax.onload = () => {
- if(ajax.responseText){
- let response = JSON.parse(ajax.responseText)
- if(response){
- if(answer === response.data.answer.trim()){
- audioCorrecto.play()
- let padre = opcion.parentNode;
- let opcionSelect = padre.querySelector('.opcion');
- let letraSelect = padre.querySelector('.letra');
- opcionSelect.className = `opcion-${opciones[2]} opcion text-center`;
- letraSelect.className = `letra-${opciones[2]} letra`;
- let contentLetra = padre.querySelector('.content-letra');
- if (contentLetra != null) {
- contentLetra.innerHTML = `<img src="{{ asset('iconos/${imagenes[1]}') }}" alt="" width="15px">`
- }
- puntaje += porpregunta;
- }
- else{
- audioIncorrecto.play()
- let padre = opcion.parentNode;
- let opcionSelect = padre.querySelector('.opcion');
- let letraSelect = padre.querySelector('.letra');
- opcionSelect.className = `opcion-${opciones[3]} opcion text-center`;
- letraSelect.className = `letra-${opciones[3]} letra`;
- let contentLetra = padre.querySelector('.content-letra');
- if (contentLetra != null) {
- contentLetra.innerHTML = `<img src="{{ asset('iconos/${imagenes[2]}') }}" alt="" width="15px">`
- }
- listaOpciones = question.querySelectorAll('.opciones');
- listaOpciones.forEach(element => {
- let opcionsearch = element.querySelector('.opcion');
- let letrasearch = element.querySelector('.letra');
- if(opcionsearch.innerHTML.trim() === response.data.answer.trim() ){
- opcionsearch.className = `opcion-${opciones[2]} opcion text-center`;
- letrasearch.className = `letra-${opciones[2]} letra`;
- content = element.querySelector('.content-letra');
- if (content != null) {
- content.innerHTML = `<img src="{{ asset('iconos/${imagenes[1]}') }}" alt="" width="15px">`
- }
- }
- });
- }
- question.querySelectorAll('.opciones').forEach(element => element.onclick = removeClick)
- this.onclick = removeClick
- setTimeout(nextQuestion, 1500,this);
- }
- }
- }
- }
- }
- }
- }
- function removeClick(){ return false;}
- function nextQuestion(boton){
- let actual = boton.getAttribute('actual')
- let next = boton.getAttribute('next')
- let actualQuestion = document.querySelector('#content-question-'+actual)
- let nextQuestion = document.querySelector('#content-question-'+next)
- if(next === 'final'){
- saveScore();
- final = true;
- Temporizador = 0;
- document.querySelector('#contentTime').innerHTML = ''
- }
- fadeOut(actualQuestion,nextQuestion,next)
- Temporizador = TiempoTemporizador
- document.querySelector('#puntuacion-2').innerHTML=puntaje
- audioCorrecto.pause();
- audioCorrecto.currentTime = 0;
- audioIncorrecto.pause();
- audioIncorrecto.currentTime = 0;
- }
- function fadeOut(thisObject,nextObject,next) {
- if (thisObject){
- var op = 1; // initial opacity
- var timer = setInterval(function () {
- if (op <= 0.1){
- clearInterval(timer);
- thisObject.style.display='none'
- if (nextObject){
- fadeIn(nextObject,next);
- }
- }
- thisObject.style.opacity = op;
- thisObject.style.filter = 'alpha(opacity=' + op * 100 + ")";
- op -= op * 0.1;
- }, 50);
- }else{console.log('nohayobjeto');}
- }
- function fadeIn(element,next) {
- if(element){
- var op = 0.1; // initial opacity
- element.style.opacity = op;
- element.style.display = 'block';
- var timer = setInterval(function () {
- if (op >= 1){
- clearInterval(timer);
- }
- element.style.opacity = op;
- element.style.filter = 'alpha(opacity=' + op * 100 + ")";
- op += op * 0.1;
- }, 10);
- if(pausarTemporizado && next!='final'){
- pausarTemporizado = false;
- }
- actualQuestionDisplay=next
- }else{console.log('nohayobjeto');}
- }
- function saveScore(){
- /*
- var ajax = new XMLHttpRequest();
- let data = new FormData();
- ajax.open('POST', document.querySelector("input[name='_url2']").value,true);
- data.append('score',puntaje);
- ajax.setRequestHeader('X-CSRF-TOKEN', document.querySelector("input[name='_token']").value)
- ajax.send(data);
- ajax.onload = () => {
- if(ajax.responseText === 'success'){
- setTimeout(function(){ location.href='/' }, 5000);
- }
- }*/
- }
- setInterval( ()=>{
- if(!pausarTemporizado && !final){
- document.querySelector('#contentTime').innerHTML = 'Tiempo: '+Temporizador
- Temporizador--
- if(Temporizador == 0){
- pausarTemporizado = true;
- let question = document.querySelector('#content-question-'+actualQuestionDisplay)
- let button = question.querySelector('.enviar')
- let opcion = question.querySelector('.opcion-seleccionada');
- if(opcion){
- button.click();
- } else{
- audioIncorrecto.play()
- let answer = '';
- var ajax = new XMLHttpRequest();
- let data = new FormData();
- ajax.open('POST', document.querySelector("input[name='_url']").value,true);
- data.append('id_question',button.getAttribute('idQuestion'));
- ajax.setRequestHeader('X-CSRF-TOKEN', document.querySelector("input[name='_token']").value)
- ajax.send(data);
- pausarTemporizado = true;
- ajax.onload = () => {
- if(ajax.responseText){
- let response = JSON.parse(ajax.responseText)
- if(response){
- listaOpciones = question.querySelectorAll('.opciones');
- listaOpciones.forEach(element => {
- let opcionsearch = element.querySelector('.opcion');
- let letrasearch = element.querySelector('.letra');
- if(opcionsearch.innerHTML.trim() === response.data.answer.trim() ){
- opcionsearch.className = `opcion-${opciones[2]} opcion text-center`;
- letrasearch.className = `letra-${opciones[2]} letra`;
- content = element.querySelector('.content-letra');
- if (content != null) {
- content.innerHTML = `<img src="{{ asset('iconos/${imagenes[1]}') }}" alt="" width="15px">`
- }
- }
- else{
- opcionsearch.className = `opcion-${opciones[3]} opcion text-center`;
- letrasearch.className = `letra-${opciones[3]} letra`;
- content = element.querySelector('.content-letra');
- if (content != null) {
- content.innerHTML = `<img src="{{ asset('iconos/${imagenes[2]}') }}" alt="" width="15px">`
- }
- }
- });
- question.querySelectorAll('.opciones').forEach(element => element.onclick = removeClick)
- button.onclick = removeClick
- setTimeout(nextQuestion, 1500,button);
- }
- }
- }
- }
- }
- }
- }, 1000)
- </script>
- <!-- Optional JavaScript; choose one of the two! -->
- <!-- Option 1: Bootstrap Bundle with Popper -->
- integrity="sha384-JEW9xMcG8R+pH31jmWH6WWP0WintQrMb4s7ZOdauHnUtxwoG2vI5DkLtS3qm9Ekf"
- crossorigin="anonymous"></script>
- <!-- Option 2: Separate Popper and Bootstrap JS -->
- <!--
- <script src="https://cdn.jsdelivr.net/npm/@popperjs/[email protected]/dist/umd/popper.min.js" integrity="sha384-SR1sx49pcuLnqZUnnPwx6FCym0wLsk5JZuNx2bPPENzswTNFaQU1RDvt3wT4gWFG" crossorigin="anonymous"></script>
- <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-j0CNLUeiqtyaRmlzUHCPZ+Gy5fQu0dQ6eZ/xAww941Ai1SxSY+0EQqNXNE6DZiVc" crossorigin="anonymous"></script>
- -->
Advertisement
Add Comment
Please, Sign In to add comment