Snippet Javascript
Dato un intervallo di tempo, se un evento è compreso entro tale intervallo, fai cose. Questo snippet è disponibile anche in php
/* mi salvo la data odierna, di inizio, e di fine evento */
var adesso = new Date();
/* in questo caso l'inizio è 18 ottobre 2021 */
var inizio = new Date("2021-10-18T00:00:00.000Z");
/* in questo caso la fine è 30 giugno 2022 */
var fine = new Date("2022-06-30T00:00:00.000Z");
/* trasformo tutto in secondi */
var secondsInizioAdesso = adesso.getTime() / 1000;
var secondsInizio = inizio.getTime() / 1000;
var secondsFine = fine.getTime() / 1000;
/* se la data è compresa nell'intervallo */
if ( (secondsInizioAdesso >= secondsInizio) && ( secondsInizioAdesso < secondsFine)){
/* fai cose */
} else {
/* fai altre cose */
}
Apre il link inserito
window.location.href = '...link...';
var myModal = new bootstrap.Modal(document.getElementById("exampleModal"), {});
document.onreadystatechange = function () {
myModal.show();
};
addEventListener('resize', (event) => {
/* evento che accade al resize */
});
Inserendo questo codice nel javasctipt possiamo fare un'azione DOPO l'invio della mail da parte del form di Contact Form 7, questa azione verrà compiuta solo se l'invio è avvenuto con successo
document.addEventListener( 'wpcf7mailsent', function( event ) {
if(event.detail.contactFormId == 'ID NUMERICO DEL FORM, SI LEGGE DA WORDPRESS') {
/* azione personalizzata */
}
}, false );
Inserendo questo codice nel javasctipt possiamo fare un'azione DOPO l'invio della mail da parte del form di Contact Form 7, questa azione verrà compiuta solo se l'invio è avvenuto con successo
/* gestione click duplicati all'invio del form */
$('.wpcf7-form').on('submit', function() {
$(this).find('.wpcf7-submit').attr('disabled', true);
});
$('.wpcf7').on('wpcf7submit', function (e) {
$(this).find('.wpcf7-submit').removeAttr('disabled');
});
/* fine gestione click duplicati all'invio del form */
la precedente soluzione: if (screen.width < 1025) { } non copre correttamente safari perché restituisce la dimensione dello schermo e non della finestra del browser
if (window.innerWidth < 1025) {
}
Collegare questa funzione a un evento
function copyElementText(tag) {
var text = $(tag).text();
var elem = document.createElement("textarea");
document.body.appendChild(elem);
elem.value = text;
elem.select();
document.execCommand("copy");
document.body.removeChild(elem);
}');
// DOCUMENT READY Without jQuery
// Define a convenience method and use it
var ready = (callback) => {
if (document.readyState != "loading") callback();
else document.addEventListener("DOMContentLoaded", callback);
}
ready(() => {
/* Do things after DOM has fully loaded */
});
link utile qui.
Chiamare la funzione così: download_file(fileURL, fileName);
function download_file(fileURL, fileName) {
// for non-IE
if (!window.ActiveXObject) {
var save = document.createElement('a');
save.href = fileURL;
save.target = '_blank';
var filename = fileURL.substring(fileURL.lastIndexOf('/')+1);
save.download = fileName || filename;
if ( navigator.userAgent.toLowerCase().match(/(ipad|iphone|safari)/) && navigator.userAgent.search("Chrome") < 0) {
document.location = save.href;
// window event not working here
}else{
var evt = new MouseEvent('click', {
'view': window,
'bubbles': true,
'cancelable': false
});
save.dispatchEvent(evt);
(window.URL || window.webkitURL).revokeObjectURL(save.href);
}
}
download_file(fileURL, fileName); //call function
link utile qui.
let a = document.createElement("a");
document.body.appendChild(a);
a.style = "display: none";
a.href = "link file";
a.download = "nome file";
a.click();
document.body.removeChild(a);
function restartGif(imgElement){
let element = document.getElementById(imgElement);
if (element) {
var imgSrc = element.src;
console.log(imgSrc);
element.src = imgSrc;
}
}
Se 'text' è html, gli / devono essere escaped \/ altrimenti non funziona
function download(filename, text) {
var element = document.createElement('a');
element.setAttribute('href', 'data:text/plain;charset=utf-8,' + encodeURIComponent(text));
element.setAttribute('download', filename);
element.style.display = 'none';
document.body.appendChild(element);
element.click();
document.body.removeChild(element);
}
link utile qui
document.documentElement.style.setProperty('--nome-variabile', 'caratteristica, tipo white');
Collegare questa funzione a un evento
window.addEventListener( "pageshow", function ( event ) {
var historyTraversal = event.persisted || ( typeof window.performance != "undefined" && window.performance.navigation.type === 2 );
if ( historyTraversal ) {
// Handle page restore.
/* window.location.reload(); */
/* console.log('navigazione con le freccie') */
} else {
/* console.log('navigazione normal'); */
}
});
location.hash
Funzioni per leggere un cookie e condizione
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1);
if(c.indexOf(name) == 0)
return c.substring(name.length,c.length);
}
return "";
}
//se il cookie non esiste
if (!(getCookie('valoreCookie'))) {
//fai cose
}
link utili qui e qui.
Se la selezione viene fatta con jquery, l\'argomento della funzine deve essere passato così: $(".elemento")[0];
function getOffset(el) {
const rect = el.getBoundingClientRect();
/* sono disponibili altri parametri */
return {
left: rect.left + window.scrollX,
height: rect.height
};
}
phone: value => value.match(/^[\+]?[(]?[0-9]{3}[)]?[-\s\.]?[0-9]{3}[-\s\.]?[0-9]{4,6}$/im),
email: value => value.match(/^(([^<>()\[\]\.,;:\s@"]+(\.[^<>()\[\]\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/)
Adattato da qui
/* rendere scrollable la sezione con la timeline */
const elemento_scrollabileX = document.querySelector('.timeline');
let isDown = false;
let startX;
let scrollLeft;
elemento_scrollabileX.addEventListener('mousedown', (e) => {
isDown = true;
elemento_scrollabileX.classList.add('active');
startX = e.pageX - elemento_scrollabileX.offsetLeft;
scrollLeft = elemento_scrollabileX.scrollLeft;
});
elemento_scrollabileX.addEventListener('mouseleave', () => {
isDown = false;
elemento_scrollabileX.classList.remove('active');
});
elemento_scrollabileX.addEventListener('mouseup', () => {
isDown = false;
elemento_scrollabileX.classList.remove('active');
});
elemento_scrollabileX.addEventListener('mousemove', (e) => {
if(!isDown) return;
e.preventDefault();
const x = e.pageX - elemento_scrollabileX.offsetLeft;
const walk = (x - startX) * 1.5; //scroll speed
elemento_scrollabileX.scrollLeft = scrollLeft - walk;
/* console.log(walk); */
});
nell'esempio, il cookie scadrà dopo 15 secondi riga con -> (15*1000)
var date = new Date();
date.setTime(date.getTime()+(15*1000));
var expires = "; expires="+date.toGMTString();
document.cookie = "df="+expires+"; path=/";