var v2viewer = function(){ this.width = 0; this.height = 0; this.page = 0; this.info = null; this.element = ''; this.fileId = null; this.hash = ''; this.shadow = 0; this.zoom = 100; this.occupancy = 0.85; // 縦幅の画面占有率 }; v2viewer.prototype = { isEnable: function(){ return document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled; }, getHash: function(){ var l = 8; var c = "abcdefghijklmnopqrstuvwxyz0123456789"; var cl = c.length; var r = ""; for (var i=0; i'); } else { $(element).find('[id^="panel-"]').unwrap(); $(element).removeClass('fullscreen'); } }); if (!my.isEnable()) { $(element + ' .on-fullscreen').hide(); $(element + ' .off-fullscreen').hide(); } } else { var w = Math.min( $('#viewer-' + my.hash).width(), $(window).width() ); var h = $(window).height() * my.occupancy; $('#viewer-' + my.hash).css('width', w + 'px'); $('#viewer-' + my.hash).css('max-height', h + 'px'); } // $(element + ' .zoom-in-' + my.hash).off().on('click', function(){ // my.zoomArea(5); // }); // // $(element + ' .zoom-out-' + my.hash).off().on('click', function(){ // my.zoomArea(-5); // }); }, onError : function(res) { if (res.data) { if (res.data.error) { $(element).html('
' + res.data.error + '
'); } if (res.data.reload) { // 変換中なので間隔を空けて再挑戦 setTimeout( function(){ my.open(fileId, element, w, h, my.hash); }, 10000 ); } } } }); }, load: function(page, isSlider) { var my = this; if (page < 0) { page = 0; } if (page >= this.info.pages) { page = this.info.pages - 1; } this.page = page; var img = $('#img-' + this.hash).html(''); this.pager(this.page, isSlider);//$('#panel-' + this.hash + ' input[type=text]').val((this.page+1) + '/' + this.info.pages); $('#img-' + this.hash + ' img').one('load', function(){ var divWidth = Math.min( $('#viewer-container-' + my.hash).width(), $(window).width() ); var docWidth = my.info.size[0]; var rate = divWidth / docWidth; var docHeight = rate * my.info.size[1]; var maxHeight = $(window).height() * my.occupancy; if (docHeight > maxHeight) { docWidth = divWidth * maxHeight / docHeight; docHeight = maxHeight; } else { if (docWidth > divWidth) { docWidth = divWidth; } } $('#viewer-container-' + my.hash).css('width', docWidth + 'px'); //$('#viewer-container-' + my.hash).css('height', docHeight + 'px'); $(img).css('height', docHeight + 'px'); $(img).on('contextmenu dragstart', function(e){ return false; }); }).on('load'); // if (!this.shadow) { // $('#shadow-' + this.hash).html($('#img-' + this.hash).html()); // $('#shadow-' + this.hash + ' img').css('filter', 'brightness(0) invert(1)'); // this.shadow = 1; // } }, pager: function(page, isSlider) { $('#panel-' + this.hash + ' input[type=text]').val((page+1) + '/' + this.info.pages); $('#slider-' + this.hash + ' input[type=range]').val(page+1); if (!isSlider) { $('#slider-' + this.hash + ' .slider').slider('value', page); } }, zoomArea: function(diff) { this.zoom += diff; $('#viewer-' + this.hash).css('zoom', this.zoom + '%'); } };