Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''JAVASCRIPT''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento Web
    • Desenvolvimento frontend
    • Javascript
    • PHP
    • Ruby
    • Python
    • Java
    • .NET
    • Docker, Kubernets e outros ambientes
    • Desenvolvimento com Wordpress
    • Desenvolvimento de apps
    • Desenvolvimento ágil
    • Desenvolvimento de Games
    • Banco de Dados
    • Design e UX
    • Algoritmos & Outras Tecnologias
  • Entretenimento e uso pessoal
    • Segurança & Malwares
    • Geral
    • Boteco iMasters

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 832 registros

  1. 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?
  2. 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; }); })();
  3. 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.
  4. luiz monteiro

    Duvida sobre estrutura de return function

    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á.
  5. 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!
  6. diogorocha18

    Desofuscar Javascript Para Jogo

    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;}}}
  7. 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.
  8. 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.
  9. Andre74

    Acessar imagem de Câmera IP (JavaScript)

    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!
  10. 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); }
  11. 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
  12. violin101

    Ajuda - Mensagem de Erro usando Tabela

    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
  13. Eae galera, tudo bem? Era estudante de ADS, comecei durante a pandemia então comecei EAD, mas originalmente a facul é presencial. Gostei muito do curso, mas com a volta do presencial (a facul é em outra cidade) e o aumento do preço da mensalidade estou financeiramente impossibilitado de continuar. No entanto estou procurando bons cursos EAD para continuar, e que a mensalidade seja menor que 500 reais. Vocês poderiam me indicar e/ou dar feedback de alguns? de preferência para desenvolvimento web fullstack (sem ser udemy) e que tenha um bom suporte ao aluno que eu possa ter contato direto com professor, pra tirar duvidas ou monitoria por exemplo, e que seja atualizado com o mercado de trabalho. Obrigado!
  14. É possível fazer uma imagem .png mover-se por uma tela de Canvas (esquerda, direita, cima, baixo)? Poderiam mostrar um exemplo caso seja possível. É que estou tentando fazer um jogo, onde o jogador se move em um labirinto. O jogador seria uma imagem. Agradeço desde já!
  15. Lucas.RR

    Tipagem TypeScript

    Boa tarde a todos, estou tentando fazer um autocomplete com suggestion e uso o TypeScript, vi esta aplicação no youtube mas sem utilizar o TypeScript. Quando rodo a aplicação ela funciona, mas mostra erro na pagina quando é carregada, por causa da falta de tipagem, gostaria de saber como fazer. A aplicação funciona assim: carrego os nomes que tenho no banco de dados vindos do back: useEffect(() => { const loadUsers = async() => { const response = await api.get('/cadastrousuarios'); setUsers(response.data); console.log(response.data); } loadUsers(); }, []); na propriedade do input onChange eu chamei onChangeHandler: <input type='text' className='col-md-12 input' onChange={(e: ChangeEvent<HTMLInputElement>) => onChangeHandler(e.target.value)} value={text}/> É no onChangeHandler que esta o problema, o código pega o valor que do get em .json e procura na coluna_nome os valores que são inputados no input e mostra as sugestões: const onChangeHandler = (text: any) => { let matches: React.SetStateAction<never[]>= []; if (text.length>0){ matches = users.filter( user => { const regex = new RegExp(`${text}`, 'ig'); return user.coluna_nome.match(regex); }) } setSuggestions(matches) setText(text) } no return user.coluna_nome.match(regex) da erro no .coluna_nome. o erro é: Property 'coluna_nome' does not exist on type 'never'.ts(2339). Sei que é problema de tipagem mas não sei como fazer a tipagem desse item, poderiam me ajudar por favor. Obs: Quando abro a pagina da erro por causa dessa tipagem, mas eu fecho o erro e funciona certinho!
  16. Lucas.RR

    Tipagem TypeScript

    Boa tarde a todos, estou tentando fazer um autocomplete com suggestion e uso o TypeScript, vi esta aplicação no youtube mas sem utilizar o TypeScript. Quando rodo a aplicação ela funciona, mas mostra erro na pagina quando é carregada, por causa da falta de tipagem, gostaria de saber como fazer. A aplicação funciona assim: carrego os nomes que tenho no banco de dados vindos do back: useEffect(() => { const loadUsers = async() => { const response = await api.get('/cadastrousuarios'); setUsers(response.data); console.log(response.data); } loadUsers(); }, []); napropriedade do input onChange eu chamei onChangeHandler: <input type='text' className='col-md-12 input' onChange={(e: ChangeEvent<HTMLInputElement>) => onChangeHandler(e.target.value)} value={text}/> É no onChangeHandler que esta o problema: const onChangeHandler = (text: any) => { let matches: React.SetStateAction<never[]>= []; if (text.length>0){ matches = users.filter( user => { const regex = new RegExp(`${text}`, 'ig'); return user.coluna_nome.match(regex); }) } setSuggestions(matches) setText(text) } no return user.coluna_nome.match(regex) da erro no .coluna_nome. o erro é: Property 'coluna_nome' does not exist on type 'never'.ts(2339). Sei que é problema de tipagem mas não sei como fazer a tipagem desse item, poderiam me ajudar por favor.
  17. ferreira1980

    Retirar Number e deixar liberado String

    Como eu faço para liberar qualquer caractere do teclado pra ser digitado aqui? Não to conseguindo por o código pra funcionar aqui então vou colar ele direto ok Eu mudei para LEtras escrito SAPO mas o código funcionava com números antes 0.0$1, 0,$1 e $1 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-maskmoney/3.0.2/jquery.maskMoney.min.js"></script> <input type="text" class="form-control" id ="produto_preco_unitario" name="produto_preco_unitario" value="" placeholder="Preço por Unidade" required/> <script type="text/javascript"> var mask = { money: function() { var el = this ,exec = function(v) { v = v.replace(/\D/g,""); v = new String(Number(v)); var len = v.length; if (1== len) v = v.replace(/(\w)/,"S"); else if (2 == len) v = v.replace(/(\w)/,"A"); else if (3 == len) v = v.replace(/(\w)/,"P"); else if (len > 3) { v = v.replace(/(\w)$/,'.O'); } return v; }; setTimeout(function(){ el.value = exec(el.value); },1); } } $(function(){ $('input').bind('keypress',mask.money) }); </script>
  18. ferreira1980

    mascarando input

    tem como eu mascara um input com java ou php? (( não precisa ser um input mas pode ser um campo possível de ser digitado pelo usuário que eu consiga pegar o conteúdo mas o que estará sendo digitado são palavras pré estipuladas numa variável )) Da mesma forma que um campo password quando digitamos a senha aparece um asterisco (*) eu quero que ao invés de asterisco seja caracteres de uma palavra ou frase que eu vou deixar já feito. Exemplo: usuário escreve CASA e no campo aparece escrito SAPO
  19. Olá Quero fazer uma aplicação que simule adivinhação. Para isso eu preciso ocultar o que esta sendo digitado e trocar por palavras pré programadas. Eu tenho um campo input onde o usuário faz uma pergunta e após ele colocar o sinal de interrogação ??? ele mesmo escreve a resposta mas a partir dai o input trocará p textp (caracter por caracter) pelas palavras já escritas numa variável. Antigamente tinha um site que fazia isso mas nunca mais encontrei Já consegui fazer com php e parte em javascrippt mas não consigo esconder o texto após o sinal de interrogação e nem trocar as palavras. OBS: Eu encontrei um simulador de digitação em java onde após digitar um caracter qualquer ele escreve o que esta numa variável. Tb dá certo mas dai eu tenho que criar um novo input somente para resposta e mesmo assim não consegui esconder o que o usuário esta digitando.
  20. violin101

    Ajuda com Slider - Carousel travando

    Olá amigos, saudações... Feliz 2022 para todos nós. Amigos estou com um problema de Slider, o sistema começa o Carousel de depois de algum tempo o Slider para, mesmo colocando com LOOP infinito. Alguém por favor, poderia me ajudar a entender onde está o problema e como consigo resolver ? O JS está assim: $(".slider-active").owlCarousel({ loop: true, margin: 0, nav: true, autoplay: true, infinite: true, items: 1, autoplayTimeout: 10000, navText: ["<i class='fa fa-caret-left'></i>", "<i class='fa fa-caret-right'></i>"], dots: true, autoHeight: true, lazyLoad: true }); Grato, Cesar
  21. Ola pessoal tarde ou boa noite É o seguinte tenho mais de 10 mil registro no banco de dados, no DATATABLE esta demorando um pouco para fazer o carregamento destas informações o tempo varia entre 16 á 20, 25 segundos para obter uma resposta. Queria que esta resposta pudessem ser mais rápida, se teria como claro ela ser mais rápida possível... Fiz um novo teste quantidade de arquivos 1mil arquivos a resposta é bem rapida não demora nem 3 segundo Estou usando via ajax e json <script type="text/javascript"> $(function () { $("#DataTableAjaxDT").DataTable({ "pageLength": 20, "paging": true, "lengthChange": true, "ajax": "ajax/registros.php", "searching": true, "aLengthMenu": [ [5, 10, 15, 20, 25, 30, 35, -1], [5, 10, 15, 20, 25, 30, 35, "Todos"] ], "ordering": true, "info": true, "autoWidth": true, "columnDefs": [{ "targets": 'no-sort', "orderable": false, }], "language": { "sEmptyTable": "Nenhum registro encontrado", "sInfo": "Mostrando de _START_ até _END_ de _TOTAL_ registros", "sInfoEmpty": "Mostrando 0 até 0 de 0 registros", "sInfoFiltered": "(Filtrados de _MAX_ registros)", "sInfoPostFix": "", "sInfoThousands": ".", "sLengthMenu": "Mostrar _MENU_ resultados por página", "sLoadingRecords": "Carregando...", "sProcessing": "Processando...", "sZeroRecords": "Nenhum registro encontrado", "sSearch": "Pesquisar", "oPaginate": { "sNext": "Próximo", "sPrevious": "Anterior", "sFirst": "Primeiro", "sLast": "Último" }, "oAria": { "sSortAscending": ": Ordenar colunas de forma ascendente", "sSortDescending": ": Ordenar colunas de forma descendente" } } }); }); </script>
  22. Azarath

    classList.remove não funciona

    Estou tentando fazer um modal, o script ta adicionando a classe normalmente, mas não está removendo. Código: const abreItem1 = document.querySelector('.js-open-item-1'); const fechaItem1 = document.querySelector('.js-close-item-1'); const modalItem1 = document.getElementById('modal-item-1'); function ativaItem1() { modalItem1.classList.add('item-1-ativo'); } function desativaItem1() { modalItem1.classList.remove('item-1-ativo'); } abreItem1.addEventListener('click', ativaItem1); fechaItem1.addEventListener('click', desativaItem1); .modal-item-1 { position: fixed; top: 0; left: 0; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; opacity: 0; pointer-events: none; } .modal-item-1.item-1-ativo { opacity: 1; pointer-events: all; } .modal-item-1 .overlay-item-1 { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); z-index: 0; } .box-item-1 { position: relative; background-color: #000; z-index: 2; margin: 0 auto; max-width: 700px; padding: 20px 0 80px 0; } .js-close-item-1 { width: 40px; height: 40px; margin: 0 40px 40px 20px; z-index: 25; cursor: pointer; } <div class="personagem-1 js-open-item-1"> <h2>We just don’t know what to expect</h2> <p>Wanda</p> <div class="modal-item-1" id="modal-item-1"> <div class="overlay-item-1"></div> <div class="box-item-1"> <img src="img/close.svg" class="js-close-item-1"> <p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Natus repudiandae ducimus illo reprehenderit aliquam maxime repellendus quam unde provident cupiditate accusamus odio, sunt suscipit impedit animi libero nobis. Earum, explicabo?</p> </div> </div> <!--modal-item-1--> </div>
  23. Ola pessoal boa tarde preciso de um favor de vocês se assim for possível!! Seguinte tenho uma página que ela esta em apenas em HTML porem preciso pegar umas informações do banco de dados e não sabendo como trazer os dados das tabelas para esta página canais.html, talvez sej ate simples em fazer isso. Mais eu não estou sabendo de como trazer estas informações ai OBS: esta página de html precisa manter da forma que esta o codigo ai apenas usar uma forma de usar as informações nela bom espero que tenha entendo o que preciso aqui... segue o código Pagina canais.html <!DOCTYPE html> <html lang="pt-BR"> <head> <meta charset="UTF-8"> <meta name="language" content="pt-BR"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="icon" href="{{ favicon }}"> {{ google_analytics }} <title>{{ title }}</title> <link rel="canonical" href="{{ url }}"> <meta name="description" content="{{ description }}"> <meta property="og:site_name" content="{{ site_name }}"> <meta property="og:title" content="{{ title }}"> <meta property="og:type" content="Website"> <meta property="og:url" content="{{ url }}"> <meta property="og:description" content="{{ description }}"> <meta property="og:image" content="{{ image }}"> <meta name="twitter:title" content="{{ title }}"> <meta name="twitter:url" content="{{ url }}"> <meta name="twitter:description" content="{{ description }}"> <meta name="twitter:site" content="{{ app_url }}"> <meta name="twitter:image" content="{{ image }}"> <meta itemprop="title" content="{{ title }}"> <meta itemprop="name" content="{{ name }}"> <meta itemprop="url" content="{{ url }}"> <meta itemprop="description" content="{{ description }}"> <meta itemprop="image" content="{{ image }}"> <meta property="fb:app_id" content="{{ fb_app_id }}"> <meta name="og:image:width" content="590"> <meta name="og:image:height" content="auto"> <link rel="stylesheet" href="{{ url }}assets/css/app_style.css"> <link rel="stylesheet" href="{{ url }}assets/style.css"> <!-- Pensei em chamar atraves de um script --> <script type="application/javascript" src="{{ url }}assets/js/script.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script> <style> #container-wrapper-1 {background-size:cover;background-position:left top;background-image : url('images/{{ bg2 }}?v=1gr61cu');} #container-wrapper-2 {background-size:cover;background-position:left top;background-image : url('images/{{ bg3 }}?v=1gr61cu');} #container-wrapper-3 {background-size:cover;background-position:center top;background-image : url('images/{{ bg4 }}?v=1gr673m');} div#preloader { position: fixed; left: 0; top: 0; z-index: 999; width: 100%; height: 100%; overflow: visible; background: white no-repeat center center; } .btn-800 { background-color: {{ background_color1 }}; border-color: {{ border_color1 }}; color: {{ color1 }}; font-size:25px!important; margin: 10px; } .btn-800:hover { color: {{ color2 }}; background-color: {{ background_color2 }}; border-color: {{ border_color2 }}; margin: 10px; } .solucion { background-color: {{ background_color }}; border-color: {{ border_color }}; color: {{ color }}; width: 236px; font-size:25px!important; margin: 10px; display: block; text-align: center; } .solucion:hover { color: #fff; background-color: {{ background_color }}; border-color: {{ border_color }}; width: 236px; margin: 10px; display: block; text-align: center; } </style> </head> <body> <div class="card"> <div class="card-header white"> <strong> {{ titulo_informacao }} </strong> <p> {{ resumo }} </p> </div> <p style="text-align: center; line-height: 2.05;"> <span style="font-size: 20px;">{{ canais }}</span> </p> <p style="text-align: center; line-height: 2.05;"> <strong> <span style="font-size: 30px;">{{ play }}</span> </strong> </p> </div> </body> </html> Então seria isso ai, só mais uma obs: toda vez que ser inserido ou atualizado os dados no banco que as informações seja atualizada tbm... Desde de já fico no aguardo
  24. alexmill466

    Vitrine com produtos classificados

    estou criando um site onde tem 3 tipos de produtos novidades, sucessos e vips gostaria que aparece-se cada item de cada classe aparecer no seu devido setor sei que preciso colocar id de cadastro mas como faria a referencia? alguém pode me ajudar sou iniciante.
  25. Bom dia!! Sou novo com programação e tenho muito que aprender ainda, por isso peço por gentileza ajuda para a questão abaixo: Tenho um retorno de uma API do Banco Central em Json onde temos os dados abaixo como exemplo: 0: {cotacaoVenda: 5.3911, dataHoraCotacao: '2021-10-01 13:09:55.606'} 1: {cotacaoVenda: 5.4204, dataHoraCotacao: '2021-10-04 13:04:19.644'} 2: {cotacaoVenda: 5.4611, dataHoraCotacao: '2021-10-05 13:03:21.673'} 3: {cotacaoVenda: 5.5097, dataHoraCotacao: '2021-10-06 13:06:37.922'} 4: {cotacaoVenda: 5.514, dataHoraCotacao: '2021-10-07 13:08:32.904'} 5: {cotacaoVenda: 5.5084, dataHoraCotacao: '2021-10-08 13:09:33.086'} 6: {cotacaoVenda: 5.5161, dataHoraCotacao: '2021-10-11 13:11:50.974'} 7: {cotacaoVenda: 5.5471, dataHoraCotacao: '2021-10-13 13:07:53.148'} 8: {cotacaoVenda: 5.4988, dataHoraCotacao: '2021-10-14 13:08:19.087'} 9: {cotacaoVenda: 5.451, dataHoraCotacao: '2021-10-15 13:09:00.092'} 10: {cotacaoVenda: 5.5193, dataHoraCotacao: '2021-10-18 13:10:12.364'} Queria retornar dentro de uma variavél javascript a média da cotacaoVenda entre a dataHoraCotacao 2021-10-05 e 2021-10-15, sendo uma média simples (Juntar todos os valores cotacaoVenda dentro desse intervalo de data e dividir para formar a média). Desde já agradço!! Espero que tenha me expressado corretamente. Obrigado.
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.