it-swarm-eu.dev

Nejlepší způsob, jak zahrnout javascript / jQuery OnLoad na KAŽDOU stránku na mém webu

V současné době v mém souboru theme.info přidávám 2 skripty:

scripts[] = js/backstretch.js
scripts[] = js/scripts.js

Backstretch je plugin jQuery, který umožňuje rozbalení obrázku na pozadí pokrýt celou vaši stránku.

Momentálně používám tento kód k automatickému vložení JS:

(function ($) {

    var bgs=["bg1.jpg", "bg2.jpg"];
    var bgr=Math.floor(bgs.length * Math.random());
    $.backstretch(bgs[bgr], { speed: 1000 });

})(jQuery);

Dvě čísla:

  1. Někdy správně nenačte soubor backstretch.js, který může mít něco společného s mou aktuální funkcí OnLoad v souboru scripts.js. Načte obrázek, ale ne maximální šířku/výšku prohlížeče zpočátku.
  2. Z nějakého důvodu to nefunguje po 1 úrovni na webu (i když se zdá, že se načte JS, když zkontroluji web (mohlo by to být tak, že umístění obrázků není relativní k souboru JS?), Např .:

Práce: site.com, site.com/page

Nefunguje: site.com/dir/page, site.com/dir/dir/page

V souboru skriptů jsem přemýšlel, co by bylo nejlepší použít OnPageLoad (nebo Preload?) Funkci?

Předem děkuji.

3
Matt Rowles

Přečtěte si Správa JavaScriptu v Drupal , konkrétně v sekci Chování. Budete muset udělat něco takového:

(function ($) {

  Drupal.behaviors.exampleModule = {
    attach: function(context, settings) {
      var bgs=["bg1.jpg", "bg2.jpg"];
      var bgr=Math.floor(bgs.length * Math.random());
      $.backstretch(bgs[bgr], { speed: 1000 });
    }
  };

})(jQuery);
6
tim.plunkett