提交 5067e28f authored 作者: 搞事情's avatar 搞事情

1、合并本地代码

......@@ -1300,22 +1300,22 @@
var isLeftPage = data.opts.page % 2 === 0;
if (isLeftPage) {
// 左页:只能向右滑动
// 左页
virtualCorner = (point.y < height / 2) ? 'tl' : 'bl';
} else {
// 右页:只能向左滑动
// 右页
virtualCorner = (point.y < height / 2) ? 'tr' : 'br';
}
} else {
// 单页模式:左半区只能左滑,右半区只能右滑
// 单页模式
var centerX = width / 2;
var centerY = height / 2;
if (point.x < centerX) {
// 左半区:只能向左翻页
// 左半区
virtualCorner = (point.y < centerY) ? 'tl' : 'bl';
} else {
// 右半区:只能向右翻页
// 右半区
virtualCorner = (point.y < centerY) ? 'tr' : 'br';
}
}
......@@ -1334,7 +1334,7 @@
// 添加区域信息,用于判断是否应该显示折叠页动画
dragArea: turnData && turnData.display === 'double' ?
(data.opts.page % 2 === 0 ? 'leftPage' : 'rightPage') :
(point.x < width / 2 ? 'leftHalf' : 'rightHalf')
(point.x < width / 2 ? 'left' : 'right')
};
}
......@@ -1353,6 +1353,7 @@
x: virtualPoint.x,
y: virtualPoint.y,
isVirtual: true,
dragArea: virtualPoint.dragArea,
originalPoint: virtualPoint.originalPoint,
realCorner: realCorner,
dragStartX: virtualPoint.dragStartX,
......@@ -1733,7 +1734,6 @@
_moveFoldingPage: function (bool) {
console.log('_moveFoldingPage', bool);
var data = this.data().f,
folding = flipMethods._foldingPage.call(this);
......@@ -1754,7 +1754,6 @@
_showFoldedPage: function (c, animate) {
console.log('_showFoldedPage', c);
var folding = flipMethods._foldingPage.call(this),
dd = this.data(),
data = dd.f;
......@@ -1935,41 +1934,49 @@
e = (isTouch) ? e.originalEvent.touches : [e];
if (data.corner) {
var pos = data.parent.offset();
var currentMouseX = e[0].pageX - pos.left;
var currentMouseY = e[0].pageY - pos.top;
let pos = data.parent.offset();
let currentMouseX = e[0].pageX - pos.left;
let currentMouseY = e[0].pageY - pos.top;
// 检查是否是虚拟corner(非corner区域拖拽)
if (data.corner.isVirtual) {
// 计算拖动距离
var dragDistance = Math.sqrt(
Math.pow(currentMouseX - data.corner.dragStartX, 2) +
Math.pow(currentMouseY - data.corner.dragStartY, 2)
);
// 计算拖动距离,提高效率,只使用
let dragDistance = Math.abs(currentMouseX - data.corner.dragStartX);
// 最小拖动距离阈值
var minDragDistance = data.opts.minDragDistance || 30;
let minDragDistance = data.opts.minDragDistance || 30;
if (dragDistance < minDragDistance) {
// 拖动距离太小,不执行翻页效果
return;
}
// todo解决单页翻页的问题
// else {
// // 单页特殊处理
// if (data.opts.display === 'single') {
// // 判断滑动方向,判断在左右半区,同向滑动直接翻页不播放翻页特效。
// if (currentMouseX - data.corner.dragStartX > 0) {
// // 向右滑动
// turnMethods.next();
// } else {
// // 向左滑动
// turnMethods.previous();
// }
// }
// return;
// }
else {
// 单页特殊处理
if (data.opts.display === 'single') {
// 判断滑动方向,判断在左右半区,同向滑动直接翻页不播放翻页特效。
let direction = currentMouseX - data.corner.dragStartX > 0 ? 'right' : 'left';
// 方向
if (direction === data.corner.dragArea) {
if (direction === 'right') {
// 向右翻页
// 设置翻页从左下角开始
data.corner.corner = 'bl';
this.turn('next');
} else {
// 向左翻页
// 设置翻页从右下角开始
data.corner.corner = 'br';
this.turn('previous');
}
// 清理操作
data.corner.isVirtual = false;
data.corner.dragStartX = 0;
data.corner.dragStartY = 0;
return;
}
}
}
// 根据拖动轨迹计算真实的折叠点
var foldPoint = flipMethods._calculateNonCornerFoldPoint.call(this,
......@@ -1987,6 +1994,8 @@
flipMethods._showFoldedPage.call(this, data.corner);
} else if (!this.data().effect && this.is(':visible')) { // roll over
// 注释掉悬停效果,避免模糊,代价是鼠标悬停没有卷边效果,代价值得。
/*
var corner = flipMethods._areaActivated.call(this, e[0]);
if (corner) {
var origin = flipMethods._c.call(this, corner.corner, data.opts.cornerSize / 2);
......@@ -1996,6 +2005,7 @@
}
else
flipMethods.hideFoldedPage.call(this, true);
*/
}
}
},
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论