|
|

楼主 |
发表于 2022-4-30 23:25
|
显示全部楼层
其二:弹性翻页
所谓弹性翻页,此处指模拟现实翻书时的一些情形,如翻到指定页、翻到某一页是回翻,也许还应有书签功能。
一个小巧的JS原生翻书程序,能实现的弹性翻页应是在任意一页回翻。举例来说就是,翻到左手边书页页码为4时回头翻一页,此时左手边的页码是2,然后往前翻往后翻都可以。
不要小看这个小小的回翻动作,原生JS能实现回翻的例子基本找不到,都是像当前的黑书那样翻到尾才能翻回头,翻到头才能又往另一边翻,而且书一旦翻页了就不再见到封面和封底。这是因为书页的每一张纸都有两面,要处理起来涉及的设置是针对两张纸而不是一张(翻页后我们看到的是两张纸的各一面);同时还要处理两端的边界问题,这个边界与左翻、右翻以及回翻都有不同的关联,情况有些复杂。
我的极简多图+图片说明脚本,使用闭环的结构,把开头和结尾两个边界衔接起来,使得问题的解决简单化。书本可不行,不能翻到封底后整本书转个360度,这不不太符合现实,所以封面和封底的书页不能衔接在一处,也就是不能闭环,要独立处理两个边界。
JS有一个 return false 的做法可以在处理边界中使用。翻书分两个动作,一个向左翻,一个向右翻。向左翻,翻到封底,当前页为总纸张数,这就是封底方向的边界,右翻的边界是封面,数值为1;但这两个数根据按照数组读取则各减去一。当前页变量的步进会超越边界,每一次翻页都需要做判断并做相应处理,用几行代码应该可以搞定。
这个设想试了几次,已经成功大半(希望不仅仅是自我感觉)。
|
评分
-
| 参与人数 1 | 威望 +50 |
金钱 +100 |
经验 +50 |
收起
理由
|
红影
| + 50 |
+ 100 |
+ 50 |
赞一个! |
查看全部评分
|