Salve, nel realizzare la versione per smartphone di una pagina web, ho necessità di visualizzare un div soltanto in seguito al click su un button dedicato (nella versione pc, tale div occupa una colonna laterale col float: right):
codice:
<button onClick="javascript:apriMenu();">TAG</button>
codice:
function apriMenu() {
var idTag = document.getElementById("destrotag");
var leggiDisplay = window.getComputedStyle(idTag).display;
if (leggiDisplay == "none") {
idTag.style.display = "block";
idTag.style.position = "absolute";
idTag.style.float = "none";
idTag.style.width = "100%";
idTag.style.padding = "0px";
idTag.style.top = document.getElementById("header").offsetHeight + "px";
window.location.href = "#top";
} else if (leggiDisplay == "block") {
idTag.style.display = "none";
}
}
Questo script funziona, tuttavia ho necessità che tale div si chiuda anche al click su qualunque link presente in esso, poiché sono riferimenti a schede della pagina stessa che tale div potrebbe coprire. A tale scopo ho scritto questa funzione:
codice:
function chiudi() {
if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
var idTag = document.getElementById("destrotag");
var setDisplay = window.getComputedStyle(idTag).display;
setDisplay = "none";
}
}
richiamata dal generico link nel div:
codice:
<a href="#bose" onClick="javascript:chiudi();">Mauro BOSELLI</a>
Tuttavia non funziona, anche togliendo l'if di verifica (che serve per non avviare chiudi() in visualizzazione da pc: display non va mai su "none" e quindi il div non viene nascosto se non tramite il button.