Jump to content

Search the Community

Showing results for tags 'JavaScript'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Web Development
    • HTML e CSS
    • Javascript
    • PHP
    • Ruby
    • Python
    • Java
    • .NET
    • Docker, Kubernets and other environments
    • WordPress
    • Mobile
    • Agile
    • Desenvolvimento de Games
    • Banco de Dados
    • Design and UX
    • Algoritmos & Outras Tecnologias
  • Entretenimento e uso pessoal
    • Segurança & Malwares
    • Geral
    • iMasters's pub

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 1969 results

  1. ola galera . tenho uma aplicação com asp e utilizo javascript para bater foto do cliente . consigo apos a foto batida salvar no pc com o ID do cliente, porem gostaria que assim que a foto fosse batida salvasse na raiz do proprio site. tem como fazer isso ? obg
  2. marco_fcp

    Somar valores inputs/checkbox

    Estou tentando criar este código para quando escolher uma option no select, ele pegar nesse valor, e somar com quantos checksbox o utilizador quiser. Aí, no fim, no campo do valortotal conforme a option que escolher, irá subtrair um desconto do valor total. Penso ter feito os scripts, mas não estou a conseguir o resultado final com o desconto, dinâmico no mesmo campo. <!-- Pedido de Orçamento --> <div class="container-fluid mb-5"> <div class="row"> <div class="col-lg-2"></div> <div class="col-lg-8 mb-5"> <div class="caixa-orcamento pb-5"> <form action="" method="POST" onchange="atualizarPreco()" name="formulario"> <h3 class="text-center pt-5 pb-4 labels">Pedido de Orçamento:</h3> <table class="m-auto"> <tr> <td class="fw-bold labels">Tipo de página web:</td> <td> <!-- Três tipos de pãgina Fictícia com os valores de 400, 500 e 600 respetivamente --> <select name="tipopagina" id="tipopagina" required> <option value="0"></option> <option value="400" id="estatica">Estática</option> <option value="500" id="dinamica" >Dinâmica</option> <option value="600" id="loja" >Loja</option> </select> </td> </tr> <tr> <!-- Descontos de Prazo - de 1 Mes- 5%, 2 Meses-10%, 3 Meses- 15$, 4 Meses- 20%, em diante sempre 20% --> <td class="fw-bold labels">Prazo em meses:</td> <td><input type="number" id="prazo"></td> </tr> </table> <h5 class="text-center pt-5 pb-4 labels">Marque os separadores desejados</h5> <!-- Cada check selecionado soma 400 ao valor total --> <div class="checkbox labels text-center mb-5"> <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Quem Somos <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Onde estamos <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Galeria de fotografias <br> <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">eCommerce <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Gestão Interna <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Notícias <input type="checkbox" class="checkbox" id="check" name="separadores" value="400" onchange="somar(this)">Redes Sociais </div> <h5 class="text-center labels">Orçamento estimado:</h5> <p class="text-center labels">(É um valor meramente indicativo, pode sofrer alterações)</p> <div class="resultado-orcamento text-center"> <!-- Valor total do orçamento com os botões de resetar e submeter o orçamento --> <input type="text" id="valor-orcamento" name="valor-orcamento" value=""> <br> <button type="reset" class="btn btn-primary mt-4" id="reset" name="reset">Apagar Orçamento</button> <button type="submit" class="btn btn-primary mt-4" id="submeter" name="submeter">Submeter Orçamento</button> </div> </form> </div> </div> <div class="col-lg-2"></div> </div> </div> function atualizarPreco() { var preco = 0; // Tipo de página Selecionada com preços Diferentes if (document.getElementById('tipopagina').value == '400') { preco = 400; } if (document.getElementById('tipopagina').value == '500') { preco = 500; } if (document.getElementById('tipopagina').value == '600') { preco = 600; } // Desconto de 5% por cada mês de prazo (sobre valor total do orçamento) (máximo 20% de desconto que equivale a 4 meses máximo. A partir daí é sempre 20%) var prazo = document.getElementById('prazo').value; if (prazo == 0) { preco = preco + 0; } else if (prazo == 1) { preco = preco - (preco * 0.05); } else if (prazo == 2) { preco = preco - (preco * 0.10); } else if (prazo == 3) { preco = preco - (preco * 0.15); } else { preco = preco - (preco * 0.20); } document.getElementById('valor-orcamento').value = preco; // Código que soma 400€ ao total por cada checkbox selecionado var soma1 = 0; function somar(check) { if ( check.checked ){ soma1 += 1*check.value; } else { soma1 -= 1*check.value; } document.getElementById("valor-orcamento").value = soma1; } }
  3. luiz monteiro

    Problemas com VUE JS

    Olá, tudo bem? Estou tentando colocar um evento dropdown em um template.js mas sem sucesso. O script é o seguinte const template = ` <nav id="sidebar"> <ul class="list-unstyled menu"> <li> <a href="#"> <span class="glyphicon glyphicon-home" aria-hidden="true"></span> Home </a> </li> <li> <a href="#"> <span class="glyphicon glyphicon-signal" aria-hidden="true"></span> Analytics </a> </li> <li> <a href="#"> <span class="glyphicon glyphicon-tasks" aria-hidden="true"></span> Ações </a> </li> <li> <a href="#"> <span class="glyphicon glyphicon-cog" aria-hidden="true"></span> Controles </a> </li> <li> <a href="#"> <span class="glyphicon glyphicon-user" aria-hidden="true"></span> Configurações </a> </li> </ul> </nav> ` export default { name: "Sidebar", template, delimiters: ["#{", "}#"] } ============Preciso colocar um dropdown na opção Ações, algo assim <li v-for="item in items"> <a :href="item.url" v-if="!item.children"> </a> <span v-else v-on:mouseover="mouseover" v-on:mouseleave="mouseleave"> {{ item.name }} <ul class=" dropdown" :class="{ isOpen }"> <li v-for="child in item.children"> <a :href="child.url"> {{ child.name }} </a> </li> </ul> </span> </li> var nav = new Vue({ el: '#nav', data: { isOpen: false, items: [ { url: '#acoes', name: 'Ações', children: [ { url: '#link1', name: 'Opção 1' }, { url: '#link2', name: 'Opção 2' }, { url: '#link3', name: 'Opção 3' }, ] } ] }, methods: { mouseover: function () { this.isOpen = true; }, mouseleave: function () { this.isOpen = false; } } }); Quando coloco a programação no sidebar.js, não é exibido nada na tela nem mesmo retorna erro. =============No index os imports estão assim <script type="importmap"> { "imports": { "vue": "https://unpkg.com/vue@3/dist/vue.esm-browser.js" } } </script> <script type="module"> import { createApp } from "vue"; import Sidebar from "/components/sidebar.js"; import Welcome from "/components/welcome.js"; const app = createApp({ delimiters: ["#{", "}#"], components: { Welcome, Sidebar }, data() { return {} }, methods: { } }).mount("#wrapper"); </script> </body> Agradeço desde já.
  4. nathanmoreira

    Como formatar uma string

    Após diversos cálculos provindos de um código, recebo um número inteiro ao qual não sei o tamanho ao certo (pode variar de 1 pra frente). Quero passar esse número para string e formatar ele de maneira a colocar um ,00 no final e, a cada 3 números antes da virgula, um ponto. Ou seja, deixar o número num formato como: 45.114.477,00 Como fazer?
  5. Boa noite, Galera, utilizo uma aplicação que me permite inserir arquivos JavaScript customizados em algumas páginas, e por vezes quando realizo alguma alteração considerável no JS, preciso solicitar aos usuários da ferramenta para limparem o cache, evitando que eles fiquem com as regras antigas do JS e gere algum erro. Existe alguma forma de esporadicamente quando eu realizar alterações no JS, forçar a limpeza de cache nas máquinas clientes? Ou então de não permitir que o navegador salve cache deste JS que eu customizo as regras?
  6. anderson324

    Quais exercícios para iniciante

    Olá acabei de entrar no universo da programação e aprendi apenas como criar textos no arquivos e quero praticar mais quais códigos devo fazer para praticar.
  7. Sapinn

    Carrinho de compras

    Opa galera tudo beleza? Estou desenvolvendo um pequeno e-commerce de camisas. Enquanto fazia o carrinho de compras topei com um problema como posso mostrar os produtos no carrinho e como mostrar assim que for inserirdo um novo produto ? Fiz algumas buscas mas nenhuma me ajudou realmente. Carrinho de compras: <!-- ==================================== CARRINHO DE COMPRAS =================================== --> <div class="offcanvas offcanvas-end areaShoppingCart" tabindex="-1" id="offcanvasNavbar" aria-labelledby="offcanvasNavbarLabel"> <div class="offcanvas-header"> <h4 class="offcanvas-title fw-bold" id="offcanvasNavbarLabel"><i class="bi bi-cart4"></i> Carrinho de Compras </h4> <button type="button" class="text-reset closeAreaShoppingCart" data-bs-dismiss="offcanvas" aria-label="Close"><i class="bi bi-x"></i></button> </div> <span data-bs-toggle="modal" data-bs-target="#leiaimportante" class="link_text">Leia Importante <i class="bi bi-info-circle"></i></span> <hr /> <div class="offcanvas-body cart_body"> <!-- <div class="product_content"> <div class="trash_icon"><a href="#" class="link_text"><i class='bx bx-trash ' title="Excluir do carrinho"></i></a></div> <a href="" class="container_card_product"> <div class="d-flex"> <div class="cart_img_product"> <img src="../assets/images/camisas/257139328_126851229744515_2923407250030929456_n.webp.jpg" alt=""> </div> <div class="cart_info_product"> <div class="cart_name_product">Camisa do Paris San-German Branca</div> <div class="cart_price_product">Preço: 120,00</div> </div> </div> </a> <hr /> </div> --> </div> </div> JS: let cartShirt = []; let btn = document.querySelector(".btnShoppingCart"); let idShirt = btn.getAttribute('data-product-id') let nameShirt = document.querySelector(".name_shirt").innerText; let priceShirt = document.querySelector(".price_shirt").innerText; let symbol_shirt = document.querySelector(".symbol_shirt").getAttribute('src'); let urlShirt = window.location.href; let infoShirts = { "id": idShirt, "name": nameShirt, "price": priceShirt, "img": symbol_shirt, "url": urlShirt, } jsonShirt = JSON.stringify(infoShirts); let productsInCart = JSON.stringify(localStorage.getItem("futprime_cart")); btn.addEventListener('click', () => { if (productsInCart == '') { cartShirt.push(jsonShirt); localStorage.setItem('futprime_cart', cartShirt) }else{ let obj = productsInCart.concat(jsonShirt); cartShirt.push(obj.replace(/[\\"]/g, '')) /* console.log(cartShirt); */ localStorage.setItem('futprime_cart', cartShirt); /* console.log(localStorage.getItem('futprime_cart')); */ } insertInCartHTML(); }); console.log(localStorage.getItem('futprime_cart')); /* localStorage.clear(); */ function insertInCartHTML(){ }
  8. Boa noite! Estou desenvolvendo um formulário como estudo e queria fazer as validações de senha e confirma senha e não estou conseguindo. A ideia é quando as senhas não coincidirem aparecerá uma mensagem dizendo senhas não são iguais. Segue abaixo o escopo do meu código. function validarConfirmaSenha(senha, confirmaSenha) { var senhaDigitada = document.getElementsByName('senha').value; var confirmaSenhaDigitada = document.getElementsByName('confirmaSenha').value; if(senhaDigitada !== confirmaSenhaDigitada) { return { valido: false, texto: 'As senhas não são iguais.' } } else { return { valido: true, texto: '' } } }
  9. Marcones Borges

    Exportar arquivo gerado para jpg

    Olá, estou com uma dúvida, como faço para transformar um arquivo gerado com dados do sistema em jpg? Tenho uma pagina que pega informações do cliente para gerar um cartão, nome, foto e uma imagem de background. Até ai tudo bem, esta gerando a imagem que preciso, agora preciso criar um botão para exportar ela em jpg ou compartilhar nas redes a imagem gerada... Assim eu abro ela em outra página. <code]> <a href='cartao_aniversariante.php?id=<?=$cliente->id?>' target="_blank"><img src="imagens/niver.png" width="20" height="20" title="Cartão Aniversário"></a> </code> Tentei anexar a imagem aqui mais não permite pelo tamanho. Preciso exportar esta nova página aberta....
  10. Opa galera. Fiz um preview de imagens através de um input e ele está funcionado bem agora como eu faço para fazer uma mesmo preview em inputs diferentes. Quando coloco mais de um input e seleciona arquivos ele sempre mostra no primeiro input. Meu codigo: CSS: *{ padding: 0; margin: 0; box-sizing: border-box; font-family: "Rubik",sans-serif; } body{ background-color: #f5f8ff; } .container{ background-color: #ffffff; width: 60%; min-width: 450px; position: relative; margin: 50px auto; padding: 50px 20px; border-radius: 7px; box-shadow: 0 20px 35px rgba(0,0,0,0.05); } input[type="file"]{ display: none; } label{ display: block; position: relative; background-color: #025bee; color: #ffffff; font-size: 18px; text-align: center; width: 300px; padding: 18px 0; margin: auto; border-radius: 5px; cursor: pointer; } .container p{ text-align: center; margin: 20px 0 30px 0; } #images{ width: 80%; position: relative; margin: auto; display: flex; justify-content: space-evenly; gap: 20px; flex-wrap: wrap; } figure{ width: 45%; } img{ width: 100%; } figcaption{ text-align: center; font-size: 2.4vmin; margin-top: 0.5vmin; } HTML: <div class="container"> <input type="file" id="file-input" accept=".png, .jpeg, .jpg, .pdf" onchange="preview(this)" multiple> <label for="file-input"> <i class="fas fa-upload"></i> Escolha seus arquivos </label> <p id="num-of-files">Nenhum arquivo escolhido</p> <div id="images"></div> </div> <div class="container"> <input type="file" id="file-input" title="2" accept=".png, .jpeg, .jpg, .pdf" onchange="preview(this)" multiple> <label for="file-input"> <i class="fas fa-upload"></i> Escolha seus arquivos </label> <p id="num-of-files">Nenhum arquivo escolhido</p> <div id="images"></div> </div> JAVASCRIPT: let fileInput = document.getElementById("file-input"); let inputFile = document.querySelectorAll("#file-input"); let imageContainer = document.getElementById("images"); let numOfFiles = document.getElementById("num-of-files"); function preview(input){ imageContainer.innerHTML = ""; numOfFiles.textContent = `${fileInput.files.length} Arquivos selecionados`; for(i of fileInput.files){ let reader = new FileReader(); let figure = document.createElement("figure"); let figCap = document.createElement("figcaption"); figCap.innerText = i.name; figure.appendChild(figCap); reader.onload=()=>{ let img = document.createElement("img"); if(figCap.innerText.split('.').pop() == 'pdf'){ img.setAttribute("src","pdf.png"); }else{ img.setAttribute("src",reader.result); } figure.insertBefore(img,figCap); } imageContainer.appendChild(figure); reader.readAsDataURL(i); } }
  11. Salve! Não consigo verificar se o checkbox foi marcado, isso não faz o menor sentido porquê aparentemente eu fiz tudo certo. HTML: <div class="mt-4 mb-3 row "> <label class="label_checkbox">Adicionar customização <input type="checkbox" id="checkbox" name="custom_shirt"> <span class="checkmark"></span> </label> </div> JAVASCRIPT: let checkedCustomize = document.getElementById("checkbox"); if(checkedCustomize.checked){ alert("Checkbox marcado"); }else{ console.log("checkbox não marcado"); }
  12. Olá, gostaria de saber se alguém teria base ou ideia de como posso está fazendo um sistema semelhante a esse, trabalho com tamanhos em folhas A4,A3,A5 e queria determinar por quadrados quanto cabe na folha. Exemplo Etiquetas tamanho 5x5cm, caberia quantas unidades dentro de uma folha de 21x29.7cm Ele me daria a quantidade de quadros de 5x5cm dentro do tamanho da folha A4
  13. Ajuda com script para que, quando o usuário rolar a página, o menu fica fixed, e quando ele voltar ao topo, fica static. <div id="navbar" class="navbar"> <a href="index.php"> <img src="https://i.ibb.co/Z2TKYRX/artx-logo-text.png" alt="Art X" class="artx-logo"> </a> <nav id="nav"> <button aria-label="Abrir Menu" id="btn-mobile" aria-haspopup="true" aria-controls="menu" aria-expanded="false"> <span id="hamburger"></span> </button> <ul id="menu" role="menu"> <li><a href="index.php">Inicio</a></li> <li><a href="">Portfólio</a></li> <li><a href="">Clientes</a></li> <li><a href="">Institucional</a></li> <li><a href="">Contato</a></li> </ul> </nav> <div class="btn-finance"> <button><a href="orc.php">Solicite um orçamento</a></button> </div> </div> #navbar { box-sizing: border-box; width: 100%; position: static; top: 0; height: 50px; padding: 1rem; display: flex; align-items: center; justify-content: space-around; background: rgba(255, 255, 255, 0.35); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); } .artx-logo { margin-top: 5px; } .navbar { width: 100%; position: fixed; top: 0; background: rgba(255, 255, 255, 0.35); -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px); } #menu { display: flex; list-style: none; gap: 0.5rem; } #menu a { display: block; padding: 2rem; color: #131313; font-size: 14px; } #menu a:hover { background: -webkit-linear-gradient(-70deg, #be79b2 30%, #884593 50%, #3f2c52 100%); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; -webkit-box-decoration-break: clone; } #btn-mobile { display: none; } @media (max-width: 900px) { .btn-finance {display: none;} } @media (max-width: 768px) { .btn-finance {display: none;} .artx-btn { display: none; } #menu { display: block; position: absolute; width: 100%; top: 50px; right: 0px; background-color: white; transition: 0.6s; z-index: 1000; height: 0px; visibility: hidden; overflow-y: hidden; } #nav.active #menu { height: calc(100vh - 50px); visibility: visible; overflow-y: auto; } #menu a { padding: 1rem 0; margin: 0 1rem; border-bottom: 2px solid rgba(0, 0, 0, 0.05); } #btn-mobile { display: flex; padding: 0.5rem 1rem; font-size: 1rem; border: none; background: none; cursor: pointer; gap: 0.5rem; } #hamburger { border-top: 2px solid; width: 20px; } #hamburger::after, #hamburger::before { content: ''; display: block; width: 20px; height: 2px; background: #131313; margin-top: 5px; transition: 0.3s; position: relative; } #nav.active #hamburger { border-top-color: transparent; } #nav.active #hamburger::before { transform: rotate(135deg); } #nav.active #hamburger::after { transform: rotate(-135deg); top: -7px; } } .btn-finance button { background: linear-gradient(to bottom, #884593 5%, #884593 100%); background-color: #ffffff; border: none; display: inline-block; cursor: pointer; color: #ffffff; font-size: 14px; padding: 5px 10px; text-decoration: none; -webkit-transition: 0.5s ease; transition: 0.5s ease; } .btn-finance button a { color: white; } .btn-finance button:hover { border: none; background: linear-gradient(to bottom, #131313 5%, #131313 100%); background-color: #131313; display: inline-block; cursor: pointer; color: white; font-size: 14px; text-decoration: none; -webkit-transition: 0.5s ease; transition: 0.5s ease; }
  14. Olá, estou fazendo um banner virtual, ele vem com fundo default e uma imagem sobrepondo ele (foto de uma pessoa), queria remover o fundo da imagem, deixando apenas a imagem da pessoa, como faço isso?
  15. erissonamorim

    Usar câmera traseira do celular

    Olá pessoal, tudo certo?! Estou com um código que está funcionando bem. Mas gostaria de que a câmera traseira do celular fosse a padrão. Abaixo segue o código, caso possam me ajudar a efetuar esta alteração. Desde já, agradeço! (function () { var video = document.querySelector('video'); var pictureWidth = 640; var pictureHeight = 360; var fxCanvas = null; var texture = null; function checkRequirements() { var deferred = new $.Deferred(); //Check if getUserMedia is available if (!Modernizr.getusermedia) { deferred.reject('Your browser doesn\'t support getUserMedia (according to Modernizr).'); } //Check if WebGL is available if (Modernizr.webgl) { try { //setup glfx.js fxCanvas = fx.canvas(); } catch (e) { deferred.reject('Sorry, glfx.js failed to initialize. WebGL issues?'); } } else { deferred.reject('Your browser doesn\'t support WebGL (according to Modernizr).'); } deferred.resolve(); return deferred.promise(); } function searchForRearCamera() { var deferred = new $.Deferred(); //MediaStreamTrack.getSources seams to be supported only by Chrome if (MediaStreamTrack && MediaStreamTrack.getSources) { MediaStreamTrack.getSources(function (sources) { var rearCameraIds = sources.filter(function (source) { return (source.kind === 'video' && source.facing === 'environment'); }).map(function (source) { return source.id; }); if (rearCameraIds.length) { deferred.resolve(rearCameraIds[0]); } else { deferred.resolve(null); } }); } else { deferred.resolve(null); } return deferred.promise(); } function setupVideo(rearCameraId) { var deferred = new $.Deferred(); var videoSettings = { video: { optional: [ { width: { min: pictureWidth } }, { height: { min: pictureHeight } } ] } }; //if rear camera is available - use it if (rearCameraId) { videoSettings.video.optional.push({ sourceId: rearCameraId }); } navigator.mediaDevices.getUserMedia(videoSettings) .then(function (stream) { //Setup the video stream video.srcObject = stream; video.addEventListener("loadedmetadata", function (e) { //get video width and height as it might be different than we requested pictureWidth = this.videoWidth; pictureHeight = this.videoHeight; if (!pictureWidth && !pictureHeight) { //firefox fails to deliver info about video size on time (issue #926753), we have to wait var waitingForSize = setInterval(function () { if (video.videoWidth && video.videoHeight) { pictureWidth = video.videoWidth; pictureHeight = video.videoHeight; clearInterval(waitingForSize); deferred.resolve(); } }, 100); } else { deferred.resolve(); } }, false); }).catch(function () { deferred.reject('There is no access to your camera, have you denied it?'); }); return deferred.promise(); } function step1() { checkRequirements() .then(searchForRearCamera) .then(setupVideo) .done(function () { //Enable the 'take picture' button $('#takePicture').removeAttr('disabled'); //Hide the 'enable the camera' info $('#step1 figure').removeClass('not-ready'); }) .fail(function (error) { showError(error); }); } function step2() { var canvas = document.querySelector('#step2 canvas'); var img = document.querySelector('#step2 img'); //setup canvas canvas.width = pictureWidth; canvas.height = pictureHeight; var ctx = canvas.getContext('2d'); //draw picture from video on canvas ctx.drawImage(video, 0, 0); //modify the picture using glfx.js filters texture = fxCanvas.texture(canvas); fxCanvas.draw(texture) .hueSaturation(-1, -1)//grayscale .unsharpMask(20, 2) .brightnessContrast(0.2, 0.9) .update(); window.texture = texture; window.fxCanvas = fxCanvas; $(img) //setup the crop utility .one('load', function () { if (!$(img).data().Jcrop) { $(img).Jcrop({ onSelect: function () { //Enable the 'done' button $('#adjust').removeAttr('disabled'); } }); } else { //update crop tool (it creates copies of <img> that we have to update manually) $('.jcrop-holder img').attr('src', fxCanvas.toDataURL()); } }) //show output from glfx.js .attr('src', fxCanvas.toDataURL()); } function step3() { var canvas = document.querySelector('#step3 canvas'); var step2Image = document.querySelector('#step2 img'); var cropData = $(step2Image).data().Jcrop.tellSelect(); var scale = step2Image.width / $(step2Image).width(); //draw cropped image on the canvas canvas.width = cropData.w * scale; canvas.height = cropData.h * scale; var ctx = canvas.getContext('2d'); ctx.drawImage( step2Image, cropData.x * scale, cropData.y * scale, cropData.w * scale, cropData.h * scale, 0, 0, cropData.w * scale, cropData.h * scale); var spinner = $('.spinner'); spinner.show(); $('blockquote p').text(''); $('blockquote footer').text(''); // do the OCR! Tesseract.recognize(ctx).then(function (result) { var resultText = result.text ? result.text.trim() : ''; //show the result spinner.hide(); $('blockquote p').html('&bdquo;' + resultText + '&ldquo;'); $('blockquote footer').text('(' + resultText.length + ' characters)'); }); } /********************************* * UI Stuff *********************************/ //start step1 immediately step1(); $('.help').popover(); function changeStep(step) { if (step === 1) { video.play(); } else { video.pause(); } $('body').attr('class', 'step' + step); $('.nav li.active').removeClass('active'); $('.nav li:eq(' + (step - 1) + ')').removeClass('disabled').addClass('active'); } function showError(text) { $('.alert').show().find('span').text(text); } //handle brightness/contrast change $('#brightness, #contrast').on('change', function () { var brightness = $('#brightness').val() / 100; var contrast = $('#contrast').val() / 100; var img = document.querySelector('#step2 img'); fxCanvas.draw(texture) .hueSaturation(-1, -1) .unsharpMask(20, 2) .brightnessContrast(brightness, contrast) .update(); img.src = fxCanvas.toDataURL(); //update crop tool (it creates copies of <img> that we have to update manually) $('.jcrop-holder img').attr('src', fxCanvas.toDataURL()); }); $('#takePicture').click(function () { step2(); changeStep(2); }); $('#adjust').click(function () { step3(); changeStep(3); }); $('#go-back').click(function () { changeStep(2); }); $('#start-over').click(function () { changeStep(1); }); $('.nav').on('click', 'a', function () { if (!$(this).parent().is('.disabled')) { var step = $(this).data('step'); changeStep(step); } return false; }); })();
  16. Então, amigos segue a live demo: http://feeling.atwebpages.com Uma pena que minha outra conta eu perdi com meu e-mail. Seguinte, eu peguei daqui um exemplo do que eu precisava, que é um 'cardápio' que consiga adicionar o produto clicando na foto e no final, preciso q ele some e faça uma mini tabelinha com os itens. Até ai, perfeito, tá tudo beleza e funcionando. Porém, não tive jeito de conseguir fazer a impressão apenas da parte que preciso, que seria o que você comprou. Não preciso confirmação de nenhum tipo de sistemas reais bancários, apenas imprimir mesmo numa impressora térmica o cupom com os itens e quantidade. Segue meu ''código'' que tá meio bagunçado mas legível: index.html <!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <title>PDV Feeling</title> <link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css'><link rel="stylesheet" href="./style.css"> </head> <body> <!-- partial:index.partial.html --> <div class="main-wrapper" id="noPrint"> <div class="header" id="noPrint"><h1>PDV Feeling</h1></div> <div id="vue"> <cart :cart="cart" :cart-sub-total="cartSubTotal" :cart-total="cartTotal" :checkout-bool="checkoutBool"></cart> <products :cart="cart" :cart-sub-total="cartSubTotal" :cart-total="cartTotal" :products-data="productsData"></products> <checkout-area v-if="checkoutBool" :cart="cart" :cart-sub-total="cartSubTotal" :cart-total="cartTotal" :products-data="productsData" ></checkout-area> </div> </div> <!-- partial --> <script src='https://cdnjs.cloudflare.com/ajax/libs/vue/1.0.11/vue.js'></script> <script src="./script.js"></script> </body> </html> script.js //@TODO NOTIFICATIONS //--------- // Vue components //--------- Vue.component('products', { ready: function () { var self = this; document.addEventListener("keydown", function(e) { if (self.showModal && e.keyCode == 37) { self.changeProductInModal("prev"); } else if (self.showModal && e.keyCode == 39) { self.changeProductInModal("next"); } else if (self.showModal && e.keyCode == 27) { self.hideModal(); } }); }, template: "<h1>Produtos</h1>" + "<div class='products'>" + "<div v-for='product in productsData' track-by='$index' class='product {{ product.product | lowercase }}'>" + "<div class='image' @click='viewProduct(product)' v-bind:style='{ backgroundImage: \"url(\" + product.image + \")\" }' style='background-size: cover; background-position: center;'></div>" + "<div class='name'>{{ product.product }}</div>" + "<div class='description'>{{ product.description }}</div>" + "<div class='price'>{{ product.price | currency }}</div>" + "<button @click='addToCart(product)'>Adicionar ao Carrinho</button><br><br></div>" + "</div>" + "<div class='modalWrapper' v-show='showModal'>" + "<div class='prevProduct' @click='changeProductInModal(\"prev\")'><i class='fa fa-angle-left'></i></div>" + "<div class='nextProduct' @click='changeProductInModal(\"next\")'><i class='fa fa-angle-right'></i></div>" + "<div class='overlay' @click='hideModal()'></div>" + "<div class='modal'>" + "<i class='close fa fa-times' @click='hideModal()'></i>" + "<div class='imageWrapper'><div class='image' v-bind:style='{ backgroundImage: \"url(\" + modalData.image + \")\" }' style='background-size: cover; background-position: center;' v-on:mouseover='imageMouseOver($event)' v-on:mousemove='imageMouseMove($event)' v-on:mouseout='imageMouseOut($event)'></div></div>" + "<div class='additionalImages' v-if='modalData.images'>" + "<div v-for='image in modalData.images' class='additionalImage' v-bind:style='{ backgroundImage: \"url(\" + image.image + \")\" }' style='background-size: cover; background-position: center;' @click='changeImage(image.image)'></div>" + "</div>" + "<div class='name'>{{ modalData.product }}</div>" + "<div class='description'>{{ modalData.description }}</div>" + "<div class='details'>{{ modalData.details }}</div>" + "<h3 class='price'>{{ modalData.price | currency }}</h3>" + "<label for='modalAmount'>QTY</label>" + "<input id='modalAmount' value='{{ modalAmount }}' v-model='modalAmount' class='amount' @keyup.enter='modalAddToCart(modalData), hideModal()'/>" + "<button @click='modalAddToCart(modalData), hideModal()'>Add to Cart</button>" + "</div></div>", props: ['productsData', 'cart', 'cartSubTotal', 'cartTotal'], data: function() { return { showModal: false, modalData: {}, modalAmount: 1, timeout: "", mousestop: "" } }, methods: { addToCart: function(product) { var found = false; for (var i = 0; i < vue.cart.length; i++) { if (vue.cart[i].sku === product.sku) { var newProduct = vue.cart[i]; newProduct.quantity = newProduct.quantity + 1; vue.cart.$set(i, newProduct); //console.log("DUPLICATE", vue.cart[i].product + "'s quantity is now: " + vue.cart[i].quantity); found = true; break; } } if(!found) { product.quantity = 1; vue.cart.push(product); } vue.cartSubTotal = vue.cartSubTotal + product.price; vue.cartTotal = vue.cartSubTotal; vue.checkoutBool = true; }, modalAddToCart: function(modalData) { var self = this; for(var i = 0; i < self.modalAmount; i++) { self.addToCart(modalData); } self.modalAmount = 1; }, viewProduct: function(product) { var self = this; //self.modalData = product; self.modalData = (JSON.parse(JSON.stringify(product))); self.showModal = true; }, changeProductInModal: function(direction) { var self = this, productsLength = vue.productsData.length, currentProduct = self.modalData.sku, newProductId, newProduct; if(direction === "next") { newProductId = currentProduct + 1; if(currentProduct >= productsLength) { newProductId = 1; } } else if(direction === "prev") { newProductId = currentProduct - 1; if(newProductId === 0) { newProductId = productsLength; } } //console.log(direction, newProductId); for (var i = 0; i < productsLength; i++) { if (vue.productsData[i].sku === newProductId) { self.viewProduct(vue.productsData[i]); } } }, hideModal: function() { //hide modal and empty modal data var self = this; self.modalData = {}; self.showModal = false; }, changeImage: function(image) { var self = this; self.modalData.image = image; }, imageMouseOver: function(event) { event.target.style.transform = "scale(2)"; }, imageMouseMove: function(event) { var self = this; event.target.style.transform = "scale(2)"; self.timeout = setTimeout(function() { event.target.style.transformOrigin = ((event.pageX - event.target.getBoundingClientRect().left) / event.target.getBoundingClientRect().width) * 100 + '% ' + ((event.pageY - event.target.getBoundingClientRect().top - window.pageYOffset) / event.target.getBoundingClientRect().height) * 100 + "%"; }, 50); self.mouseStop = setTimeout(function() { event.target.style.transformOrigin = ((event.pageX - event.target.getBoundingClientRect().left) / event.target.getBoundingClientRect().width) * 100 + '% ' + ((event.pageY - event.target.getBoundingClientRect().top - window.pageYOffset) / event.target.getBoundingClientRect().height) * 100 + "%"; }, 100); }, imageMouseOut: function(event) { event.target.style.transform = "scale(1)"; } } }); Vue.component('cart', { template: '<div class="cart">' + '<span class="cart-size" @click="showCart = !showCart"> {{ cart | cartSize }} </span><i class="fa fa-shopping-cart" @click="showCart = !showCart"></i>' + '<div class="cart-items" v-show="showCart">' + '<table class="cartTable">' + '<tbody>' + '<tr class="product" v-for="product in cart">' + '<td class="align-left"><div class="cartImage" @click="removeProduct(product)" v-bind:style="{ backgroundImage: \'url(\' + product.image + \')\' }" style="background-size: cover; background-position: center;"><i class="close fa fa-times"></i></div></td>' + '<td class="align-center"><button @click="quantityChange(product, \'decriment\')"><i class="close fa fa-minus"></i></button></td>' + '<td class="align-center">{{ cart[$index].quantity }}</td>' + '<td class="align-center"><button @click="quantityChange(product, \'incriment\')"><i class="close fa fa-plus"></i></button></td>' + '<td class="align-center">{{ cart[$index] | customPluralize }}</td>' + '<td>{{ product.price | currency }}</td>' + '</tbody>' + '<table>' + '</div>' + '<h4 class="cartSubTotal" v-show="showCart"> {{ cartSubTotal | currency }} </h4></div>' + '<button class="clearCart" v-show="checkoutBool" @click="clearCart()"> Clear Cart </button>' + '<button class="checkoutCart" v-show="checkoutBool" @click="propagateCheckout()"> Checkout </button>', props: ['checkoutBool', 'cart', 'cartSize', 'cartSubTotal', 'cartTotal'], data: function() { return { showCart: false } }, filters: { customPluralize: function(cart) { var newName; if(cart.quantity > 1) { if(cart.product === "Peach") { newName = cart.product + "es"; } else if(cart.product === "Puppy") { newName = cart.product + "ies"; newName = newName.replace("y", ""); } else { newName = cart.product + "s"; } return newName; } return cart.product; }, cartSize: function(cart) { var cartSize = 0; for (var i = 0; i < cart.length; i++) { cartSize += cart[i].quantity; } return cartSize; } }, methods: { removeProduct: function(product) { vue.cart.$remove(product); vue.cartSubTotal = vue.cartSubTotal - (product.price * product.quantity); vue.cartTotal = vue.cartSubTotal; if(vue.cart.length <= 0) { vue.checkoutBool = false; } }, clearCart: function() { vue.cart = []; vue.cartSubTotal = 0; vue.cartTotal = 0; vue.checkoutBool = false; this.showCart = false; }, quantityChange: function(product, direction) { var qtyChange; for (var i = 0; i < vue.cart.length; i++) { if (vue.cart[i].sku === product.sku) { var newProduct = vue.cart[i]; if(direction === "incriment") { newProduct.quantity = newProduct.quantity + 1; vue.cart.$set(i, newProduct); } else { newProduct.quantity = newProduct.quantity - 1; if(newProduct.quantity == 0) { vue.cart.$remove(newProduct); } else { vue.cart.$set(i, newProduct); } } } } if(direction === "incriment") { vue.cartSubTotal = vue.cartSubTotal + product.price; } else { vue.cartSubTotal = vue.cartSubTotal - product.price; } vue.cartTotal = vue.cartSubTotal; if(vue.cart.length <= 0) { vue.checkoutBool = false; } }, //send our request up the chain, to our parent //our parent catches the event, and sends the request back down propagateCheckout: function() { vue.$dispatch("checkoutRequest"); } } }); Vue.component('checkout-area', { template: "<h1>Checkout Area</h1>" + '<div class="checkout-area">' + '<span> {{ cart | cartSize }} </span><i class="fa fa-shopping-cart"></i>' + '<table>' + '<thead>' + '<tr>' + '<th class="align-center">SKU</th>' + '<th>Name</th>' + '<th>Description</th>' + '<th class="align-right">Amount</th>' + '<th class="align-right">Price</th>' + '</tr>' + '</thead>' + '<tbody>' + '<tr v-for="product in cart" track-by="$index">' + '<td class="align-center">{{ product.sku }}</td>' + '<td>{{ product.product }}</td>' + '<td>{{ product.description }}</td>' + '<td class="align-right">{{ cart[$index].quantity }}</td>' + '<td class="align-right">{{ product.price | currency }}</td>' + '</tr>' + //'<button @click="removeProduct(product)"> X </button></div>' + '<tr>' + '<td>&nbsp;</td>' + '<td>&nbsp;</td>' + '<td>&nbsp;</td>' + '<td>&nbsp;</td>' + '<td>&nbsp;</td>' + '</tr>' + '<tr>' + '<td></td>' + '<td></td>' + '<td></td>' + '</tr>' + '<tr>' + '<td></td>' + '<td></td>' + '<td></td>' + '</tr>' + '<tr>' + '<td></td>' + '<td></td>' + '<td></td>' + '<td class="align-right vert-bottom">Total:</td>' + '<td class="align-right vert-bottom"><h2 v-if="cartSubTotal != 0"> {{ cartTotal | currency }} </h2></td>' + '</tr>' + '</tbody>' + '</table>' + '<button v-show="cartSubTotal" @click="checkoutModal()">Checkout</button></div>' + "<div class='modalWrapper' v-show='showModal'>" + "<div class='overlay' @click='hideModal()'></div>" + "<div class='modal checkout'>" + "<i class='close fa fa-times' @click='hideModal()'></i>" + "<h1>Checkout</h1>" + "<h1> Total: {{ cartTotal | currency }} </h3>" + "<br><div>This is where our payment processor goes</div>" + "</div>", props: ['cart', 'cartSize', 'cartSubTotal', 'cartTotal'], data: function() { return { showModal: false } }, filters: { customPluralize: function(cart) { var newName; if(cart.quantity > 1) { newName = cart.product + "s"; return newName; } return cart.product; }, cartSize: function(cart) { var cartSize = 0; for (var i = 0; i < cart.length; i++) { cartSize += cart[i].quantity; } return cartSize; } }, methods: { removeProduct: function(product) { vue.cart.$remove(product); vue.cartSubTotal = vue.cartSubTotal - (product.price * product.quantity); vue.cartTotal = vue.cartSubTotal; if(vue.cart.length <= 0) { vue.checkoutBool = false; } }, checkoutModal: function() { var self = this; self.showModal = true; console.log("CHECKOUT", self.cartTotal); }, hideModal: function() { //hide modal and empty modal data var self = this; self.showModal = false; } }, //intercept the checkout request broadcast //run our function events: { "checkoutRequest": function() { var self = this; self.checkoutModal(); } } }); //--------- // Vue init //--------- Vue.config.debug = false; var vue = new Vue({ el: "#vue", data: { productsData: [ { sku: 1, product: "Monkey", image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/chimpanzee.jpg", images: [ { image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/chimpanzee.jpg" }, { image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/gorilla.jpg" }, { image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/red-monkey.jpg" }, { image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/mandrill-monkey.jpg" } ], description: "This is a monkey", details: "This is where some detailes on monkies would go. This monkey done seent some shit.", price: 5.50 }, { sku: 2, product: "Kitten", image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/kittens.jpg", description: "This is a kitten", details: "This is where some detailes on kittens would go. Shout out kittens for being adorable.", price: 10 }, { sku: 3, product: "Shark", image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/shark.jpg", description: "This is a shark", details: "This is where some detailes on sharks would go. Damn nature, you scary.", price: 15 }, { sku: 4, product: "Puppy", image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/dog.jpg", description: "This is a puppy", details: "This is where some detailes on puppies would go. Shout out puppies for being adorable.", price: 5 }, { sku: 5, product: "Apple", image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/apple.jpg", description: "This is an apple", details: "This is where some detailes on apples would go. Shout out apples for being delicious.", price: 1 }, { sku: 6, product: "Orange", image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/orange.jpg", description: "This is an orange", details: "This is where some detailes on oranges would go. Shout out oranges for being delicious.", price: 1.1 }, { sku: 7, product: "Peach", image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/peach.jpg", description: "This is a peach", details: "This is where some detailes on peaches would go. Shout out peaches for being delicious.", price: 1.5 }, { sku: 8, product: "Mango", image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/mango.png", description: "This is a mango", details: "This is where some detailes on mangos would go. Shout out mangos for being delicious.", price: 2 }, { sku: 9, product: "Cognac", image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/cognac.jpg", description: "This is a glass of cognac", details: "This is where some detailes on cognac would go. I'm like hey whats up, hello.", price: 17.38 }, { sku: 10, product: "Chain", image: "https://s3-us-west-2.amazonaws.com/s.cdpn.io/241793/chain.jpg", description: "This is a chain", details: "This is where some details on chains would go. 2Chainz but I got me a few on.", price: 17.38 } ], checkoutBool: false, cart: [], cartSubTotal: 0, cartTotal: 0 }, //intercept the checkout request dispatch //send it back down the chain events: { "checkoutRequest": function() { vue.$broadcast("checkoutRequest"); } } }); Bom, eu tentei de tantas maneiras e diversos tutoriais, que ficou evidente que não vou conseguir sem ajuda. Não me importa se ele irá criar uma nova página com os dados nem nada, desde q ele clique no botão e imprima na impressora padrão. Li em foruns gringos que tem navegadores que não lidam bem com tipos de codigo para impressão sem diálogo, se for o caso posso usar qualquer navegador na máquina, minha ideia é que online nunca vai precisar ''reinstalar'' sistemas nesse pc. Se só conseguir fazer com diálogo, tbm é possível, mesmo q prefira sem nenhum popup. Fico na esperança da ajuda dos amigos, pois estava a bastante tempo sem programar nada e, agora graças a deus com mais projetos, irei tirar a ferrugem, mas de momento necessito desse apoio da comunidade.
  17. ericklluz

    Dúvidas a respeito de datas

    Boa tarde senhores, sou iniciante no Js e estou com uma dúvida, estou tentando resolver uma questão num CRM onde temos um campo de data, isto é, um input com uma data específica e eu gostaria de criar um script que recebe este input e retorna o primeiro dia deste mês e coloca em outro campo. Alguém poderia me dar uma ajuda pra que entenda como construír este pequeno script. serei eternamente grato. Obrigado comunidade!
  18. Boa tarde, Venho hoje pedir ajuda ajuda a desofuscar este script que queria usar para um jogo mas queria fazer algumas alterações.. conseguem me ajudar? Aguardo a ajuda Cumprimentos function _0xaf33(){const _0x5a6975=['WOHWW78','W5hdQxu','W5W6WQG','nZKy','aSoliSoPqqnRkrb/','WR7cQCk1','B8ovFa','WRL0CG','q8oCqq','WQddN2q','wNZcSa','WO56W78','WPVcL8ob','WRVdG8kS','W5xdUhi','WQddH8kd','W67cLq4','WP3dGCk+','WOxdQdW','ymkydW','p8k8WOu','WQhcUSoC','WQNdJ24','vgCC','WR/dSqFdM8kOW5pcNCk2CdFcImoetW','ax3dTG','l0aI','W4a2WRO','oSoAkq','neuC','vHjwCIjrWOHTWO/cTG','kgfj','W44gW6blW4ddISo7iCkRW4NcKe/dTW','b0xdMa','W4tdK8kh','aMVdRq','wCo3F8kEW4OvoCkEWP8','WO7cRxe','WRddOSkg','t0JcNq','g1FcHG','Aura','W73dGmkwzmkshqLsW5/cRSo4WRyE','W7NcQ0u','i2Tf','s8kxCq','EeWl','EcT3','WQ3dL8kJ','W6GMWQm','W5JdPLS','xctcUW','W6JcUmkh','WOrYW7W','bKVcLW','vrrzD30lWOvvWOhcI3W2','W5iNW6a','WRJdKCkJ','WP3dUSkT','WPjeWQ0','WOxdPmkU','eXldNa','WQFdO8kC','W6pcGu0','W6xcPLi','AuRcPa','Cmk9pa','jSoHWOq','e1tcTa','W6fJlW','pSkvFa','q2Lx','rxyh','imoIWRG','WQVcPCo1','W60MWQS','WQBcSSor','W7WIn8kUWPi6u8oUW6FcK8koW7O','ishdTq','w3mw','WRFdGdi','B0ah','W7ZcHIW','hepcNq','nZ0X','W6BdIN4','WObuwa','oSokvG','m8ogka','iXyE','WQddJGm','WQpdNaW','WQvBpX3cO8oeWR4xW6DP','d0lcNq','wfeN','rgua','AhiA','WPJdT8o4','W6z4h8ocudnLWQz7W5uiya','WQBcVCkO','sCklyW','ECo+vW','i8kZfaHCW7FcNCkJWOG','ASkQWPa','c0xcNq','W6Wymq','o8oyoa','WOtcQ8k2','W4NdQ8kQ','WRrNW65YW7FdNftcO8o8aadcSq','u0JcKq','W5y7WPG','mx7cHSkUW6NcLqNcVG','vgKF','W6dcVvu','rwuD','WQG5sW','W4hdRLm','eSoqmG','WOSuWRq','fZKx','cMBdRG','W67dLSkI','kSkaW5i','WR7cHCo6','WRCbwq','oSkKrW','W4zeWRu','W48MWRW','eJrc','xCo/cW','x3ig','dKm/','W6dcKw0','W7RcGgC','bxFdRG','W604WR8','W6bRW6S','wGZdRa','WQ09wa','WPpdO8kg','W7JdUCoX','WO0Qwa','W7BdPmk/','f0VcGG','cXNcIW','EmosWOrxECkhgMSqamkdua','W7lcJfpdTSoRCmosWPTFFSoBW6q','evBcMW','fMddSG','bJddUW','fe4K','lw5w','W6vjW70pW54OovxcTSoKW5lcV8ou','hJJcNW','h8kImG','zcLU','W6dcNxi','sXZcTq','d0dcGq','umozuW','W7/dV8kY','imoqWRK','FCoaW74','jmk4g1OGWRxcVmkHWQCHWQFcOG','WRldNWS','g8k9iq','deNcVa','W5i/WQC','WPDBWRO','jSo7FG','W4xdSmo8','W6a5WRG','hmkrW6q','WPJcQmkw','BmkJW6hdTeBcQSklbHuG','WPZdSSkg','l8o4WQK'];_0xaf33=function(){return _0x5a6975;};return _0xaf33();}(function(_0xcfb2d7,_0x76ca37){const _0x192e81=_0x2f7a,_0x7c07fc=_0x2f7a,_0x5dbb04=_0xcfb2d7();while(!![]){try{const _0x19da5a=-parseInt(_0x192e81(0x1ad,'5yjv'))/(0x1154*0x1+0xb6*-0x7+-0xc59)+-parseInt(_0x7c07fc(0x209,'%iGT'))/(-0xfb5+-0x1366+-0x59*-0x65)+parseInt(_0x192e81(0x1dc,'DH7M'))/(0x1609*0x1+-0x73f*0x1+-0x3*0x4ed)*(parseInt(_0x192e81(0x22c,'9UAg'))/(-0x3*-0x966+0x3*0x13+-0x1c67*0x1))+-parseInt(_0x192e81(0x1d8,'d@Fb'))/(-0x1037+-0x1ec9+0x2f05*0x1)*(parseInt(_0x7c07fc(0x1e6,'G#N6'))/(0x75+0x351+-0x3c0))+-parseInt(_0x192e81(0x248,'%UfP'))/(-0x291*0x7+-0x5e9*0x1+0x17e7)+-parseInt(_0x7c07fc(0x20f,'w*uG'))/(-0x2660+-0x2e*0x2b+-0x2*-0x1711)+-parseInt(_0x192e81(0x21a,'DH7M'))/(-0x9*0x1b+0x1*-0x20f9+0x1*0x21f5)*(-parseInt(_0x192e81(0x225,'zCd#'))/(-0xb76+0x2*-0x130d+0x319a));if(_0x19da5a===_0x76ca37)break;else _0x5dbb04['push'](_0x5dbb04['shift']());}catch(_0x515f37){_0x5dbb04['push'](_0x5dbb04['shift']());}}}(_0xaf33,-0x2*0xada0+0x6c454+0x43fda));let _0x3fee26=window;function _0x2f7a(_0x26277e,_0x3a55dc){const _0x3e986a=_0xaf33();return _0x2f7a=function(_0x23bfe8,_0x2204ef){_0x23bfe8=_0x23bfe8-(-0x74d+0xe6f+-0x1d9*0x3);let _0xddba6f=_0x3e986a[_0x23bfe8];if(_0x2f7a['wIprGk']===undefined){var _0x4034f8=function(_0x5a661d){const _0x538c5f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b464b='',_0x459a33='',_0x30dc51=_0x3b464b+_0x4034f8;for(let _0x2655c0=0x16*-0x2+0x3*0xbff+0xad*-0x35,_0x9ea18e,_0x2c9356,_0x5386c6=-0x2*0xec2+-0x1c43+0x7*0x841;_0x2c9356=_0x5a661d['charAt'](_0x5386c6++);~_0x2c9356&&(_0x9ea18e=_0x2655c0%(-0x53c+0x1*-0x1e28+0x2368)?_0x9ea18e*(-0x2112+0x2f0+-0x1e62*-0x1)+_0x2c9356:_0x2c9356,_0x2655c0++%(0x1e63*0x1+-0x1*-0x60d+-0x246c))?_0x3b464b+=_0x30dc51['charCodeAt'](_0x5386c6+(-0x1*-0x2204+0x33*0xc4+-0x4906))-(0x12cb+-0x294+-0x102d)!==0x1baf+0xd69+0x28*-0x107?String['fromCharCode'](0x1b2+-0x1e8f+0xc4*0x27&_0x9ea18e>>(-(0x28b*0x1+-0x5*-0x196+-0x2f*0x39)*_0x2655c0&-0x18d1+-0x1de6+0x36bd)):_0x2655c0:0x18e6*0x1+-0xd*-0x5d+0x1*-0x1d9f){_0x2c9356=_0x538c5f['indexOf'](_0x2c9356);}for(let _0x53a43f=-0x22*0xb4+-0x2*-0x10be+-0x994,_0x10763c=_0x3b464b['length'];_0x53a43f<_0x10763c;_0x53a43f++){_0x459a33+='%'+('00'+_0x3b464b['charCodeAt'](_0x53a43f)['toString'](-0xb*0x1+-0x5a1*-0x2+0x23b*-0x5))['slice'](-(-0x1*-0x2446+-0x1993*-0x1+-0x3dd7));}return decodeURIComponent(_0x459a33);};const _0x3429ee=function(_0x12db0d,_0x5a29e4){let _0x4ad58e=[],_0x4f1042=0x1c54+0xbbd+-0x2811,_0x1e11fa,_0x3558b9='';_0x12db0d=_0x4034f8(_0x12db0d);let _0x2ec2c7;for(_0x2ec2c7=-0x226f*0x1+-0x1707+0x3976;_0x2ec2c7<0x3aa+-0xf49+0xc9f;_0x2ec2c7++){_0x4ad58e[_0x2ec2c7]=_0x2ec2c7;}for(_0x2ec2c7=0x482+-0x22d5+0x1e53;_0x2ec2c7<-0x1698+-0x1*-0x2e+0x176a;_0x2ec2c7++){_0x4f1042=(_0x4f1042+_0x4ad58e[_0x2ec2c7]+_0x5a29e4['charCodeAt'](_0x2ec2c7%_0x5a29e4['length']))%(-0x12bd+-0x1*0x589+-0x287*-0xa),_0x1e11fa=_0x4ad58e[_0x2ec2c7],_0x4ad58e[_0x2ec2c7]=_0x4ad58e[_0x4f1042],_0x4ad58e[_0x4f1042]=_0x1e11fa;}_0x2ec2c7=-0x2371+-0x1e3d*-0x1+0x534,_0x4f1042=0xd6e*0x2+-0xfaa+0x599*-0x2;for(let _0x198429=-0x893*-0x2+0x2*0xb41+-0x27a8;_0x198429<_0x12db0d['length'];_0x198429++){_0x2ec2c7=(_0x2ec2c7+(0x1981+-0x4*-0xa6+-0x1c18))%(0x1646+-0x23e7+0x2ed*0x5),_0x4f1042=(_0x4f1042+_0x4ad58e[_0x2ec2c7])%(0x1f21+0x3*0x167+-0x2256),_0x1e11fa=_0x4ad58e[_0x2ec2c7],_0x4ad58e[_0x2ec2c7]=_0x4ad58e[_0x4f1042],_0x4ad58e[_0x4f1042]=_0x1e11fa,_0x3558b9+=String['fromCharCode'](_0x12db0d['charCodeAt'](_0x198429)^_0x4ad58e[(_0x4ad58e[_0x2ec2c7]+_0x4ad58e[_0x4f1042])%(0xb79+-0x1638+0x1*0xbbf)]);}return _0x3558b9;};_0x2f7a['uNgnnY']=_0x3429ee,_0x26277e=arguments,_0x2f7a['wIprGk']=!![];}const _0x2e36dc=_0x3e986a[0x1aa3+-0xf85+0x1*-0xb1e],_0x171a15=_0x23bfe8+_0x2e36dc,_0x4c0cfc=_0x26277e[_0x171a15];if(!_0x4c0cfc){if(_0x2f7a['UrtMKx']===undefined){const _0x278497=function(_0x1179db){this['outvAN']=_0x1179db,this['bdEgCV']=[0x6*0x2e3+0xab1+-0x1c02,0x11da*-0x2+0x1329+0x1*0x108b,0x4dd*0x1+-0x1ed3+0xcfb*0x2],this['eQbOHX']=function(){return'newState';},this['jpLgCT']='\x5cw+\x20*\x5c(\x5c)\x20*{\x5cw+\x20*',this['KiGGWJ']='[\x27|\x22].+[\x27|\x22];?\x20*}';};_0x278497['prototype']['xHydLS']=function(){const _0xa3e142=new RegExp(this['jpLgCT']+this['KiGGWJ']),_0x2de048=_0xa3e142['test'](this['eQbOHX']['toString']())?--this['bdEgCV'][-0x13d9+0x80a+0xbd0]:--this['bdEgCV'][0x17fe+-0x1*0x22ca+-0x4*-0x2b3];return this['LMnhcT'](_0x2de048);},_0x278497['prototype']['LMnhcT']=function(_0x3a66b7){if(!Boolean(~_0x3a66b7))return _0x3a66b7;return this['eZfDrY'](this['outvAN']);},_0x278497['prototype']['eZfDrY']=function(_0x5b75c6){for(let _0x238c2b=0xd17+-0x24b8+-0x17a1*-0x1,_0x338a94=this['bdEgCV']['length'];_0x238c2b<_0x338a94;_0x238c2b++){this['bdEgCV']['push'](Math['round'](Math['random']())),_0x338a94=this['bdEgCV']['length'];}return _0x5b75c6(this['bdEgCV'][0x3*0x953+0x1af7+-0x928*0x6]);},new _0x278497(_0x2f7a)['xHydLS'](),_0x2f7a['UrtMKx']=!![];}_0xddba6f=_0x2f7a['uNgnnY'](_0xddba6f,_0x2204ef),_0x26277e[_0x171a15]=_0xddba6f;}else _0xddba6f=_0x4c0cfc;return _0xddba6f;},_0x2f7a(_0x26277e,_0x3a55dc);}_0x522dfd();function _0x522dfd(){const _0xab3d9=_0x2f7a,_0x22e69c=_0x2f7a,_0x3ce4ad={'IhGBl':'scr'+'een'+_0xab3d9(0x1aa,'yoQ8')+'mo','Plsuy':_0xab3d9(0x1a7,'smwT')+'zH','ZmCoL':_0xab3d9(0x237,'IRD&')+'CB','DRVib':'Nge'+'SH','lutIA':'fca'+'dk','rJGrI':_0xab3d9(0x1f6,'rbyu')+'io','vwUzf':'Dcx'+'Hz','ERpHg':_0xab3d9(0x200,'N9ip')+'.+)'+_0x22e69c(0x243,'BLY6')+_0xab3d9(0x1ec,'9UAg'),'zTbna':_0xab3d9(0x215,'GRyy')+'wq','GkSmy':function(_0x3a4012,_0x449cdb,_0x5b4a4c){return _0x3a4012(_0x449cdb,_0x5b4a4c);},'NDXNh':function(_0x1cd12d){return _0x1cd12d();}},_0x2c5100=(function(){const _0x54f9ad=_0xab3d9,_0x28b0bd=_0xab3d9,_0x3cd357={};_0x3cd357[_0x54f9ad(0x1eb,'j*Ke')+'cb']=_0x3ce4ad['IhG'+'Bl'],_0x3cd357[_0x28b0bd(0x1b0,'vpUF')+'zF']=_0x54f9ad(0x226,'IRD&')+_0x28b0bd(0x1df,'BvoN')+_0x54f9ad(0x238,'%iGT')+_0x54f9ad(0x23c,'WO0c')+_0x54f9ad(0x227,'zCd#')+_0x28b0bd(0x1e2,'&q#L')+_0x54f9ad(0x1b9,'WO0c')+'rco'+'nte'+'nt.'+_0x54f9ad(0x1e7,'f9O^')+_0x54f9ad(0x1bb,'p7j9')+_0x28b0bd(0x23f,'f9O^')+_0x54f9ad(0x1d3,'GRyy')+_0x54f9ad(0x1ae,'BLY6')+'vpa'+_0x28b0bd(0x1d7,'vpUF')+_0x54f9ad(0x1cd,'DH7M')+_0x28b0bd(0x1bd,'f9O^')+'20C'+'omm'+_0x28b0bd(0x1ce,'j2YU')+_0x28b0bd(0x1c6,'y&MJ')+_0x54f9ad(0x234,'ErhB')+_0x54f9ad(0x1c9,'GRyy')+_0x28b0bd(0x1b8,'4*%5')+_0x54f9ad(0x1a8,'B9#e')+_0x54f9ad(0x207,'GRyy')+_0x28b0bd(0x247,'50uB'),_0x3cd357[_0x54f9ad(0x1ca,'50uB')+'YM']=_0x3ce4ad[_0x54f9ad(0x22a,'rbyu')+'uy'],_0x3cd357[_0x28b0bd(0x198,'&q#L')+'PF']=_0x3ce4ad[_0x54f9ad(0x1e5,'rbyu')+'oL'],_0x3cd357[_0x54f9ad(0x1be,'f9O^')+'SE']=_0x3ce4ad[_0x54f9ad(0x23a,'%iGT')+'ib'],_0x3cd357[_0x54f9ad(0x1d6,'#iAA')+'Ll']=_0x3ce4ad[_0x54f9ad(0x1db,'DH7M')+'IA'];const _0x594ebd=_0x3cd357;if(_0x3ce4ad[_0x28b0bd(0x197,'o8I]')+'rI']!==_0x3ce4ad[_0x54f9ad(0x1f2,'ErhB')+'zf']){let _0x18ea0a=!![];return function(_0x220aff,_0x4dd75b){const _0x500663=_0x54f9ad,_0x230736=_0x54f9ad,_0xea7e53={};_0xea7e53['plg'+'AF']=_0x594ebd[_0x500663(0x21e,'smwT')+'zF'],_0xea7e53['cjC'+'xU']=function(_0x456361,_0x177549){return _0x456361===_0x177549;},_0xea7e53[_0x230736(0x1d1,'%iGT')+'Sb']=_0x594ebd['saH'+'YM'],_0xea7e53['gJg'+'uF']=_0x500663(0x1fa,'5yjv')+'DY',_0xea7e53[_0x500663(0x20d,'5yjv')+'zm']=_0x594ebd[_0x500663(0x1d4,'f9O^')+'PF'];const _0x481d7e=_0xea7e53;if(_0x594ebd[_0x230736(0x1da,'9UAg')+'SE']===_0x594ebd[_0x230736(0x1bf,'yq%c')+'Ll'])(_0x2c24e7['loc'+_0x230736(0x1d0,'%iGT')+'on'][_0x500663(0x244,'j2YU')+'f']['inc'+_0x230736(0x1e8,'B9#e')+'es'](_0x594ebd[_0x230736(0x1b5,'y&MJ')+'cb'])||_0x533c50[_0x500663(0x21f,'%UfP')+_0x500663(0x1af,'Mdyy')+'on'][_0x500663(0x244,'j2YU')+'f'][_0x230736(0x19b,'OUQ0')+'lud'+'es'](_0x500663(0x1d5,'f9O^')+_0x230736(0x231,'mZ6T')+_0x230736(0x1f5,'%UfP')+'ace'))&&(_0x395e3a['l']=!![],_0x54bf1f[_0x500663(0x1ef,'tsck')+'Scr'+_0x230736(0x1b1,'%UfP')](_0x500663(0x1fd,'tsck')+'ps:'+_0x230736(0x1e1,'&q#L')+'l.d'+_0x230736(0x213,'y&MJ')+'box'+'use'+_0x500663(0x1e9,'f9O^')+'nte'+_0x230736(0x1c8,'y&MJ')+_0x230736(0x20b,'o8I]')+_0x500663(0x219,'yq%c')+_0x230736(0x1f1,'T#vL')+_0x500663(0x22f,'p7j9')+_0x500663(0x1dd,'WO0c')+_0x500663(0x1ea,'d@Fb')+_0x500663(0x19f,'#iAA')+_0x230736(0x1ed,'smwT')+_0x230736(0x22d,'^r1V')+_0x230736(0x1f8,'1CSZ')+_0x500663(0x1ab,'BLY6')+_0x500663(0x1fe,'rbyu')+_0x500663(0x1f7,'f9O^')+_0x500663(0x1ee,'50uB')+'der'+'%20'+_0x230736(0x22e,'9UAg')+'s?d'+_0x230736(0x1bc,'j2YU')));else{const _0x76958f=_0x18ea0a?function(){const _0x13a9fc=_0x500663,_0x3f38c0=_0x500663;if(_0x481d7e['cjC'+'xU'](_0x481d7e[_0x13a9fc(0x235,'Mdyy')+'Sb'],_0x13a9fc(0x242,'5yjv')+'eC'))_0x27f4a3['l']=!![],_0x5e2b01['get'+_0x13a9fc(0x204,'d@Fb')+_0x13a9fc(0x20a,'GRyy')](_0x481d7e[_0x13a9fc(0x1a3,'9UAg')+'AF']);else{if(_0x4dd75b){if(_0x481d7e[_0x13a9fc(0x1cf,'50uB')+'uF']!==_0x481d7e[_0x13a9fc(0x1d9,'yoQ8')+'zm']){const _0x49b23e=_0x4dd75b['app'+'ly'](_0x220aff,arguments);return _0x4dd75b=null,_0x49b23e;}else{if(_0x17f3b0){const _0x3b1edf=_0x48d8b3[_0x3f38c0(0x1ba,'N9ip')+'ly'](_0x2f9efe,arguments);return _0x5a5842=null,_0x3b1edf;}}}}}:function(){};return _0x18ea0a=![],_0x76958f;}};}else{const _0x25cbda=_0x5b9516?function(){if(_0x2fc72e){const _0xde61e4=_0x295150['app'+'ly'](_0x173cf1,arguments);return _0x5c5390=null,_0xde61e4;}}:function(){};return _0x51a7c6=![],_0x25cbda;}}()),_0x12f750=_0x3ce4ad['GkS'+'my'](_0x2c5100,this,function(){const _0x4a39e=_0x22e69c,_0x325802=_0xab3d9;return'wfn'+'wq'!==_0x3ce4ad['zTb'+'na']?_0x18f5d6['toS'+_0x4a39e(0x241,'o8I]')+'ng']()[_0x4a39e(0x21b,'%iGT')+'rch'](ygrRLD[_0x325802(0x216,'DH7M')+'Hg'])[_0x325802(0x1ac,'N9ip')+_0x325802(0x1a6,'Mdyy')+'ng']()[_0x4a39e(0x228,'BLY6')+_0x325802(0x201,'d@Fb')+_0x325802(0x1a1,'B9#e')+'or'](_0x47587a)[_0x325802(0x22b,'50uB')+'rch'](_0x4a39e(0x1b3,'T^iQ')+'.+)'+'+)+'+_0x4a39e(0x1a9,'o8I]')):_0x12f750['toS'+_0x4a39e(0x21c,'1CSZ')+'ng']()['sea'+_0x325802(0x218,'yq%c')](_0x3ce4ad[_0x4a39e(0x1f0,'&q#L')+'Hg'])[_0x4a39e(0x21d,'GRyy')+_0x4a39e(0x19d,'T^iQ')+'ng']()['con'+_0x4a39e(0x220,'4*%5')+_0x4a39e(0x1c7,'#iAA')+'or'](_0x12f750)[_0x325802(0x19e,'FrLM')+_0x4a39e(0x210,'E]xi')](_0x3ce4ad['ERp'+'Hg']);});_0x12f750(),_0x3ce4ad[_0xab3d9(0x1cc,'p7j9')+'Nh'](_0x270f13);}function _0x270f13(){const _0x2b1ceb=_0x2f7a,_0x414c10=_0x2f7a,_0x5d655a={};_0x5d655a[_0x2b1ceb(0x1cb,'j*Ke')+'NR']=_0x414c10(0x1de,'GRyy')+_0x2b1ceb(0x236,'j*Ke')+'=me'+'mo',_0x5d655a[_0x2b1ceb(0x1f3,'d@Fb')+'sI']='scr'+_0x414c10(0x233,'BLY6')+'=pl'+_0x2b1ceb(0x1c0,'^r1V'),_0x5d655a['gkp'+'Cs']=_0x414c10(0x223,'T#vL')+'gd',_0x5d655a[_0x2b1ceb(0x212,'u@dC')+'LZ']=_0x414c10(0x1b7,'T^iQ')+'Xq',_0x5d655a[_0x2b1ceb(0x239,'IRD&')+'wt']=_0x2b1ceb(0x1f9,'f9O^')+'ps:'+_0x414c10(0x1f4,'DH7M')+_0x414c10(0x224,'IRD&')+'rop'+_0x2b1ceb(0x1a4,'#iAA')+'use'+_0x2b1ceb(0x1fb,'y&MJ')+_0x2b1ceb(0x1b2,'vpUF')+_0x2b1ceb(0x221,'&q#L')+'com'+_0x2b1ceb(0x232,'o8I]')+'can'+_0x2b1ceb(0x199,'o8I]')+_0x414c10(0x214,'N9ip')+'vpa'+_0x414c10(0x1c2,'yoQ8')+_0x414c10(0x205,'Mdyy')+'to%'+_0x2b1ceb(0x23b,'j2YU')+_0x2b1ceb(0x206,'GRyy')+'and'+'%20'+_0x2b1ceb(0x1b4,'IRD&')+_0x2b1ceb(0x203,'V5bN')+'%20'+_0x414c10(0x1c4,'o8I]')+_0x414c10(0x20c,'o8I]')+_0x2b1ceb(0x1ff,'rbyu');const _0x2795ef=_0x5d655a;if(window[_0x414c10(0x1a5,'u@dC')+_0x2b1ceb(0x217,'V$9e')+'on'][_0x2b1ceb(0x1e4,'T^iQ')+'f'][_0x414c10(0x20e,'3#HD')+_0x2b1ceb(0x23e,'mZ6T')+'es'](_0x2795ef[_0x2b1ceb(0x230,'DH7M')+'NR'])||window[_0x414c10(0x222,'rbyu')+_0x414c10(0x229,'j*Ke')+'on'][_0x2b1ceb(0x1fc,'y&MJ')+'f'][_0x2b1ceb(0x1b6,'B9#e')+_0x2b1ceb(0x1c5,'f9O^')+'es'](_0x2795ef[_0x414c10(0x23d,'ErhB')+'sI'])){if(_0x2795ef[_0x414c10(0x1a2,'3#HD')+'Cs']!==_0x2795ef[_0x2b1ceb(0x211,'1CSZ')+'LZ'])_0x3fee26['l']=!![],$[_0x2b1ceb(0x202,'IRD&')+_0x2b1ceb(0x245,'5yjv')+_0x2b1ceb(0x1e0,'j2YU')](_0x2795ef[_0x414c10(0x19c,'Mdyy')+'wt']);else{const _0x4c52c7=_0x165d48[_0x414c10(0x1c1,'rbyu')+'ly'](_0xcb3190,arguments);return _0xaad6c=null,_0x4c52c7;}}}
  19. Bom dia. Estava lendo alguns artigos sobre javascript e me deparei com essa estrutura const debounce = function(func, wait, immediate) { let timeout; return function(...args) { const context = this; const later = function() { timeout = null; if (!immediate) func.apply(context, args); }; const callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); if (callNow) func.apply(context, args); }; }; Minha duvida é nesse ponto return function(...args), o que significa e qual a finalidade dos três pontos antes do args? Agradeço desde já.
  20. Fala galerinha beleza, bom vamos lá. Eu tenho um site que o conteúdo dele é tudo em uma página só, o menu, quando escolho uma opção ele leva em uma determinada parte do site referente ao menu clicado. Até aqui ok. Porém eu instalei um botão para voltar para o topo quando rola o site para baixo, e como sou leigo em Java, notei que parece que tá tendo conflito com o ScrollTop, pois o botão que coloquei para voltar para o topo também tem o scrolltop. Gostaria de fazer funcionar o menu e o botão juntos, pois quando desativo o .js do botão o menu funciona normal, quando ativo o botão novamente ele para de funcionar. Vou deixar o código de ambos aqui. .JS do Menu (scroll.min.js) (function(e){"use strict";var t="ScrollIt",n="1.0.3";var r={upKey:38,downKey:40,easing:"linear",scrollTime:600,activeClass:"active",onPageChange:null,topOffset:0};e.scrollIt=function(t){var n=e.extend(r,t),i=0,s=e("[data-scroll-index]:last").attr("data-scroll-index");var o=function(t){if(t<0||t>s)return;var r=e("[data-scroll-index="+t+"]").offset().top+n.topOffset+1;e("html,body").animate({scrollTop:r,easing:n.easing},n.scrollTime)};var u=function(t){var n=e(t.target).closest("[data-scroll-nav]").attr("data-scroll-nav")||e(t.target).closest("[data-scroll-goto]").attr("data-scroll-goto");o(parseInt(n))};var a=function(t){var r=t.which;if(e("html,body").is(":animated")&&(r==n.upKey||r==n.downKey)){return false}if(r==n.upKey&&i>0){o(parseInt(i)-1);return false}else if(r==n.downKey&&i<s){o(parseInt(i)+1);return false}return true};var f=function(t){if(n.onPageChange&&t&&i!=t)n.onPageChange(t);i=t;e("[data-scroll-nav]").removeClass(n.activeClass);e("[data-scroll-nav="+t+"]").addClass(n.activeClass)};var l=function(){var t=e(window).scrollTop();var r=e("[data-scroll-index]").filter(function(r,i){return t>=e(i).offset().top+n.topOffset&&t<e(i).offset().top+n.topOffset+e(i).outerHeight()});var i=r.first().attr("data-scroll-index");f(i)};e(window).on("scroll",l).scroll();e(window).on("keydown",a);e("body").on("click","[data-scroll-nav], [data-scroll-goto]",function(e){e.preventDefault();u(e)})}})(jQuery) .JS do Botão Back to top (backtotop.js) jQuery(window).scroll(function(){ if(jQuery(window).scrollTop()<50){ jQuery('#rocketmeluncur').slideUp(500); }else{ jQuery('#rocketmeluncur').slideDown(500); } var ftrocketmeluncur = jQuery("#ft")[0] ? jQuery("#ft")[0] : jQuery(document.body)[0]; var scrolltoprocketmeluncur = $('rocketmeluncur'); var viewPortHeightrocketmeluncur = parseInt(document.documentElement.clientHeight); var scrollHeightrocketmeluncur = parseInt(document.body.getBoundingClientRect().top); var basewrocketmeluncur = parseInt(ftrocketmeluncur.clientWidth); var swrocketmeluncur = scrolltoprocketmeluncur.clientWidth; if (basewrocketmeluncur < 1000) { var leftrocketmeluncur = parseInt(fetchOffset(ftrocketmeluncur)['left']); leftrocketmeluncur = leftrocketmeluncur < swrocketmeluncur ? leftrocketmeluncur * 2 - swrocketmeluncur : leftrocketmeluncur; scrolltoprocketmeluncur.style.left = ( basewrocketmeluncur + leftrocketmeluncur ) + 'px'; } else { scrolltoprocketmeluncur.style.left = 'auto'; scrolltoprocketmeluncur.style.right = '10px'; } }) jQuery('#rocketmeluncur').click(function(){ jQuery("html, body").animate({ scrollTop: '0px',display:'none'},{ duration: 600, easing: 'linear' }); var self = this; this.className += ' '+"launchrocket"; setTimeout(function(){ self.className = 'showrocket'; },800) }); Ficaria inteiramente grato se alguém pudesse me ajudar nessa. Um forte abraço a toda comunidade.
  21. Boa tarde iMasters! Sou novo aqui no fórum! Estou precisando de uma ajuda para acessar imagem de uma Câmera IP! Usando o seguinte código está dando erro! ----- document.getElementById('img_camera').src = 'http://root:pass@192.168.15.119/mjpg/video.mjpg'; ----- Erro Apresentado no Console do Chrome: Subresource requests whose URLs contain embedded credentials... Obs.: Preciso passar usuário e senha! Agora se mando abrir uma nova janela com a mesma URL, dá certo... Mas preciso abrir a imagem em um campo!!! ----- window.open ('http://root:pass@192.168.15.119/mjpg/video.mjpg', '_self' , 'width = 320, height = 240'); ----- Agradeço desde já a todos! Abraço!
  22. fbrandao84

    Linguagem plataforma R&S

    Olá colegas programadores/desenvolvedores. Estou iniciando meus primeiros passos, aprendendo HTML e CSS. A minha intenção é desenvolver uma plataforma de Recrutamento e Seleção, com cruzamentos de respostas do Candidato X Empresa, mostrando o quão compatível é o candidato à cultura da empresa e as habilidades exigidas pela vaga, em forma de percentual. Gostaria de saber dos amigos quais linguagens devo utilizar para conseguir realizar tal trabalho. Segue exemplos de sites que utilizam a ferramenta de perfil comportamental https://recrutei.com.br/ https://www.empregor.com.br/ https://abler.com.br/empresas https://chawork.com.br/ https://www.kenoby.com/ Inseri anexo do esquema para melhor entendimento Abraços e sucessos a todos nós.
  23. ferreira1980

    Ajuda com javascript - trocar random

    Boa noite. Preciso retirar o random e deixar que os dígitos sejam sequenciais como esta O usuário esta digitando e o input escreve trocando pelo que esta na variável <input id="entrada" type="text" onkeypress="embaralhar(event)" /> <label id="texto"> <br/> <br/> <button id="exibir" onClick="exibir()">Exibir Original <button id="limpar" onClick="limpar()">Limpar</button> var textoOriginal = ''; var entrada = document.getElementById("entrada"); function embaralhar(event) { var x = event.which || event.keyCode; if (x !== 8) { textoOriginal += entrada.value.substr(entrada.value.length - 1); entrada.value = entrada.value.replaceAt(entrada.value.length -1, randomico()); } }; function exibir() { document.getElementById("texto").innerHTML = textoOriginal; }; function limpar() { textoOriginal = ''; document.getElementById("texto").innerHTML = ''; document.getElementById("entrada").value = ''; }; function randomico() { var possible = "Preciso alterar por esta frase em ordem crescente"; //var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; return possible.charAt(Math.floor(Math.random() * possible.length)); } String.prototype.replaceAt = function(index, character) { return this.substr(0, index) + character + this.substr(index + character.length); }
  24. Boa tarde Gostaria de trocar o que esta sendo escrito no input pelo usuário por outra palavra enquanto ele digita. Se ele digitar: Arroz Branco (12 caracteres) Eu quero que apareça sendo escrito: Macarronadas (12 caracteres) Caso não batam os caracteres não tem problema ficar quebrado a palavra ou frase. O importante pra mim é que seja digitado caractere por caractere enquanto ele digita. Obg
  25. Caros amigos, saudações... Estou com uma pequena dúvida para apresentar ao usuário uma Mensagem de ERRO após consulta de CEP. Quando o usuário digita um CEP válido o sistema demonstra em uma TABELA os valores respectivos de FRETE de acordo com os CEP. -----[ até aqui tudo bem ]----- Meu problema é quando o usuário digita um CEP não válido. Nesta parte gostaria de Limpar a Tabela e mostrar uma TBODY de mensagem. <div class="col-md-12" id="divCity" style="display:none; margin-top:5px; margin-left:-23px;"> <div class="col-md-12"> <div class="input-group"> <label for="cidadeUf" class="lblCitys">Cidade:</label> <input type="text" name="cidadeUf" id="cidadeUf" class="form-control" style="margin-top:-17px; background:#ffffff; border: 0 solid #ffffff;" disabled /> </div> </div> <br/> <div class="col-md-12" style="margin-top:-10px; margin-left:10px;"> <div class="table-responsive"> <table class="table tableList" id="tborden"> <thead> <tr> <th colspan="3" style="text-align:left;">Prazo de Entrega para:</th> </tr> </thead> <tbody> <tr class="message"> <td colspan="3" class="text-center">O CEP informado não foi encontrado.</td> </tr> </tbody> </table> </div> </div> <div class="col-md-12" style="margin-top:-10px; margin-left:10px;"> <span class="infprz"> <i class='fa fa-caret-right'></i>&nbsp; Os prazos de Entrega e para Retirar na Loja, iniciam-se no 1º dia útil após a data da confirmação do pagamento. </span> </div> </div> O JavaScript está assim: //Função para Buscar Cidade e Estado Via CEPs. $(function(){ $("#btn_consulta").click(function(){ var cep = $('#cepOrg').val(); if (cep == '') { alert('Informe o CEP antes de continuar'); document.getElementById("divCity").style.display = "none"; $('#cepOrg').focus(); return false; } //Muda o Status do Button $('#btn_consulta').html('Aguarde...'); $.ajax({ url: "<?php echo base_url();?>site/produtos/consulta", type: "POST", dataType:"json", data:{cep: cep}, success:function(data){ if (data.hasOwnProperty('erro')) { /* * Caso o usuário digita um CEP não válido o sistema apresenta um ALERT. * nessa parte gostaria de mostrar a LINHA criada na Tabela anteriormente */ alert('CEP não encontrado'); document.getElementById("divCity").style.display = "none"; $('#cepOrg').val(''); $('#cidadeUf').val(''); $('#cepOrg').focus(); $('#btn_consulta').html('Consultar'); return false; } else { //Exibe os Dados Recebidos $('#cidadeUf').val(data.localidade+'/'+data.uf); //Chama a Função para Exibir a DIV oculta statusDIV(); //Chama a Função Monta Tabela, passando a Variável de Busca montaTable(cep); //Muda o Status do Button $('#btn_consulta').html('Consultar'); } } });//Fim - ajax CEP });//Fim - function button });//Fim - 1º.function function montaTable(cep){ $.ajax({ url: "<?php echo base_url();?>site/produtos/getByCep", type: "POST", dataType:"json", data:{ cep: cep}, success:function(data){ //Remove Mensagem da Tabela $("#tborden tbody tr.message").remove(); var lin = ""; for (var i = 0; i < data.length; i++) { lin += "<tr>"; lin += "<td width='30%' style='text-align:left; font-size:16px;'>" + data[i].cepRegiao + "</td>"; lin += "<td width='21%' style='text-align:left; font-size:16px;'>" + data[i].frtEntreg + "</td>"; if (data[i].vlrFrete != null && data[i].vlrFrete != 0) { lin += "<td width='20%' style='text-align:right; font-size:16px; font-weight:bold; color:#19198F;'>" + mskVlr(data[i].vlrFrete) + "</td>"; } else { lin += "<td width='20%' style='text-align:right; font-size:16px; font-weight:bold; color:#137A13;'>Frete Grátis</td>"; } lin += "</tr>"; } //Atualiza a Tabela $("#tborden tbody").empty(); //Adiciona os Itens a Tabela $("#tborden tbody").append(lin); } });//Fim - ajax Valor Frete } Como consigo executar essa mensagem ? Grato, Cesar
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.