Mostrare o meno banner pubblicitari a seconda la risoluzione

di il
5 risposte

Mostrare o meno banner pubblicitari a seconda la risoluzione

Buongiorno a tutti. Premetto che non ho mai studiare il linguaggio javascript e che voglio utilizzarlo solo esclusivamente per un'operazione credo semplice, e nulla più.
Sto realizzando un sito responsive e voglio che, a seconda la risoluzione del dispositivo sul quale viene visualizzata la pagina web, compaia un banner di una certa grandezza piuttosto che di un'altra, onde evitare scroll orizzontali.
Inizialmente avevo risolto semplicemente con CSS e media query, utilizzando "display:none". Efficace per quel che riguarda la visibilità dell'oggetto, ma non per il caricamento della pagina, in quanto il banner non è visualizzato dal browser ma è comunque caricato.
Mi sono imbattuto allora in questa guida di html.it (http://www.html.it/pag/33422/caricam...dei-contenuti) e ho realizzato questo codice che, come mi aspettavo data la mia inesperienza Java, non funziona. Sapreste dirmi cosa sbaglio?

Nella parte HTML ho implementato così gli script (in body per velocizzare il caricamento):

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="js/ads.js"></script>
e così i div contenitori (non li metto tutti, sono sparsi nella pagina):

<div id="video-banner">

</div>
<div id="button-banner1">


</div>
Nel file ads.js ho scritto questo codice:

var upAdsBase = function() {
 $("#video-banner").load("../ads/video-banner.html");
 $("#button-banner2").load("../ads/button-banner2.html");
 $("#button-banner3").load("../ads/button-banner3.html");
 $("#button-banner4").load("../ads/button-banner4.html");
};


var upAds319 = function() {
 $("#button-banner1").load("../ads/button-banner1.html");
 $("#button-banner2").load("../ads/button-banner2.html");
 $("#button-banner3").load("../ads/button-banner3.html");
 $("#button-banner4").load("../ads/button-banner4.html");
};


var upAds360 = function() {
 $("#video-banner").load("../ads/video-banner.html");
 $(".large-box-banner").load("../ads/large-box-banner.html");
};


if (document.documentElement.clientWidth <= 319) {
 upAds319();
}


if (document.documentElement.clientWidth >= 320 <= 359) {
 upAdsBase();
}


if (document.documentElement.clientWidth >= 360) {
 upAds360();
}

5 Risposte

  • Re: Mostrare o meno banner pubblicitari a seconda la risoluzione

    Ma i banner sono dei file html?
    Se si trattasse solo di immagini, ti converrebbe caricare direttamente le immagini, invece di fare una richiesta al file html che a sua volta fa una richiesta per l'immagine.

    Comunque, non mi pare che ci siano errori nel tuo codice. L'unica cosa è che se includi i js prima del body, devi includere quegli if in un $(document).ready(function() {}); oppure li includi in fondo alla pagina, che tra l'altro è anche più performante.

    ciao

    P.S.: inoltre, dovresti prevedere che la larghezza della finestra dell'utente possa variare anche dopo il caricamento della pagina (girando il tablet o stringendo la finestra su pc), per cui dovresti usare anche $(window).resize(function() { transizioni });
  • Re: Mostrare o meno banner pubblicitari a seconda la risoluzione

    Non sono immagini ma script, non so se per regolamento posso fare riferimento al circuito pubblicitario che li eroga e mostrare il codice.

    Per il resto grazie della risposta, purtroppo è fuori dalla mia portata non avendo mai studiato questo linguaggio non ho idea di come configurare questo codice. Avresti soluzioni alternative da propormi per un design responsive?
  • Re: Mostrare o meno banner pubblicitari a seconda la risoluzione

    marcomangano ha scritto:


    Non sono immagini ma script, non so se per regolamento posso fare riferimento al circuito pubblicitario che li eroga e mostrare il codice.

    Per il resto grazie della risposta, purtroppo è fuori dalla mia portata non avendo mai studiato questo linguaggio non ho idea di come configurare questo codice. Avresti soluzioni alternative da propormi per un design responsive?
    Prova a usare il codice che hai postato all'inizio, mettendo però lo script per il caricamento alla fine della pagina.
    Riguardo le transizioni, cerca su google "resize jquery"; i primi risultati ti spiegano come usare questa API, e all'interno della sua funzione di callback in pratica ricopi gli stessi if di prima, solo che in questo caso devi aver cura di nascondere i banner che non servono più applicando display:none.

    Se il sito è già online e mi dai il link, posso guardarlo per vedere se ci sono altri problemi, ed eventualmente darti indicazioni più precise.

    ciao.
  • Re: Mostrare o meno banner pubblicitari a seconda la risoluzione

    Puoi usare le media query, in base alla grandezza della pagina:
    @media (max-width: 600px) {
      .immagini {
        display: none;
    
      }
  • Re: Mostrare o meno banner pubblicitari a seconda la risoluzione

    c.leonelli ha scritto:


    Puoi usare le media query, in base alla grandezza della pagina:
    @media (max-width: 600px) {
      .immagini {
        display: none;
    
      }
    Credo che non voglia proprio caricare i banner, anche perché essendo pubblicità una volta caricati anche se invisibili probabilmente contano comunque il numero di visualizzazioni.
    Quindi l'unico sistema è risolvere con uno script di caricamento asincrono.
Devi accedere o registrarti per scrivere nel forum
5 risposte