-
Dreamweaver教程之动态交互篇
动态交互篇
坚实的基础打好后,更多的朋友希望能创造出充满变化和吸引力的页面效果,希望通过动态的响应浏览者的访问行为,来改变Web页面静止不变的现状。但网上各种动态页面效果都是需要一些编程知识才能实现的,很多朋友因此为之望而却步。其实利用Dreamweaver提供的一些工具和面板,我们可以方便的实现许多常见的动态交互式效果。例如:弹出窗口、显示和隐藏层、改变状态条文字、播放多媒体文件甚至制作出动态飘动的图层等等,更复杂的还包括常见的下拉菜单效果,以及拖拽层的效果等复杂的动态网页。根据动态效果的不同种类,我们可以用行为、时间线、层和扩展插件来达到我们的目的。
一、交互行为(Behavior) 。交互行为是指Web页面上的元素可以对浏览者的一些动作做出反应,并进而引发进一步的页面效果。在Dreamweaver中我们可以在行为面板通过简单的点击,并设定响应的参数来添加常见的一些交互行为。
(一) 组成行为的基本要素:事件(Event)和动作(Action)。事件是一个动作的触发器,在网络上既可以是用户触发的,如鼠标的滑过、点击等,也可以是自动完成的,如一个页面的载入或关闭。动作则是一系列复杂的变化,可以是在状态条显示一条信息,或是复杂的翻转效果,打开新窗口等等。而所有的行为都是依附在某个特定的元素上,例如一个文本链接、一个图像或一个层等等。至于页面上每个元素可以使用什么事件,已经不需要我们来考虑,Dreamweaver已经将每个对象可能的事件都包含在了行为面板。
(二) 添加行为的基本步骤。
1、 选取一个特定的元素。例如一个文字链接或一个图片等等,最常见的是一个链接。行为将被加到此特定的元素上。
2、 选择你希望兼容的浏览器版本。因为不同的浏览器支持的事件不相同,如果你希望更多的人能看到你做的效果,你必须选择较低的浏览器选项。点击行为面板左上角的”+”号,打开行为选项,选定Show Event For,通常我们选择IE4.0以上版本的浏览器。
3、 选择一个希望执行的动作。例如打开一个浏览器窗口、交换图片,隐藏一个层,或是在状态栏显示一段文字。
4、 为上述的动作设定具体的参数。虽然Dreamweaver自带的动作看起来有限,但通过设定不同的参数我们可以做出很复杂的效果。
5、 添加行为结束。当我们选择了一个动作后,Dreamweaver会自动添加一个相应的缺省事件。在本例中Dreamweaver将触发此动作的事件设定为onClick,即当浏览者点击此链接时,自动触发我们上面添加的弹出一个浏览器窗口这一动作。我们可以打开行为检查器来观察。从此图中我们可以看到相应的已添加事件和已添加的动作列表,点击小三角还可以改变触发此动作的事件,双击动作名称还可以修改添加的动作参数。
(三) 行为面板默认行为简介。
Call JavaScript:呼叫一段JavaScript;
Change Property:改变Html标签的CSS样式;
Check Browser:根据不同的浏览器,进入不同的页面;
Check Plugin:检查浏览器是否装有必要的插件;
Control Shockwave or Flash:控制Shockwave或Flash动画的播放;
Drag Layer:使浏览者可拖动层中的元素;
Go To URL:链接到指定的网址;
Jump Menu、Jump Menu Go:跳页式的菜单及Go按钮;
Open Browser Window:打开新浏览窗口;
Play Sound:播放声音;
Popup Message:弹出警告窗口;
Preload Images:提前读入图片;
Set Nav Bar Image:设定导航栏的图片;
Set Text:在特定的地方显示文字;
Show Hide Layer:显示或隐藏层;
Swap Image、Swap Image Restore:变换图片和恢复原来的图片;
Timeline:控制时间线的播放;
Validate Form:验证表单的正确性;
Get More Behaviors:下载更多的行为事件。
二、层与层面板(Layer) 。行为面板仅仅是实现交互效果的最快捷的途径,利用Dreamweaver中的层面板我们还可以使更多的元素动起来,并将Web页面带入三维的空间。需要指出的是,层是Web页面中实现精确定位的重要基础,也是CSS定位的基础。但在本节中我们主要介绍的是利用层实现动态效果的方法,因此对于层的知识我将简单介绍。
(一) 创建和添加层。在Dreamweaver中创建层主要有多种途径,一种是从Object面板中选择 (Draw Layer)图标绘制一个层;另一种方法是使用Inser|Layer命令在当前位置插入一个层。
(二) 设定层的基本参数。在层的属性面板我们可以设定层的各个参数。
需要重点介绍的三种参数是:
1、Visibility(可见性):可以改变层的显示和隐藏属性。
2、Overflow(溢出处理):可以控制层范围内的元素的显示区域,当层里面的内容超出层的实际尺寸时,可以定义如何显示超出部分。
3、Clip(剪切):可以定义一个矩形区域,当层里面的内容超出层的实际大小时,可以将其剪切掉不显示。
通过动态的改变这三种参数,便可以实现复杂的动态效果。
(三) 使用层面板:当页面上的层比较多时,我们可以打开层面板来直接管理和修改层。包括改变层的显示和隐藏属性,改变层的z轴叠放次序,改变层的名称及层与层之间的嵌套关系。
(四) 嵌套层的实现。嵌套层是一个重要的概念,通过层的嵌套,可以使子层继承父层的一些属性,同时可以使子层随着父层状态的改变而相应的改变。我们可以在层面板中选择一个层,按住Ctrl键讲它拖懂到另一个层的名称上,便可以使它成为目标层的子层,而且我们可以实现层的多级嵌套。
(五) 利用层实现动态效果。层的一个重要的特性是它的所有属性可以被动态的改变(包括坐标、尺寸、深度、可见性和剪裁等等)。而且这些属性的改变我们可以利用Dreamweaver的行为面板来实现,在Dreamweaver中有两个行为是专门针对层的,Show-Hide Layer和Drag Layer。
1、 Show-Hide Layer(显示/隐藏层)。通过交互式的改变层的显示属性为实现Web页面的丰富效果提供了可能,通过Show-Hide Layer行为我们可以控制各个层的显示,从而实现一些特殊效果,例如翻转图效果、下拉菜单效果等等。主要的过程类似于前面我们介绍的添加行为的过程。首先需要选定将要添加Show-Hide Layer行为的HTML元素,例如图像、链接;从行为面板中添加Show-Hide Layer行为;在打开的对话框中指定将要改变显示属性的层,并改变它的显示属性,如图:
添加完Show-Hide Layer行为后,我们还可以在行为面板改变触发此行为的事件。
2、 Drag Layer(拖动层)。拖动层之所以具有很大的吸引力,在于它可以让浏览者自己控制和改变一些页面元素的位置,例如我们经常见得一些可以拖动的图片,以及一些拼图游戏等等。使用Drag Layer我们可以指定层的移动范围、移动方向(水平或垂直)、层的目标位置、是否自动对齐或者到达指定位置后是否触发另一个行为。创建一个拖动层的效果主要有以下几个步骤:
1) 绘制一个希望大小的层,并将需要改变位置的页面元素放置进去,例如一些图片、一个表格或一段文字等等任意的对象。
2) 从工作窗口最下方的标签选择器中选定<body>标签,这样将把Drag Layer行为添加在<body>标签上。
3) 打开行为面板,点击“+”号添加Drag Layer行为,并设定相应的参数。
Layer:包含了当前文档中已有的层列表。
Movement:设定层的移动方式,可以是Unconstrained(无约束)或Constrained(有约束)两种移动方式。无约束方式可以使你任意移动层,有约束方式将使你可以指定一个限制范围,层将只在此范围内移动。
Drop Target:设定有层移动的目标范围,这个值将和层移动的初始位置有关,当浏览者将层移动到你设定的这个位置时,可以执行你设定的另外一些行为。
Snap if Within:设定当拖动的层与目标位置的距离在此范围内时,自动将层对齐到目标位置。
对于简单的推动层行为,设定以上参数就可以实现我们需要的动态交互效果。如果们还希望在拖动层行为结束后,执行其他的一些动作,可以切换到高级面板窗口,设定相应的参数。
4) 设定高级参数:
While Dragging:设定当拖动行为正在进行时可以执行的操作,在拖动时将层调到最顶端,拖动结束后可以将它留在最顶端,或者回复它原来的高度;并且可以设定拖动时执行另外一段JS程序或命令。
When Dropped :设定拖动结束后调用另一段JS程序。
三、时间线(Timeline) 。使用行为面板我们已经可以简便和快捷的创建交互式动态效果,但Dreamweaver还提供了更复杂和强大的工具可以实现高级动态效果,这就是时间线(Timeline),使用时间线是进入四维空间的必由之路。前面我们介绍的动态效果都是发生在瞬间的变化之中,而利用时间线我们可以实现真正的运动效果,但Dreamweaver中的时间线并不仅仅是实现运动的工具,它也有助于实现定时完成指定任务。例如在指定的时间和状态下执行一个行为,或者跳转到另一个行为,可以说时间线将页面中的各种交互行为有机和有序的组织结合到了一起。这是一个非常复杂的过程,但Dreamweaver将它变得操作起来非常简单,所有的程序代码都自动为我们添加好。下面我简单的介绍一下。
(一)、使用时间线的基本原则。
1、 所有在时间线控制范围内运动的元素,都必须放入各自的层中,也就是说只有层可以被时间线面板接受。
2、 在一个时间线上可以包含多个动画,他们将按各自的属性运动,但必须保证他们没有作用在同一个层上。
3、 在时间线上的任意位置都可以添加行为,也就是说我们不需要将所有的行为都从时间线的开始位置启动,可以根据我们的需要在指定的帧位置启动。
(二)、使用时间线创建动画。
1、 将层添加到时间线。首先我们必须将需要运动的元素放入一个层中,然后点击并拖动层的标示,将其拖入时间线面板中。Dreamweaver会自动创建一个15帧的动画条。
2、 单击并拖动动画条可以改变它从何时开始播放,但击并拖动动画条的最后一帧,可以改变动画执行的时间长度。
3、 一个动画并不仅仅是只有开始和结束两个状态,我们可以添加多个关键帧,并设定每个关键帧时,相关层的位置、属性,以及执行的行为。使用鼠标右键单击动画条上的一个帧位置,执行Add Keyframe即可添加一个关键帧。
4、 选定相应的关键帧,然后在文档窗口改变层的位置或属性。最后根据需要勾选Autoplay(自动播放)或Loop(循环播放),即可实现一个动画。
(三)、在时间线中改变行为。我们除了可以自动执行一个动态运动的层效果,还可以为时间线上的关键帧指定单独执行的行为,也可以把时间线附着于某个事件上。
1、 将时间线指定到特定的事件。选择一个特定的元素,如图像、链接,打开行为面板,选择添加行为,从弹出菜单中选择Timeline|Play Timeline开始播放一个时间线动画;选择Timeline|Stop Timeline停止一个正在播放的时间线动画;选择Goto Timeline Frame直接跳转到时间线上的一个关键帧位置。
2、 为时间线添加行为。在时间线的行为通道中我们可以添加相应的行为,这样当动画执行到此位置时将启动相应的行为。鼠标定位在一个帧位置,打开行为面板,添加需要的一个行为,例如我们在第12帧添加了一个打开浏览器窗口的行为,当动画播放到第12帧时会自动打开一个浏览器窗口。
小结:到这里为止我概要介绍了在Dreamweaver中实现动态交互效果的途径,我们可以看到,通过使用层并改变层的定位、可视性、深度等特性,我们创建了多种的动态效果,可以说层的应用是实现动态效果的基础。通过为层增加相应的行为,并使用时间线来控制,我们将动态的Web页面引入了四维的空间。
由于篇幅所限,本节我不再为大家介绍相应的使用技巧,但只要大家认真研究好Layer、Behaviors、Timeline三个面板的各个参数,相信你可以作出更加充满变换的页面效果。限制你的只有你的想象力而已。
坚实的基础打好后,更多的朋友希望能创造出充满变化和吸引力的页面效果,希望通过动态的响应浏览者的访问行为,来改变Web页面静止不变的现状。但网上各种动态页面效果都是需要一些编程知识才能实现的,很多朋友因此为之望而却步。其实利用Dreamweaver提供的一些工具和面板,我们可以方便的实现许多常见的动态交互式效果。例如:弹出窗口、显示和隐藏层、改变状态条文字、播放多媒体文件甚至制作出动态飘动的图层等等,更复杂的还包括常见的下拉菜单效果,以及拖拽层的效果等复杂的动态网页。根据动态效果的不同种类,我们可以用行为、时间线、层和扩展插件来达到我们的目的。
一、交互行为(Behavior) 。交互行为是指Web页面上的元素可以对浏览者的一些动作做出反应,并进而引发进一步的页面效果。在Dreamweaver中我们可以在行为面板通过简单的点击,并设定响应的参数来添加常见的一些交互行为。
(一) 组成行为的基本要素:事件(Event)和动作(Action)。事件是一个动作的触发器,在网络上既可以是用户触发的,如鼠标的滑过、点击等,也可以是自动完成的,如一个页面的载入或关闭。动作则是一系列复杂的变化,可以是在状态条显示一条信息,或是复杂的翻转效果,打开新窗口等等。而所有的行为都是依附在某个特定的元素上,例如一个文本链接、一个图像或一个层等等。至于页面上每个元素可以使用什么事件,已经不需要我们来考虑,Dreamweaver已经将每个对象可能的事件都包含在了行为面板。
(二) 添加行为的基本步骤。
1、 选取一个特定的元素。例如一个文字链接或一个图片等等,最常见的是一个链接。行为将被加到此特定的元素上。
2、 选择你希望兼容的浏览器版本。因为不同的浏览器支持的事件不相同,如果你希望更多的人能看到你做的效果,你必须选择较低的浏览器选项。点击行为面板左上角的”+”号,打开行为选项,选定Show Event For,通常我们选择IE4.0以上版本的浏览器。
3、 选择一个希望执行的动作。例如打开一个浏览器窗口、交换图片,隐藏一个层,或是在状态栏显示一段文字。
4、 为上述的动作设定具体的参数。虽然Dreamweaver自带的动作看起来有限,但通过设定不同的参数我们可以做出很复杂的效果。
5、 添加行为结束。当我们选择了一个动作后,Dreamweaver会自动添加一个相应的缺省事件。在本例中Dreamweaver将触发此动作的事件设定为onClick,即当浏览者点击此链接时,自动触发我们上面添加的弹出一个浏览器窗口这一动作。我们可以打开行为检查器来观察。从此图中我们可以看到相应的已添加事件和已添加的动作列表,点击小三角还可以改变触发此动作的事件,双击动作名称还可以修改添加的动作参数。
(三) 行为面板默认行为简介。
Call JavaScript:呼叫一段JavaScript;
Change Property:改变Html标签的CSS样式;
Check Browser:根据不同的浏览器,进入不同的页面;
Check Plugin:检查浏览器是否装有必要的插件;
Control Shockwave or Flash:控制Shockwave或Flash动画的播放;
Drag Layer:使浏览者可拖动层中的元素;
Go To URL:链接到指定的网址;
Jump Menu、Jump Menu Go:跳页式的菜单及Go按钮;
Open Browser Window:打开新浏览窗口;
Play Sound:播放声音;
Popup Message:弹出警告窗口;
Preload Images:提前读入图片;
Set Nav Bar Image:设定导航栏的图片;
Set Text:在特定的地方显示文字;
Show Hide Layer:显示或隐藏层;
Swap Image、Swap Image Restore:变换图片和恢复原来的图片;
Timeline:控制时间线的播放;
Validate Form:验证表单的正确性;
Get More Behaviors:下载更多的行为事件。
二、层与层面板(Layer) 。行为面板仅仅是实现交互效果的最快捷的途径,利用Dreamweaver中的层面板我们还可以使更多的元素动起来,并将Web页面带入三维的空间。需要指出的是,层是Web页面中实现精确定位的重要基础,也是CSS定位的基础。但在本节中我们主要介绍的是利用层实现动态效果的方法,因此对于层的知识我将简单介绍。
(一) 创建和添加层。在Dreamweaver中创建层主要有多种途径,一种是从Object面板中选择 (Draw Layer)图标绘制一个层;另一种方法是使用Inser|Layer命令在当前位置插入一个层。
(二) 设定层的基本参数。在层的属性面板我们可以设定层的各个参数。
需要重点介绍的三种参数是:
1、Visibility(可见性):可以改变层的显示和隐藏属性。
2、Overflow(溢出处理):可以控制层范围内的元素的显示区域,当层里面的内容超出层的实际尺寸时,可以定义如何显示超出部分。
3、Clip(剪切):可以定义一个矩形区域,当层里面的内容超出层的实际大小时,可以将其剪切掉不显示。
通过动态的改变这三种参数,便可以实现复杂的动态效果。
(三) 使用层面板:当页面上的层比较多时,我们可以打开层面板来直接管理和修改层。包括改变层的显示和隐藏属性,改变层的z轴叠放次序,改变层的名称及层与层之间的嵌套关系。
(四) 嵌套层的实现。嵌套层是一个重要的概念,通过层的嵌套,可以使子层继承父层的一些属性,同时可以使子层随着父层状态的改变而相应的改变。我们可以在层面板中选择一个层,按住Ctrl键讲它拖懂到另一个层的名称上,便可以使它成为目标层的子层,而且我们可以实现层的多级嵌套。
(五) 利用层实现动态效果。层的一个重要的特性是它的所有属性可以被动态的改变(包括坐标、尺寸、深度、可见性和剪裁等等)。而且这些属性的改变我们可以利用Dreamweaver的行为面板来实现,在Dreamweaver中有两个行为是专门针对层的,Show-Hide Layer和Drag Layer。
1、 Show-Hide Layer(显示/隐藏层)。通过交互式的改变层的显示属性为实现Web页面的丰富效果提供了可能,通过Show-Hide Layer行为我们可以控制各个层的显示,从而实现一些特殊效果,例如翻转图效果、下拉菜单效果等等。主要的过程类似于前面我们介绍的添加行为的过程。首先需要选定将要添加Show-Hide Layer行为的HTML元素,例如图像、链接;从行为面板中添加Show-Hide Layer行为;在打开的对话框中指定将要改变显示属性的层,并改变它的显示属性,如图:
添加完Show-Hide Layer行为后,我们还可以在行为面板改变触发此行为的事件。
2、 Drag Layer(拖动层)。拖动层之所以具有很大的吸引力,在于它可以让浏览者自己控制和改变一些页面元素的位置,例如我们经常见得一些可以拖动的图片,以及一些拼图游戏等等。使用Drag Layer我们可以指定层的移动范围、移动方向(水平或垂直)、层的目标位置、是否自动对齐或者到达指定位置后是否触发另一个行为。创建一个拖动层的效果主要有以下几个步骤:
1) 绘制一个希望大小的层,并将需要改变位置的页面元素放置进去,例如一些图片、一个表格或一段文字等等任意的对象。
2) 从工作窗口最下方的标签选择器中选定<body>标签,这样将把Drag Layer行为添加在<body>标签上。
3) 打开行为面板,点击“+”号添加Drag Layer行为,并设定相应的参数。
Layer:包含了当前文档中已有的层列表。
Movement:设定层的移动方式,可以是Unconstrained(无约束)或Constrained(有约束)两种移动方式。无约束方式可以使你任意移动层,有约束方式将使你可以指定一个限制范围,层将只在此范围内移动。
Drop Target:设定有层移动的目标范围,这个值将和层移动的初始位置有关,当浏览者将层移动到你设定的这个位置时,可以执行你设定的另外一些行为。
Snap if Within:设定当拖动的层与目标位置的距离在此范围内时,自动将层对齐到目标位置。
对于简单的推动层行为,设定以上参数就可以实现我们需要的动态交互效果。如果们还希望在拖动层行为结束后,执行其他的一些动作,可以切换到高级面板窗口,设定相应的参数。
4) 设定高级参数:
While Dragging:设定当拖动行为正在进行时可以执行的操作,在拖动时将层调到最顶端,拖动结束后可以将它留在最顶端,或者回复它原来的高度;并且可以设定拖动时执行另外一段JS程序或命令。
When Dropped :设定拖动结束后调用另一段JS程序。
三、时间线(Timeline) 。使用行为面板我们已经可以简便和快捷的创建交互式动态效果,但Dreamweaver还提供了更复杂和强大的工具可以实现高级动态效果,这就是时间线(Timeline),使用时间线是进入四维空间的必由之路。前面我们介绍的动态效果都是发生在瞬间的变化之中,而利用时间线我们可以实现真正的运动效果,但Dreamweaver中的时间线并不仅仅是实现运动的工具,它也有助于实现定时完成指定任务。例如在指定的时间和状态下执行一个行为,或者跳转到另一个行为,可以说时间线将页面中的各种交互行为有机和有序的组织结合到了一起。这是一个非常复杂的过程,但Dreamweaver将它变得操作起来非常简单,所有的程序代码都自动为我们添加好。下面我简单的介绍一下。
(一)、使用时间线的基本原则。
1、 所有在时间线控制范围内运动的元素,都必须放入各自的层中,也就是说只有层可以被时间线面板接受。
2、 在一个时间线上可以包含多个动画,他们将按各自的属性运动,但必须保证他们没有作用在同一个层上。
3、 在时间线上的任意位置都可以添加行为,也就是说我们不需要将所有的行为都从时间线的开始位置启动,可以根据我们的需要在指定的帧位置启动。
(二)、使用时间线创建动画。
1、 将层添加到时间线。首先我们必须将需要运动的元素放入一个层中,然后点击并拖动层的标示,将其拖入时间线面板中。Dreamweaver会自动创建一个15帧的动画条。
2、 单击并拖动动画条可以改变它从何时开始播放,但击并拖动动画条的最后一帧,可以改变动画执行的时间长度。
3、 一个动画并不仅仅是只有开始和结束两个状态,我们可以添加多个关键帧,并设定每个关键帧时,相关层的位置、属性,以及执行的行为。使用鼠标右键单击动画条上的一个帧位置,执行Add Keyframe即可添加一个关键帧。
4、 选定相应的关键帧,然后在文档窗口改变层的位置或属性。最后根据需要勾选Autoplay(自动播放)或Loop(循环播放),即可实现一个动画。
(三)、在时间线中改变行为。我们除了可以自动执行一个动态运动的层效果,还可以为时间线上的关键帧指定单独执行的行为,也可以把时间线附着于某个事件上。
1、 将时间线指定到特定的事件。选择一个特定的元素,如图像、链接,打开行为面板,选择添加行为,从弹出菜单中选择Timeline|Play Timeline开始播放一个时间线动画;选择Timeline|Stop Timeline停止一个正在播放的时间线动画;选择Goto Timeline Frame直接跳转到时间线上的一个关键帧位置。
2、 为时间线添加行为。在时间线的行为通道中我们可以添加相应的行为,这样当动画执行到此位置时将启动相应的行为。鼠标定位在一个帧位置,打开行为面板,添加需要的一个行为,例如我们在第12帧添加了一个打开浏览器窗口的行为,当动画播放到第12帧时会自动打开一个浏览器窗口。
小结:到这里为止我概要介绍了在Dreamweaver中实现动态交互效果的途径,我们可以看到,通过使用层并改变层的定位、可视性、深度等特性,我们创建了多种的动态效果,可以说层的应用是实现动态效果的基础。通过为层增加相应的行为,并使用时间线来控制,我们将动态的Web页面引入了四维的空间。
由于篇幅所限,本节我不再为大家介绍相应的使用技巧,但只要大家认真研究好Layer、Behaviors、Timeline三个面板的各个参数,相信你可以作出更加充满变换的页面效果。限制你的只有你的想象力而已。
栏目列表
最新更新
python爬虫及其可视化
使用python爬取豆瓣电影短评评论内容
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比