/** * Copyright 2013 I Doc View * @author Godwin */ var ratio = 0.75; var pages; var slideUrls = new Array(); var slideThumbUrls = new Array(); var curSlide = 1; var totalSize = 1; // PPT当前获取到的总页数 var slideCount = 1; // PPT文件总页数 var size = (!!$.url().param('size') ? $.url().param('size') : 0); $(document).ready(function() { // async method: $.get('onlinePreview?' , params, function(data, status) { var data = JSON.parse(data); var code = data.code; if (1 == code) { uuid = data.uuid; pages = data.data; totalSize = pages.length; slideCount = data.totalSize; // title $('.container-fluid:first .btn:first').after('' + data.name + ''); document.title = data.name; // set ratio ratio = pages[0].ratio; // reset all content resetContent(); afterLoad(); } else { $('.container-fluid .row-fluid').html('
' + data.desc + '
'); } clearProgress(); }); // 是否显示全屏按钮 $('.fullscreen-link').toggle(screenfull.enabled); // 全屏事件 $('.fullscreen-link').click(function(){ if (screenfull.enabled) { screenfull.toggle($('.slide-img-container')[0]); } }); $(document).bind("fullscreenchange", function() { if (screenfull.isFullscreen) { $('.slide-img-container').css('background-color', 'black'); $('.slide-img-container').contextMenu(true); } else { $('.slide-img-container').css('background-color', ''); $('.slide-img-container').contextMenu(false); } }); $('.select-page-selector').change(function() { var selectNum = $(".select-page-selector option:selected").text(); gotoSlide(selectNum); }); $('.slide-img-container .ppt-turn-left-mask').click(function () { preSlide(); }); $('.slide-img-container .ppt-turn-right-mask').click(function () { nextSlide(); }); // Right click (NOT supported in SOUGOU browser) /* $.contextMenu({ selector: '.slide-img-container', items: { "next": { name: "下一张", callback: function(key, options) { nextSlide(); } }, "previous": { name: "上一张", callback: function(key, options) { preSlide(); } }, "sep1": "---------", "exit": { name: "结束放映", callback: function(key, options) { $('.slide-img-container').fullScreen(false); } }, } }); */ $('.slide-img-container').contextMenu(false); // Swipe method is NOT supported in IE6, so it should be the last one. try { $('.slide-img-container').swipeleft(function() { nextSlide(); }); $('.slide-img-container').swiperight(function() { preSlide(); }); } catch (err) { } }); var remainContentInterval; function checkRemainContent () { clearInterval(remainContentInterval); if (slideCount == totalSize) { return; } } function resetContent() { remainContentInterval = setInterval(checkRemainContent, 8000); // clear all content $('.row-fluid .span2').empty(); $('.select-page-selector').empty(); $('.select-page-selector-sync').empty(); $('.slide-img-container img').remove(); // 限制预览页数开始 var viewCheck = authMap.view; if (!!viewCheck && (viewCheck > 1) && (pages.length > viewCheck)) { $('.navbar').after('
试读结束,支付后阅读全文!
'); totalSize = viewCheck; clearInterval(remainContentInterval); } // 限制预览页数结束 // pages for (i = 0; i < totalSize; i++) { var page = pages[i]; slideUrls[i] = page.url; slideThumbUrls[i] = page.thumbUrl; $('.row-fluid .span2').append('
' + (i + 1) + '/' + slideCount + '
'); $('.select-page-selector').append(''); $('.select-page-selector-sync').append(''); } // 未转换完成提示信息 if (totalSize < slideCount) { $('.row-fluid .span2').prepend('
转换中(' + Math.floor((totalSize / slideCount) * 100) + '%),请稍候……
'); } $('.slide-img-container').append(''); var thumbnailWidth = $('.thumbnail:first').width(); var thumbnailHeight = thumbnailWidth * ratio; $('.thumbnail').height(thumbnailHeight); var slideImgContainerWidth = $('.slide-img-container:first').width(); var slideImgContainerHeight = slideImgContainerWidth * ratio; $('.slide-img-container').height(slideImgContainerHeight); resetImgSize(); var percent = Math.ceil((curSlide / slideUrls.length) * 100); $('.thumbnail[page="' + curSlide + '"]').addClass('ppt-thumb-border'); // $('.thumbnail[page="' + curSlide + '"]').animate({scrollTop:($(window).height()/2)}, 'slow'); $('.select-page-selector').val(curSlide); $('.bottom-paging-progress .bar').width('' + percent + '%'); $('.thumbnail').click(function () { var page_num = $(this).attr('page'); gotoSlide(page_num); }); } $(window).resize(function() { resetImgSize(); }); function resetImgSize() { var leftW = $('.row-fluid .span2').width() + 40; var windowW = $(window).width(); if (windowW < 768) { leftW = -40; $('.hidden-phone').css('display', 'none'); $('.span9').removeClass('offset2'); } else { $('.hidden-phone').css('display', 'block'); $('.span9').addClass('offset2'); } var ww = $(window).width() - 120 - leftW; var wh = $(window).height() - 90; if (screenfull.isFullscreen) { ww = ww + 90 + leftW; wh = wh + 80; } if (wh / ww < ratio) { $('.slide-img-container').height(wh); $('.slide-img-container').width(wh / ratio); } else { $('.slide-img-container').width(ww); $('.slide-img-container').height(ww * ratio); } } $(document).keydown(function(event){ if (event.keyCode == 37 || event.keyCode == 38 || event.keyCode == 33) { // 37 left, 38 up, 33 pageUp preSlide(); } else if (event.keyCode == 39 || event.keyCode == 40 || event.keyCode == 32 || event.keyCode == 34){ // 39 right, 40 down, 32 space, 34 pageDown nextSlide(); } else if (event.keyCode == 13) { screenfull.toggle($('.slide-img-container')[0]); } }); function getCurSlide() { return curSlide; } function preSlide() { var preSlide = eval(Number(getCurSlide()) - 1); gotoSlide(preSlide); } function nextSlide() { var nextSlide = eval(Number(getCurSlide()) + 1); gotoSlide(nextSlide); } function gotoSlide(slide) { var slideSum = slideUrls.length; if (slide <= 0) { slide = 1; } else if (slideSum < slide) { slide = slideSum; } curSlide = slide; /* $(".slide-img-container img").fadeOut(function() { $(this).attr("src", slideUrls[slide - 1]).fadeIn(); }); */ $(".slide-img-container img").attr("src", slideUrls[slide - 1]); var percent = Math.ceil((curSlide / slideUrls.length) * 100); $('.thumbnail').removeClass('ppt-thumb-border'); $('.thumbnail[page="' + slide + '"]').addClass('ppt-thumb-border'); var thumbTop = slide * ($('.thumbnail[page="' + 1 + '"]').height() + 10 + $('.thumb-page-number-container').height()) - ($(document).height() / 2); $('.span2 ').animate({scrollTop:(thumbTop)}, 'slow'); $('.select-page-selector').val(slide); $('.select-page-selector-sync').val(slide); $('.bottom-paging-progress .bar').width('' + percent + '%'); }