提交 581c480d authored 作者: 搞事情's avatar 搞事情

1、修复移动端图片不能点击的问题。

上级 5067e28f
...@@ -270,11 +270,14 @@ ...@@ -270,11 +270,14 @@
corners = $.extend({}, corners, opts.corners); corners = $.extend({}, corners, opts.corners);
// Event listeners // Event listeners
$(this).bind(events.start, function (e) { $(this).bind(events.start, function (e) {
for (var page in data.pages) for (var page in data.pages) {
if (has(page, data.pages) && flipMethods._eventStart.call(data.pages[page], e) === false) if (has(page, data.pages) && flipMethods._eventStart.call(data.pages[page], e) === false) {
if (isTouch)
return true;
return false; return false;
}
}
}); });
$(document).bind(events.move, function (e) { $(document).bind(events.move, function (e) {
...@@ -290,12 +293,10 @@ ...@@ -290,12 +293,10 @@
}); });
data.done = true; data.done = true;
return this; return this;
}, },
// Adds a page from external data // Adds a page from external data
addPage: function (element, page) { addPage: function (element, page) {
var incPages = false, var incPages = false,
...@@ -409,7 +410,6 @@ ...@@ -409,7 +410,6 @@
}, },
// Prepares the flip effect for a page // Prepares the flip effect for a page
_makeFlip: function (page) { _makeFlip: function (page) {
var data = this.data(); var data = this.data();
...@@ -1294,7 +1294,6 @@ ...@@ -1294,7 +1294,6 @@
virtualCorner = null; virtualCorner = null;
// 双页模式逻辑 // 双页模式逻辑
debugger;
if (turnData && turnData.display === 'double') { if (turnData && turnData.display === 'double') {
// 获取当前页面在双页视图中的位置 // 获取当前页面在双页视图中的位置
var isLeftPage = data.opts.page % 2 === 0; var isLeftPage = data.opts.page % 2 === 0;
...@@ -1367,7 +1366,6 @@ ...@@ -1367,7 +1366,6 @@
} }
e = (isTouch) ? e.originalEvent.touches : [e]; e = (isTouch) ? e.originalEvent.touches : [e];
var data = this.data().f, var data = this.data().f,
pos = data.parent.offset(), pos = data.parent.offset(),
width = this.width(), width = this.width(),
...@@ -1912,19 +1910,31 @@ ...@@ -1912,19 +1910,31 @@
}, },
_eventStart: function (e) { _eventStart: function (e) {
var data = this.data().f; var data = this.data().f;
if (!data.disabled && !this.flip('isTurning')) { if (!data.disabled && !this.flip('isTurning')) {
data.corner = flipMethods._areaActivated.call(this, e); data.corner = flipMethods._areaActivated.call(this, e);
if (data.corner && flipMethods._foldingPage.call(this, data.corner)) { if (data.corner && flipMethods._foldingPage.call(this, data.corner)) {
// 设置预备状态,但不立即触发 pressed 事件
data.prepareState = {
corner: data.corner,
startTime: new Date().getTime(),
pressed: false
};
flipMethods._moveFoldingPage.call(this, true); flipMethods._moveFoldingPage.call(this, true);
this.trigger('pressed', [data.point]);
// 只有在传统corner区域才立即触发 pressed 事件
// 对于虚拟corner(非corner区域),等待拖动确认
if (!data.corner.isVirtual) {
this.trigger('pressed', [data.point]);
data.prepareState.pressed = true;
}
return false; return false;
} else } else
data.corner = null; data.corner = null;
} }
}, },
_eventMove: function (e) { _eventMove: function (e) {
...@@ -1950,6 +1960,12 @@ ...@@ -1950,6 +1960,12 @@
return; return;
} }
else { else {
// 如果还没有触发 pressed 事件,现在触发
if (data.prepareState && !data.prepareState.pressed) {
this.trigger('pressed', [data.point]);
data.prepareState.pressed = true;
}
// 单页特殊处理 // 单页特殊处理
if (data.opts.display === 'single') { if (data.opts.display === 'single') {
// 判断滑动方向,判断在左右半区,同向滑动直接翻页不播放翻页特效。 // 判断滑动方向,判断在左右半区,同向滑动直接翻页不播放翻页特效。
...@@ -2153,15 +2169,45 @@ ...@@ -2153,15 +2169,45 @@
var data = this.data().f; var data = this.data().f;
if (!data.disabled && data.point) { if (!data.disabled) {
var event = $.Event('released'); // 如果存在 data.point,执行原有的清理逻辑
this.trigger(event, [data.point]); if (data.point) {
if (!event.isDefaultPrevented()) var event = $.Event('released');
flipMethods.hideFoldedPage.call(this, true); this.trigger(event, [data.point]);
if (!event.isDefaultPrevented())
flipMethods.hideFoldedPage.call(this, true);
}
// 无论是否存在 data.point,都要清理 corner 状态
if (data.corner) {
// 重新启用其他页面(撤销 _pressed 中的禁用操作)
flipMethods._reEnableOtherPages.call(this);
}
} }
// 清理状态
data.corner = null; data.corner = null;
if (data.prepareState) {
delete data.prepareState;
}
},
// 重新启用其他页面(撤销 _pressed 中的禁用操作)
_reEnableOtherPages: function () {
var data = this.data().f;
if (data.opts.turn) {
var turn = data.opts.turn,
turnData = turn.data(),
pages = turnData.pages;
for (var page in pages) {
if (page != data.opts.page && pages[page]) {
pages[page].flip('disable', turnData.disabled || false);
}
}
}
} }
}, },
......
...@@ -400,10 +400,10 @@ const initBook = async () => { ...@@ -400,10 +400,10 @@ const initBook = async () => {
// 最大折叠距离比例 (0.1 - 1.0) // 最大折叠距离比例 (0.1 - 1.0)
maxFoldingDistance: 2, maxFoldingDistance: 2,
// 最小拖拽距离触发翻页 // 最小拖拽距离触发翻页
minDragDistance: 30, minDragDistance: 20,
gradients: true, gradients: true,
elevation: 80, elevation: 80,
duration: isMobile.value ? 200 : 600, duration: isMobile.value ? 200 : 400,
autoCenter: true, autoCenter: true,
turnCorners: "bl,br", turnCorners: "bl,br",
page: 1, page: 1,
...@@ -947,7 +947,7 @@ const showGuide = () => { ...@@ -947,7 +947,7 @@ const showGuide = () => {
.small-image-container { .small-image-container {
position: absolute; position: absolute;
cursor: pointer; cursor: pointer;
pointer-events: auto; pointer-events: auto !important;
transition: all 0.3s ease; transition: all 0.3s ease;
border: 2px solid transparent; border: 2px solid transparent;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论