Takazudo hamalog

programming notes. mainly about JavaScript / jQuery. [@Takazudo] [takazudo@gmail.com] Hint: alt + /

cool guy

jQuery.presetPreloader

2011/08/16 permalink

img preloader. Using deferred, presetPreloader creates only one img element to preload given src even if multiple preloading was requested.

$.presetPreloader.register({

    /* static paths */
    'button1': [ 'button1_hover.png', 'button1_active.png' ],
    'button2': [ 'button2_hover.png', 'button2_active.png' ],

    /* String.prototype.replace method's arguments.
       use img's src attr as original src. */
    'hoverimg': [ 
        [/^(.+_)normal(\.[^.]+)$/, '$1hover$2'],
        [/^(.+_)normal(\.[^.]+)$/, '$1active$2']
    ]

});
<a href="#" class="ir button1 js-preload" data-presetpreload-key="button1">Button</a>
<a href="#" class="ir button2 js-preload" data-presetpreload-key="button2">Button</a>
<a href="#" class="ir button1 js-preload" data-presetpreload-key="button1">Button</a>
<a href="#" class="ir button2 js-preload" data-presetpreload-key="button2">Button</a>
<!-- and, code :hover, :active image replacement css for these anchors... -->
$('.js-preload').presetPreload(); // fire preload
$.presetPreloader.load('hoverimg', 'hogehoge_normal.png'); // can fire preload to call load method directly

blog comments powered by Disqus

  1. hamalogの投稿です