<marquee> scramble

    @@ -1,5 +1,5 @@ /* - * @title marquee scramble + * @title <marquee> scramble * @description * @include http://* * @license MIT License @@ -21,44 +21,40 @@ } } - function marq(tagName) { - var divs = document.getElementsByTagName(tagName); - for (var i = 0,length = divs.length; i < length; i++) { - var children = divs[i].querySelectorAll(tagName); - if (!divs[i].hasAttribute('data-marquished') && (children == null || children.length == 0)) { - var parent = divs[i].parentNode; + function marquee(tagName) { + var elements = document.getElementsByTagName(tagName); + for (var i = 0,length = elements.length; i < length; i++) { + var children = elements[i].querySelectorAll(tagName); + if (!elements[i].hasAttribute('data-marquished') && (children == null || children.length == 0)) { + var parent = elements[i].parentNode; var marquee = document.createElement('marquee'); var direction = randomDirection(); marquee.setAttribute('scrolldelay','1'); marquee.setAttribute('scrollamount', '15'); marquee.setAttribute('direction', direction); marquee.setAttribute('behavior', randomBehavior(direction)); - parent.insertBefore(marquee, divs[i]); - marquee.appendChild(divs[i]); - divs[i].setAttribute('data-marquished', 'true'); + parent.insertBefore(marquee, elements[i]); + marquee.appendChild(elements[i]); + elements[i].setAttribute('data-marquished', 'true'); } } } - function marquish() { - marq('div'); - marq('p'); - marq('ul'); - marq('table'); - marq('a'); - marq('iframe'); - marq('dt'); - marq('dd'); + function marqueeScramble() { + var tags = ['div', 'p', 'ul', 'table', 'a', 'iframe', 'dt', 'dd', 'img']; + for (var i = 0; i < tags.length; i++) { + marquee(tags[i]); + } } var timer = 0; document.addEventListener('DOMNodeInserted', function() { if(timer) return; timer = setTimeout(function() { - marquish(); + marqueeScramble(); timer = 0; - }, 30); + }, 500); }, false); - marquish(); + marqueeScramble(); }());
  • /*
     * @title <marquee> scramble
     * @description
     * @include http://*
     * @license MIT License
     * @require 
     */
    
    (function() {
      function randomDirection() {
        var directions = ['left', 'right', 'up', 'down'];
        return directions[Math.floor(Math.random() * 4)];
      }
    
      function randomBehavior(direction) {
        if (direction == 'up' || direction == 'down') {
          return 'scroll';
        } else {
          var behaviors = ['alternate', 'scroll'];
          return behaviors[Math.floor(Math.random() * 2)];
        }
      }
    
      function marquee(tagName) {
        var elements = document.getElementsByTagName(tagName);
        for (var i = 0,length = elements.length; i < length; i++) {
          var children = elements[i].querySelectorAll(tagName);
          if (!elements[i].hasAttribute('data-marquished') && (children == null || children.length == 0)) {
            var parent = elements[i].parentNode;
            var marquee = document.createElement('marquee');
            var direction = randomDirection();
            marquee.setAttribute('scrolldelay','1');
            marquee.setAttribute('scrollamount', '15');
            marquee.setAttribute('direction', direction);
            marquee.setAttribute('behavior', randomBehavior(direction));
            parent.insertBefore(marquee, elements[i]);
            marquee.appendChild(elements[i]);
            elements[i].setAttribute('data-marquished', 'true');
          }
        }
      }
    
      function marqueeScramble() {
        var tags = ['div', 'p', 'ul', 'table', 'a', 'iframe', 'dt', 'dd', 'img'];
        for (var i = 0; i < tags.length; i++) {
          marquee(tags[i]);
        }
      }
    
      var timer  = 0;
      document.addEventListener('DOMNodeInserted', function() {
        if(timer) return;
        timer = setTimeout(function() {
          marqueeScramble();
          timer = 0;
        }, 500);
      }, false);
    
      marqueeScramble();
    }());
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。

History

  1. 2015/09/11 14:24:08 - 2015-09-11
  2. 2014/05/17 11:56:56 - 2014-05-17
  3. 2014/05/17 00:39:08 - 2014-05-17
  4. 2014/05/17 00:30:08 - 2014-05-17
  5. 2014/05/16 20:02:31 - 2014-05-16
  6. 2014/05/16 19:42:27 - 2014-05-16
  7. 2014/05/16 19:41:33 - 2014-05-16
  8. 2014/05/16 19:06:36 - 2014-05-16
  9. 2014/05/16 19:06:14 - 2014-05-16
  10. 2014/05/16 18:53:26 - 2014-05-16