✅ Notizie, temi, plugin WEB e WordPress. Qui condividiamo suggerimenti e le migliori soluzioni per siti web.

Una punta rapida per nascondere le estensioni del browser

15

Nella mia esperienza, la maggior parte delle sovrapposizioni di estensione del browser utilizza uno sfondo con il tipo di dati: Image/SVG+XML. Inoltre, ciascuna di queste sovrapposizioni utilizza stili in linea (piuttosto che fogli di stile esterni) per eseguire il rendering dei pulsanti (o di qualsiasi controllo stiano optando per il rendering).

Ciò significa che possiamo usare alcune tecniche JavaScript per trovare elementi con che hanno questi attributi e quindi alternare la loro visibilità.

Ma prima, perché dovremmo nemmeno nasconderli?

Nascondere le sovrapposizioni di estensione del browser

In generale, ogni volta che questi overlay sono in mostra, è per salvarli in qualche servizio di bookmarking che si tratti di Pinterest, Buffer, Pocket o qualcos’altro.

Caso d’uso pertinenti

Inoltre, almeno nel caso di cui sto parlando, rendono ogni volta che il cursore passa sopra un’immagine. Ma cosa succede se non vogliamo che ciò accada.

Caso in questione:

  • Forse stiamo lavorando su un plug-in che attiverà la sua sovrapposizione e vogliamo nascondere altri pop-up.
  • O forse attiviamo un altro pop-up che contiene immagini e non vogliamo che le sovrapposizioni appaiano su quelle immagini.

In ogni caso, ecco un modo per nascondere le sovrapposizioni a seconda delle tue esigenze.

Il processo

Poiché WordPress include jQuery per impostazione predefinita, lo userò come libreria preferita. Ma questo potrebbe essere utilizzato altrettanto facilmente trovando tutti gli elementi in base a un nome di classe specificato e scorrendoli (se si sceglie di utilizzare JavaScript vanilla).

Per prima cosa, vogliamo iniziare con l’ elemento body e poi guardare, diciamo, tutti gli elementi span (poiché quelli tendono ad essere gli elementi più popolari – di nuovo, solo nella mia esperienza – e ci prepariamo a scorrerli ):

var hideExtensions = function() {
    $('body')
      .children('span')
      .each(function() {
      });
};

Successivamente, vogliamo verificare la presenza di data:image/svg+xml nell’attributo di stile inline. E, se viene trovato, cambia la visibilità dell’elemento :

if (-1 !== $(this).attr('style').indexOf('data:image/svg+xml;')) {
  if ('hidden' !== $(this).css('visibility')) {
    $(this).css('visibility', 'hidden');
  }
}

Se vuoi attivare o disattivare la visibilità dell’elemento, dovrai impostare una seconda clausola che rimuoverà il  valore nascosto quando necessario. Se vuoi farlo, puoi facilmente aggiungere questo :

if (-1 !== $(this).attr('style').indexOf('data:image/svg+xml;')) {
    if ('hidden' !== $(this).css('visibility')) {
        $(this).css('visibility', 'hidden');
    }
} else {
    $(this).css('visibility', 'visible');
}

La funzione finale potrebbe assomigliare a questa :

var hideExtensions = function() {

  $('body')
      .children('span')
      .each(function() {
          if (-1 !== $(this).attr('style').indexOf('data:image/svg+xml;')) {
              if ('hidden' !== $(this).css('visibility')) {
                  $(this).css('visibility', 'hidden');
              }
          } else {
              $(this).css('visibility', 'visible');
          }
      });
};

Quindi devi solo chiamare hideExtensions();quando necessario.

Una parola sulle prestazioni

Poiché stiamo eseguendo la scansione di un sottoinsieme di elementi nel DOM, questo può diventare un po’ un problema di prestazioni, soprattutto se sono presenti molti elementi di un unico tipo.

Fonte di registrazione: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More