2024-08-31 01:03:37 +08:00

121 lines
4.1 KiB
JavaScript
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function(){
var ua = navigator.userAgent;
$.browserIS = {
ie: !!(window.ActiveXObject || "ActiveXObject" in window), //ie;ie6~11
ie8: this.ie && parseInt($.browser.version) <= 8,//ie8
wap:ua.match(/(iPhone|iPod|Android|ios|MiuiBrowser)/i),
trident: ua.indexOf('Trident') > -1, //IE内核
presto: ua.indexOf('Presto') > -1, //opera内核
webKit: ua.indexOf('AppleWebKit') > -1, //苹果、谷歌内核
gecko: ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') == -1,//火狐内核
mobile: !!ua.match(/AppleWebKit.*Mobile.*/), //是否为移动终端
ios: !!ua.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端
android: ua.indexOf('Android') > -1 || ua.indexOf('Adr') > -1, //android终端
iPhone: ua.indexOf('iPhone') > -1, //是否为iPhone
iPad: ua.indexOf('iPad') > -1, //是否iPad
webApp: ua.indexOf('Safari') == -1, //是否web应该程序没有头部与底部
weixin: ua.indexOf('MicroMessenger') > -1, //是否微信
qq: ua.match(/\sQQ/i) == " qq" //是否QQ
};
$.isIE = $.browserIS.ie;
$.isIE8 = $.browserIS.ie8;
$.isWap = $.browserIS.wap;
$.isWindowSmall = function(){
return $(window).width() < 769;//769
};
var isTouch = (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch);
$.isWindowTouch = function(){
var res = isTouch || $.browserIS.iPad || $.browserIS.android || $.browserIS.mobile;
return !!res;
};
})();
// / Pinch Zoom
function enablePinchZoom(){
var startX = 0;
var startY = 0;
var pinchOffset = 0;
var pinchScale = 1;
var $content = $('#root');
var $viewer = $('#MainPanelContent');
var reset = function(){
startX = startY = pinchOffset = 0;
pinchScale = 1;
};
$content.bind('touchstart',function(e){
e = e.originalEvent;
if (e.touches.length > 1) {
startX = (e.touches[0].pageX + e.touches[1].pageX) / 2;
startY = (e.touches[0].pageY + e.touches[1].pageY) / 2;
pinchOffset = Math.hypot((e.touches[1].pageX - e.touches[0].pageX), (e.touches[1].pageY - e.touches[0].pageY));
} else {
pinchOffset = 0;
}
}).bind('touchmove',function(e){
e = e.originalEvent;
if(e.touches.length < 2) return;
if (pinchOffset <= 0 || e.touches.length < 2) return;
var pinchDistance = Math.hypot((e.touches[1].pageX - e.touches[0].pageX), (e.touches[1].pageY - e.touches[0].pageY));
var originX = startX + $viewer[0].scrollLeft;
var originY = startY + $viewer[0].scrollTop;
pinchScale = pinchDistance / pinchOffset;
$viewer.css({
transform:"scale("+pinchScale+")",
transformOrigin:originX+"px "+originY+"px"
});
}).bind('touchend',function(e){
if(pinchOffset <= 0) return;
$viewer.css({transform:"none",transformOrigin:"unset"});
var toScale = OfdCore.painter.zoom * pinchScale;
toScale = toScale < 0.3 ? 0.3:toScale;
toScale = toScale > 5 ? 5:toScale;
OfdCore.setZoom(toScale);
reset();
});
}
$(document).ready(function (){
touch.config.pinch = false;
enablePinchZoom();
$("#printButton").next().remove();
$('.anticon-folder-open').parent().addClass('toolbar-file-open');
$('.anticon-folder-open').parent().find('span').remove();
$("#more").remove();
var $goFirst = $("#PageNumberInput").prev().prev();
var $goEnd = $("#PageNumberInput").next().next().next();
var $turnLeft = $goEnd.next().next();
var $turnRight = $turnLeft.next();
var $turnFull = $turnRight.next();
$turnLeft.addClass('view-turn-left');
$turnRight.addClass('view-turn-right');
$turnFull.addClass('view-turn-full');
$goFirst.remove();
$goEnd.remove();
setTimeout(function(){
if(ofdReaderParams.canDownload == '1') return;
window.print = function(){};
OfdCore.print = function(){};
$('#printButton,.toolbar-file-open').remove();
},10);
// 自适应界面; bug: 缩放后文字选中异常;
window.addEventListener("OfdFileOpened",function(){
if($.isWindowTouch()){
$('#root').addClass('app-window-touch');
}
if($.isWindowSmall()){
$('#root').addClass('app-window-small');
}
// if($.isWindowTouch() && $.isWindowSmall() ){
// OfdCore.setZoom(-1); //自适应宽度; 浏览器会异常;
// }else{
// // OfdCore.setZoom(1.5);
// }
});
});