imageviewer_terrydr
Version:
A simple jQuery image viewing plugin.
79 lines (63 loc) • 2.38 kB
JavaScript
build: function () {
var options = this.options;
var $this = this.$element;
var $parent;
var $viewer;
var $title;
var $toolbar;
var $navbar;
var $button;
if (this.isBuilt) {
return;
}
this.$parent = $parent = $this.parent();
this.$viewer = $viewer = $(Viewer.TEMPLATE);
this.$canvas = $viewer.find('.viewer-canvas');
this.$footer = $viewer.find('.viewer-footer');
this.$title = $title = $viewer.find('.viewer-title');
this.$toolbar = $toolbar = $viewer.find('.viewer-toolbar');
this.$navbar = $navbar = $viewer.find('.viewer-navbar');
this.$button = $button = $viewer.find('.viewer-button');
this.$tooltip = $viewer.find('.viewer-tooltip');
this.$player = $viewer.find('.viewer-player');
this.$list = $viewer.find('.viewer-list');
$title.addClass(!options.title ? CLASS_HIDE : getResponsiveClass(options.title));
$toolbar.addClass(!options.toolbar ? CLASS_HIDE : getResponsiveClass(options.toolbar));
$toolbar.find('li[class*=zoom]').toggleClass(CLASS_INVISIBLE, !options.zoomable);
$toolbar.find('li[class*=flip]').toggleClass(CLASS_INVISIBLE, !options.scalable);
if (!options.rotatable) {
$toolbar.find('li[class*=rotate]').addClass(CLASS_INVISIBLE).appendTo($toolbar);
}
$navbar.addClass(!options.navbar ? CLASS_HIDE : getResponsiveClass(options.navbar));
$button.toggleClass(CLASS_HIDE, !options.button);
if (options.inline) {
$button.addClass(CLASS_FULLSCREEN);
$viewer.css('z-index', options.zIndexInline);
if ($parent.css('position') === 'static') {
$parent.css('position', 'relative');
}
} else {
$button.addClass(CLASS_CLOSE);
$viewer.
css('z-index', options.zIndex).
addClass([CLASS_FIXED, CLASS_FADE, CLASS_HIDE].join(' '));
}
$this.after($viewer);
if (options.inline) {
this.render();
this.bind();
this.isShown = true;
}
this.isBuilt = true;
if ($.isFunction(options.built)) {
$this.one(EVENT_BUILT, options.built);
}
this.trigger(EVENT_BUILT);
},
unbuild: function () {
if (!this.isBuilt) {
return;
}
this.isBuilt = false;
this.$viewer.remove();
},