You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

解决Internet Archive BookReader图片顶部空白问题(JS)

解决Internet Archive BookReader图片顶部空白问题(JS)

嘿,我看你用Internet Archive BookReader搭建图片书的时候,碰到了顶部一直留空白的问题——之前调整页面高度搞定了底部的问题,现在咱们来解决顶部的~

先结合你给的代码分析下:你第一个页面(Lomo.png)的高度设为800px,后面所有页面都是1130px,BookReader的布局逻辑通常会以所有页面的最大高度来计算容器空间,这就可能导致小高度的页面上下出现留白;另外也可能是BookReader默认给页面加了顶部内边距/外边距,或者初始化时的布局参数没调好。

给你几个针对性的解决办法,按优先级试试:


方法1:统一页面高度(最直接)

第一个页面高度和其他页面不一致,这大概率是顶部留白的核心原因。BookReader会以所有页面中的最大高度设置容器高度,当第一个页面只有800px高时,剩下的330px就会变成上下留白(默认是垂直居中对齐)。

修改第一个页面的height参数,和其他页面保持一致的1130px:

var options = {
  ppi: 100,
  data: [
    [{
      width: 800,
      height: 1130, // 这里改成1130,和其他页面高度统一
      uri: '/assets/images/Chiloe/Lomo.png'
    }, ],
    // 后续页面配置保持不变...
  ],
  // 其他初始化选项不变...
};

如果你的Lomo.png图片本身高度就是800px,BookReader会自动把图片在1130px的容器里垂直居中。要是你想让图片顶对齐,还可以在初始化选项里加一行:

var options = {
  ppi: 100,
  verticalAlign: 'top', // 新增该选项,让页面内容顶对齐容器
  data: [
    // 页面数据不变...
  ],
  // 其他选项不变...
};

方法2:覆盖默认CSS消除顶部空白

要是统一高度后还有留白,可能是BookReader的默认样式给页面容器加了顶部边距/内边距。可以添加自定义CSS来覆盖:

/* 去掉页面容器的顶部内外边距 */
.BRpage {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
/* 同时检查主容器的顶部空白 */
.BRcontainer {
  padding-top: 0 !important;
}

方法3:调整初始化的布局参数

BookReader有控制页面边距的内置选项,你可以在初始化时添加pageMargin: 0来去掉默认的页面边距:

var options = {
  ppi: 100,
  pageMargin: 0, // 新增该选项,移除页面默认边距
  data: [
    // 页面数据不变...
  ],
  // 其他选项不变...
};

你可以先试方法1,因为页面高度差异是最明显的诱因。如果改完还有空白,再结合方法2或3微调就行~

内容来源于stack exchange

火山引擎 最新活动