Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
pic-reader
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
龙菲
pic-reader
Commits
54deddf5
提交
54deddf5
authored
8月 17, 2025
作者:
gzcnkilys_admin
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 解决应为图片minHeight和minWidth导致放到缩小翻页不正常的问题。
上级
a26457df
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
16 行增加
和
37 行删除
+16
-37
pdf_viewer.js
public/pdfjs-dist/web/pdf_viewer.js
+0
-3
index.vue
src/components/BookReader/index.vue
+16
-34
没有找到文件。
public/pdfjs-dist/web/pdf_viewer.js
浏览文件 @
54deddf5
...
@@ -314,8 +314,6 @@
...
@@ -314,8 +314,6 @@
if
(
_pdfjsLib
.
AnnotationLayer
)
{
if
(
_pdfjsLib
.
AnnotationLayer
)
{
// this.div.innerHTML = "";
// this.div.innerHTML = "";
// debugger
var
parameters
=
{
var
parameters
=
{
viewport
:
viewport
.
clone
({
dontFlip
:
true
}),
viewport
:
viewport
.
clone
({
dontFlip
:
true
}),
div
:
this
.
div
,
div
:
this
.
div
,
...
@@ -339,7 +337,6 @@
...
@@ -339,7 +337,6 @@
var
annotations
=
this
.
pdfPage
.
getAnnotation
();
var
annotations
=
this
.
pdfPage
.
getAnnotation
();
// debugger
if
(
_this
.
_cancelled
)
{
if
(
_this
.
_cancelled
)
{
return
;
return
;
}
}
...
...
src/components/BookReader/index.vue
浏览文件 @
54deddf5
...
@@ -233,19 +233,17 @@ const updatePageDimensions = (dimensions, $magazine) => {
...
@@ -233,19 +233,17 @@ const updatePageDimensions = (dimensions, $magazine) => {
$magazine
.
turn
(
"size"
,
dimensions
.
scaledWidth
*
2
,
dimensions
.
scaledHeight
);
$magazine
.
turn
(
"size"
,
dimensions
.
scaledWidth
*
2
,
dimensions
.
scaledHeight
);
}
}
$magazine
.
turn
(
'resize'
);
// 逐页强制刷新 flip wrapper
$magazine
.
turn
(
'update'
);
const
data
=
$magazine
.
data
();
for
(
let
page
in
data
.
pages
)
{
if
(
data
.
pages
.
hasOwnProperty
(
page
))
{
data
.
pages
[
page
].
flip
(
'resize'
,
true
);
}
}
// 更新页面尺寸
// 更新 z-index 和交互区域
// $magazine.children().each(function () {
$magazine
.
turn
(
'update'
);
// const $page = $(this);
// $page.css({
// width: dimensions.scaledWidth,
// height: dimensions.scaledHeight,
// });
// });
};
};
// 更新视口样式
// 更新视口样式
...
@@ -773,21 +771,10 @@ const initBook = async () => {
...
@@ -773,21 +771,10 @@ const initBook = async () => {
const
$magazine
=
$
(
magazine
.
value
);
const
$magazine
=
$
(
magazine
.
value
);
const
$viewport
=
$
(
".magazine-viewport"
);
const
$viewport
=
$
(
".magazine-viewport"
);
$viewport
.
css
({
$magazine
.
children
().
each
(
function
(
index
)
{
overflow
:
"hidden"
,
position
:
"relative"
,
width
:
"100%"
,
height
:
"100%"
,
});
$magazine
.
children
().
each
(
function
()
{
const
$page
=
$
(
this
);
const
$page
=
$
(
this
);
$page
.
css
({
const
pageIndex
=
index
;
position
:
"absolute"
,
const
pageData
=
processedPages
.
value
[
pageIndex
];
overflow
:
"hidden"
,
width
:
pageWidth
,
height
:
pageHeight
,
});
const
$img
=
$page
.
find
(
"img"
);
const
$img
=
$page
.
find
(
"img"
);
if
(
$img
.
length
)
{
if
(
$img
.
length
)
{
...
@@ -798,19 +785,18 @@ const initBook = async () => {
...
@@ -798,19 +785,18 @@ const initBook = async () => {
});
});
}
}
// PDF页面由PdfViewer动态渲染,不需要处理静态canvas
// 确保PDF页面容器有正确的尺寸
// 确保PDF页面容器有正确的尺寸
if
(
$page
.
find
(
"img"
).
length
===
0
)
{
if
(
$page
.
find
(
"img"
).
length
===
0
&&
!
props
.
isPdf
)
{
// 这是PDF页面,设置容器尺寸
// 这是
非
PDF页面,设置容器尺寸
$page
.
css
({
$page
.
css
({
width
:
pageWidth
,
width
:
pageWidth
,
height
:
pageHeight
,
height
:
pageHeight
,
// 移除 minWidth 和 minHeight,避免影响边缘检测
minWidth
:
pageWidth
,
minWidth
:
pageWidth
,
minHeight
:
pageHeight
,
minHeight
:
pageHeight
,
});
});
}
}
});
// 移动端使用单页显示
// 移动端使用单页显示
console
.
log
(
`turn.js初始化参数: 宽度=
${
isMobile
.
value
?
pageWidth
:
pageWidth
*
2
}
, 高度=
${
pageHeight
}
`
);
console
.
log
(
`turn.js初始化参数: 宽度=
${
isMobile
.
value
?
pageWidth
:
pageWidth
*
2
}
, 高度=
${
pageHeight
}
`
);
$magazine
.
turn
({
$magazine
.
turn
({
...
@@ -1080,7 +1066,6 @@ const renderPdfPage = async (pageIndex, forceCheck = true) => {
...
@@ -1080,7 +1066,6 @@ const renderPdfPage = async (pageIndex, forceCheck = true) => {
// 创建页面div元素
// 创建页面div元素
// todo 这里可能能够优化一下
// todo 这里可能能够优化一下
debugger
const
pageDiv
=
document
.
createElement
(
'div'
);
const
pageDiv
=
document
.
createElement
(
'div'
);
pageDiv
.
className
=
'pdfViewer'
;
pageDiv
.
className
=
'pdfViewer'
;
pageDiv
.
setAttribute
(
'data-page-number'
,
pageNum
);
pageDiv
.
setAttribute
(
'data-page-number'
,
pageNum
);
...
@@ -1185,7 +1170,6 @@ const checkAndUpdatePdfPageScale = async (pageIndex) => {
...
@@ -1185,7 +1170,6 @@ const checkAndUpdatePdfPageScale = async (pageIndex) => {
console
.
warn
(
`页面
${
pageNum
}
viewport.scale无效,使用新计算的scale`
);
console
.
warn
(
`页面
${
pageNum
}
viewport.scale无效,使用新计算的scale`
);
}
}
debugger
const
scaleDifference
=
Math
.
abs
(
currentScale
-
newScale
);
const
scaleDifference
=
Math
.
abs
(
currentScale
-
newScale
);
const
scaleThreshold
=
0.01
;
// 允许的scale差异阈值
const
scaleThreshold
=
0.01
;
// 允许的scale差异阈值
...
@@ -1236,7 +1220,6 @@ const checkAndUpdatePdfPageScale = async (pageIndex) => {
...
@@ -1236,7 +1220,6 @@ const checkAndUpdatePdfPageScale = async (pageIndex) => {
return
false
;
return
false
;
}
}
debugger
// 使用补偿后的 scale 创建 viewport
// 使用补偿后的 scale 创建 viewport
const
newViewport
=
pdfPage
.
getViewport
(
scaleInfo
.
compensatedScale
);
const
newViewport
=
pdfPage
.
getViewport
(
scaleInfo
.
compensatedScale
);
...
@@ -1441,7 +1424,6 @@ const zoomOut = () => {
...
@@ -1441,7 +1424,6 @@ const zoomOut = () => {
// 提取公共的缩放更新逻辑
// 提取公共的缩放更新逻辑
const
updateZoomCommon
=
async
(
isResize
=
false
)
=>
{
const
updateZoomCommon
=
async
(
isResize
=
false
)
=>
{
debugger
if
(
!
magazine
.
value
||
!
isInitialized
.
value
)
return
;
if
(
!
magazine
.
value
||
!
isInitialized
.
value
)
return
;
const
$magazine
=
$
(
magazine
.
value
);
const
$magazine
=
$
(
magazine
.
value
);
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论