angularjs实现豆瓣web版阅读器

###使用angularjs实现豆瓣阅读器###
首先豆瓣阅读器是这样的也可以是这样的(不同分辨率的尺寸能自适应)


在移动端不同尺寸下,豆瓣阅读器都能很好的适应,文字、图片没有被切割,掩盖的情况。要实现这种功能最基本的是容器高度大于等于内容高度。然而一般容器尺寸根据手机屏幕尺寸固定不变,但内容高度根据内容不同而不同。你可能觉得矮油,小问题嘛,一个属性值就解决了嘛。但是…

如果内容高度超过了容器高度怎么办?截呗…

  • 容器高568px,内容高度588px超出20px,这20px需要截取
      如果本页末尾是图片,截取图片肯定不行,图片需要在页面完整显示,只能缩放不能截取
      如果末尾是文字,那截取部分需要在下一页显示,而且显示的文字要能和上一页对应,不能有重复、漏掉的部分否则会影响阅读
  • 章节之间强制分页

因为改变容器大小,豆瓣阅读的文章页码都不同,可见其为实时渲染的页面。在页面加载时,将数据全部插入页面,获取其高度,然后一次循环,当内容高度大于等于容器高度时分页。

  • 如果遇到pagebreak,强制分页
  • 如果末尾是图片则将图片插入下一页,分页
  • 如果末尾是文字,则本页插入这个段落,下一页也插入这个段落,下一页中隐藏上一页的已经显示的内容

GitHub地址
demo地址