Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pic-reader
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
龙菲
pic-reader
Commits
581c480d
提交
581c480d
authored
6月 26, 2025
作者:
搞事情
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
1、修复移动端图片不能点击的问题。
上级
5067e28f
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
60 行增加
和
14 行删除
+60
-14
turn.js
src/assets/js/turn.js
+57
-11
index.vue
src/components/BookReader/index.vue
+3
-3
没有找到文件。
src/assets/js/turn.js
浏览文件 @
581c480d
...
...
@@ -270,11 +270,14 @@
corners
=
$
.
extend
({},
corners
,
opts
.
corners
);
// Event listeners
$
(
this
).
bind
(
events
.
start
,
function
(
e
)
{
for
(
var
page
in
data
.
pages
)
if
(
has
(
page
,
data
.
pages
)
&&
flipMethods
.
_eventStart
.
call
(
data
.
pages
[
page
],
e
)
===
false
)
for
(
var
page
in
data
.
pages
)
{
if
(
has
(
page
,
data
.
pages
)
&&
flipMethods
.
_eventStart
.
call
(
data
.
pages
[
page
],
e
)
===
false
)
{
if
(
isTouch
)
return
true
;
return
false
;
}
}
});
$
(
document
).
bind
(
events
.
move
,
function
(
e
)
{
...
...
@@ -290,12 +293,10 @@
});
data
.
done
=
true
;
return
this
;
},
// Adds a page from external data
addPage
:
function
(
element
,
page
)
{
var
incPages
=
false
,
...
...
@@ -409,7 +410,6 @@
},
// Prepares the flip effect for a page
_makeFlip
:
function
(
page
)
{
var
data
=
this
.
data
();
...
...
@@ -1294,7 +1294,6 @@
virtualCorner
=
null
;
// 双页模式逻辑
debugger
;
if
(
turnData
&&
turnData
.
display
===
'double'
)
{
// 获取当前页面在双页视图中的位置
var
isLeftPage
=
data
.
opts
.
page
%
2
===
0
;
...
...
@@ -1367,7 +1366,6 @@
}
e
=
(
isTouch
)
?
e
.
originalEvent
.
touches
:
[
e
];
var
data
=
this
.
data
().
f
,
pos
=
data
.
parent
.
offset
(),
width
=
this
.
width
(),
...
...
@@ -1912,19 +1910,31 @@
},
_eventStart
:
function
(
e
)
{
var
data
=
this
.
data
().
f
;
if
(
!
data
.
disabled
&&
!
this
.
flip
(
'isTurning'
))
{
data
.
corner
=
flipMethods
.
_areaActivated
.
call
(
this
,
e
);
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
);
// 只有在传统corner区域才立即触发 pressed 事件
// 对于虚拟corner(非corner区域),等待拖动确认
if
(
!
data
.
corner
.
isVirtual
)
{
this
.
trigger
(
'pressed'
,
[
data
.
point
]);
data
.
prepareState
.
pressed
=
true
;
}
return
false
;
}
else
data
.
corner
=
null
;
}
},
_eventMove
:
function
(
e
)
{
...
...
@@ -1950,6 +1960,12 @@
return
;
}
else
{
// 如果还没有触发 pressed 事件,现在触发
if
(
data
.
prepareState
&&
!
data
.
prepareState
.
pressed
)
{
this
.
trigger
(
'pressed'
,
[
data
.
point
]);
data
.
prepareState
.
pressed
=
true
;
}
// 单页特殊处理
if
(
data
.
opts
.
display
===
'single'
)
{
// 判断滑动方向,判断在左右半区,同向滑动直接翻页不播放翻页特效。
...
...
@@ -2153,15 +2169,45 @@
var
data
=
this
.
data
().
f
;
if
(
!
data
.
disabled
&&
data
.
point
)
{
if
(
!
data
.
disabled
)
{
// 如果存在 data.point,执行原有的清理逻辑
if
(
data
.
point
)
{
var
event
=
$
.
Event
(
'released'
);
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
;
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
);
}
}
}
}
},
...
...
src/components/BookReader/index.vue
浏览文件 @
581c480d
...
...
@@ -400,10 +400,10 @@ const initBook = async () => {
// 最大折叠距离比例 (0.1 - 1.0)
maxFoldingDistance
:
2
,
// 最小拖拽距离触发翻页
minDragDistance
:
3
0
,
minDragDistance
:
2
0
,
gradients
:
true
,
elevation
:
80
,
duration
:
isMobile
.
value
?
200
:
6
00
,
duration
:
isMobile
.
value
?
200
:
4
00
,
autoCenter
:
true
,
turnCorners
:
"bl,br"
,
page
:
1
,
...
...
@@ -947,7 +947,7 @@ const showGuide = () => {
.small-image-container
{
position
:
absolute
;
cursor
:
pointer
;
pointer-events
:
auto
;
pointer-events
:
auto
!
important
;
transition
:
all
0
.3s
ease
;
border
:
2px
solid
transparent
;
}
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论