turn.js 4版更新解析:新增功能及性能优化

需积分: 18 2 下载量 20 浏览量 更新于2024-11-11 收藏 1.12MB ZIP 举报
资源摘要信息:"turn.js_ver4是一个用于创建翻书效果的JavaScript库的最新版本。该版本引入了许多新特性和改进,包括自动居中、缩放功能、动画属性、新方法和事件以及CSS类的添加。它还引入了新的文件,如turn.html4.js和scissors.js,并对现有的类和事件处理进行了更新和优化。" 知识点: 1. turn.js库:turn.js是一个强大的JavaScript库,用于在网页中创建翻书效果。它模仿了实体书的翻页动画,使得在网页上展示图片和文章的方式更加生动和吸引人。 2. turn.js 4新特性:在版本4中,turn.js增加了一些新的选择、属性和方法。如增加了autoCenter选择,用于自动将翻页内容居中显示;添加了zoom选项,用于调整翻页的缩放级别。新增属性包括animating,用于表示页面是否正在翻转,以及zoom属性,用于获取或设置当前的缩放级别。新增方法包括center,用于将翻页内容居中,destroy,用于销毁一个实例,is,用于检查当前元素是否是turn.js实例,以及zoom,用于改变当前的缩放级别。新增事件包括missing,当缺失内容时触发,以及zooming,当内容正在缩放时触发。 3. CSS类:在turn.js 4中,新增了一些CSS类,如.even、.fixed、.hard、.odd和.own-size,以及.sheet。这些类可以用于自定义翻页效果和样式。 4. 动画性能优化:turn.js 4使用了requestAnimationFrame来改进动画帧生成器,这可以提高翻页动画的平滑度和性能。此外,使用CSS3转换进一步提高了硬页面的动画速度。 5. 事件处理优化:turn.js 4重新设计了事件序列,只监听三个事件,这可以减少不必要的事件处理,提高性能。 6. Bug修复:turn.js 4修复了一些已知的问题,包括固定问题#79和#91,以及修复了事件顺序翻转+翻转的问题。 7. 文件更新:turn.js 4引入了新的文件,如turn.html4.js和scissors.js,同时改变了类.turn-page来.page。这表明开发者对库的结构和功能进行了重新组织和优化。 8. JavaScript:turn.js是用JavaScript编写的,这是一种广泛用于网页开发的编程语言。turn.js的使用和理解需要一定的JavaScript知识。 9. HTML和CSS:turn.js主要在HTML和CSS环境中运行,因此需要对这两种技术有一定的了解。 10. 动画和交互设计:turn.js涉及大量的动画和交互设计,理解这些概念将有助于更有效地使用和定制turn.js。

def __next_step(self, x, y): if not self.judge_colory: self.__history += 0 else: self.__history += 1 self.color = 1 if self.__history % 2 == 0 else 2 if self.start_ai_game: if self.ai_color == self.color: row,col = self.ai_stage(self.ai_game()[0],self.ai_game()[1]) else: col = round((x-self.__margin*2)/self.__cell_width) row = round((y-self.__margin*2)/self.__cell_width) stage_row = (y-self.__margin)-(self.__cell_width*row+self.__margin) stage_col = (x-self.__margin)-(self.__cell_width*col+self.__margin) if stage_col < stage_row: self.direct= 1 else: self.direct= 0 else: col = round((x - self.__margin * 2) / self.__cell_width) row = round((y - self.__margin * 2) / self.__cell_width) stage_row = (y - self.__margin) - (self.__cell_width * row + self.__margin) stage_col = (x - self.__margin) - (self.__cell_width * col + self.__margin) if stage_col < stage_row: self.direct = 1 else: self.direct= 0 if self.valide(row, col, self.direct): if self.__history % 4 == 0 or (self.__history + 2) % 4 == 0: self.__game_board.drew_turn(2) else: self.__game_board.drew_turn(1) self.add_logic(row, col, self.color) self.__game_board.draw_chess(row, col, self.color, self.direct) if self.judge_owner(row, col, self.color, self.direct): self.__game_board.drew_turn(self.judge_next(self.color)) for i in self.judge_owner(row, col, self.color, self.direct): x,y=self.draw_owner(i) self.__game_board.drew_owner(self.color, y, x) else: self.__game_board.drew_turn(self.color) self.judge_color(row, col, self.color, self.direct) print(self.logic_board_state) if 0 not in self.logic_board_owner: self.__game_board.pop_win(self.judge_winner())

2023-07-14 上传