Pengguna:Kurniasan/effects.js

Daripada Wikipedia, ensiklopedia bebas.

Catatan: Selepas menyiarkan perubahan, anda mungkin perlu memintas cache pelayar untuk melihatnya.

  • Firefox / Safari: Tahan Shift sambil mengklik Reload, atau tekan sama ada Ctrl-F5 atau Ctrl-R (⌘-R pada Mac)
  • Google Chrome: Tekan Ctrl-Shift-R (⌘-Shift-R pada Mac)
  • Internet Explorer / Edge: Tahan Ctrl sambil mengklik Refresh, atau tekan Ctrl-F5
  • Opera: Tekan Ctrl-F5.
//Based on http://stackoverflow.com/questions/610406/javascript-equivalent-to-printf-string-format
String.prototype.format = function() {
    var args = arguments;
    return this.replace(/{(\d+)}/g, function(match, number) { 
        return typeof args[number] != 'undefined'
                ? args[number]
                : match;
    });
};

if ($(".hasEffect").length > 0) {
    for (i=0; i<$(".hasEffect").length; i++) {
        var obj = $(".hasEffect")[i];
        var delay;
        var classList = obj.classList;
        var effect = "$(\".hasEffect.";
        
        for (x=0; x<classList.length; x++)
            effect += "." + classList[x];
        effect += "\")";

        for (j=1; j<classList.length; j++) {
            if (parseInt(classList[j]))
                continue;

            if (parseInt(classList[j+1])) {
                delay = parseInt(classList[j+1]);
            } else if (classList[j+1] == 'slow' || classList[j+1] == 'fast') {
                delay = "'{0}'".format(classList[j+1]);
            } else {
                delay = "'slow'";
            }

            effect += ".{0}({1})".format(classList[j], delay);
        }
  
        try {
            //TODO: Enable effects to be continuous
            eval(effect);
        } catch (exp) {
            //TODO: Handle exceptions
        }
    }
}