turning: function(e, page, view) { var book = $(this), currentPage = book.turn('page'), pages = book.turn('pages'); if (currentPage>3 && currentPage<pages-3) { if (page==1) { book.turn('page', 2).turn('stop').turn('page', page); e.preventDefault(); return; } else if (page==pages) { book.turn('page', pages-1).turn('stop').turn('page', page); e.preventDefault(); return; } } else if (page>3 && page<pages-3) { if (currentPage==1) { book.turn('page', 2).turn('stop').turn('page', page); e.preventDefault(); return; } else if (currentPage==pages) { book.turn('page', pages-1).turn('stop').turn('page', page); e.preventDefault(); return; } } updateDepth(book, page); if (page>=2) $('.sj-book .p2').addClass('fixed'); else $('.sj-book .p2').removeClass('fixed'); if (page<book.turn('pages')) $('.sj-book .p111').addClass('fixed'); else $('.sj-book .p111').removeClass('fixed'); Hash.go('page/'+page).update(); },
时间: 2024-01-09 09:03:52 浏览: 367
单片机实例1-12.doc
这段代码是一个名为 `turning` 的事件处理函数。它在书本翻页时被调用,并包含了一系列逻辑来处理翻页的行为和更新显示。
函数的主要逻辑如下:
1. 获取书本元素并存储在 `book` 变量中。
2. 获取当前页码和总页数,并分别存储在 `currentPage` 和 `pages` 变量中。
3. 判断当前页码是否在有效范围内(大于第 3 页且小于总页数减去 3)。如果是,则继续执行后续逻辑;否则跳过后续逻辑。
4. 根据翻页的目标页码 `page` 进行不同的处理:
- 如果目标页码为 1,将书本的当前页码设置为 2,并停止翻页动画,然后再将当前页码设置为目标页码。最后阻止默认事件的继续执行。
- 如果目标页码为总页数,将书本的当前页码设置为总页数减去 1,并停止翻页动画,然后再将当前页码设置为目标页码。最后阻止默认事件的继续执行。
5. 如果目标页码大于 3 且小于总页数减去 3,判断当前页码是否为 1 或者总页数。如果是,则执行类似于步骤 4 的处理。
6. 调用 `updateDepth` 函数,更新书本的深度效果。
7. 根据页码是否大于等于 2,添加或移除 `.sj-book .p2` 元素的 `fixed` 类。
8. 根据页码是否小于书本的总页数,添加或移除 `.sj-book .p111` 元素的 `fixed` 类。
9. 调用 `Hash.go` 和 `update` 函数,更新 URL 中的哈希值和页面状态。
需要注意的是,该代码片段中的一些函数和选择器,如 `.turn()`、`.preventDefault()`、`.addClass()`、`.removeClass()`、`Hash.go()`、`.update()` 等,需要在其他地方找到具体的实现或根据需求进行定义和补充。
阅读全文