win10系列:javascript动画3

关键词:

"交叉进出"动画也是Windows动画库中的动画效果。"交叉进出"动画的动画效果是在应用程序界面上隐藏一个元素并同时在相同位置显示另一个元素的时候,被隐藏的元素渐消失在应用程序界面上,而将要显示的元素渐显示在应用程序界面上。

创建"交叉进出"动画可以使用WinJS.UI.Animation.crossFade函数,该函数有两个Object类型的参数,第一个参数是将要显示的元素对象或元素对象数组,第二个参数是将要消失元素的元素对象或元素对象数组,下面以一个应用程序为例,来演示如何使用HTML5和JavaScript实现"交叉进出"动画。在这个应用程序运行后,初始界面显示一张花朵图片,单击应用程序界面上的"显示"按钮后,花朵图片逐渐淡出界面,在花朵图片相同的位置一张小河图片逐渐显示。

新建一个JavaScript的Windows应用商店的空白应用程序项目,将其命名为CrossFadeAnimation。接着添加项目中用到的图片文件,在项目默认新建的文件夹images上单击右键,选择"添加"à"现有项",在本地文件夹中选择一张花朵图片和一张小河图片并添加到项目中。

完成添加图片的操作后,接下来打开default.html文件,在default.html文件的body元素中添加两个img元素和一个"显示"按钮,设置第一个img元素的id属性值为"flowerImage",src属性值为花朵图片的地址,用于显示一张花朵图片;设置第二个img元素的id属性值为"waterImage",src属性为小河图片的地址,用于显示一张小河图片;为"显示"按钮的id属性赋值"runAnimationButton",用于控制两个图片的显示。相应的HTML代码片段如下所示:

<body>

<img id="flowerImage" src="/images/.png" />

<img id="waterImage" src="/images/河水.png" />

<button id="runAnimationButton">显示</button>

</body>

为了控制应用程序界面的显示外观,在default.css文件中添加如下代码来控制default.html页面的布局。

/*设置body元素的边距*/

body {

margin-left:300px;

margin-top:200px;

}

/*设置id属性值分别为"flowerImage""waterImage"的元素的位置和边距*/

#flowerImage, #waterImage

{

position: absolute;

width: 150px;

height: 150px;

}

/*设置id属性值为"runAnimationButton"的元素的边距*/

#runAnimationButton {

margin-left:30px;

margin-top:160px;

}

完成前台界面的布局后,应用程序界面效果如图19-27所示。

图19-27 "交叉进出"动画初始界面

布局好前台界面后,接下来介绍如何实现"交叉进出"动画。打开default.js文件,在"args.setPromise(WinJS.UI.processAll());"语句后添加如下代码,为"显示"按钮注册click事件的处理函数runAnimationButton_Click,并设置初始状态下小河图片完全透明。

runAnimationButton.addEventListener("click", runAnimationButton_Click);

waterImage.style.opacity = "0";

在上面的代码中,调用id属性值为"runAnimationButton"的元素对象的addEventListener函数为相应元素注册click事件处理函数,函数名为runAnimationButton_Click。接着通过设置waterImage.style对象中的opacity属性值为0,把id属性值为"waterImage"的元素设置为完全透明。

下面在"app.onactivated = function (args) {......};"语句的后面添加代码,定义事件处理函数runAnimationButton_Click,实现两张图片转换时"交叉进出"的动画效果。

function runAnimationButton_Click() {

var incomingImage;

var outgoingImage;

//判断id属性值为flowerImage的元素的不透明度是否为0

if (flowerImage.style.opacity === "0") {

//将要显示的元素对象赋值给incomingImage变量

incomingImage = flowerImage;

//将要隐藏的元素对象赋值给outgoingImage变量

outgoingImage = waterImage;

} else {

incomingImage = waterImage;

outgoingImage = flowerImage;

}

//调用WinJS.UI.Animation.crossFade函数创建"交叉进出"动画

WinJS.UI.Animation.crossFade(incomingImage, outgoingImage);

}

在上面的代码中,首先定义了两个变量incomingImage和outgoingImage,分别用于保存将要显示的元素对象和将要隐藏的元素对象。接着判断id属性值为"flowerImage"的元素的不透明度是否为0,如果为0将该元素对象赋值给incomingImage变量,将id属性值为"waterImage"的元素对象赋值给outgoingImage变量;如果不为0,将id属性值为"waterImage"的元素对象赋值给incomingImage变量,将id属性值为"flowerImage"的元素对象赋值给outgoingImage变量。最后,调用WinJS.UI.Animation.crossFade函数以incomingImage和outgoingImage为参数创建"交叉进出"动画。

启动调试,应用程序的初始界面如图19-27所示,单击"显示"按钮,界面上的花朵图片逐渐淡出,小河图片逐渐显示,小河图片显示后的效果如图19-28所示。

图19-28 "交叉进出"动画显示后的界面

win10系列:javascript动画2

"重新定位"动画也是Windows动画库中的动画效果。"重新定位"动画的动画效果是指一个或一组元素移动到新的位置时,这些元素不是突然出现在新的位置,而是从一个位置移动到另一个位置。创建"重新定位"动画可以使用WinJS.UI.Anima... 查看详情

win10系列:javascript动画1

在应用程序中使用动画会使应用显得更加生动,进而给用户带来良好的视觉效果。例如,当用户将某个项添加到列表时,新项不会立即出现在列表中,而是采用动画形式到达相应位置,并且列表中的其他项也采用动画形式移动到... 查看详情

win10系列:javascript数据绑定

使用数据绑定可以使页面中元素的属性值与数据源中的数据同步,其中数据源可以来自数据库、文件以及自定义的数据等。在常用的数据绑定方法中,简单对象绑定是将HTML元素与一个仅包含数据的简单对象相绑定,模板绑定是... 查看详情

win10系列:javascript页内导航

...在一个页面内根据需要加载其他页面的内容,在开发基于JavaScript的Windows应用商店应用时,可以使用WinJS.Navigation.navigate函数传递要加载的页面地址并使用PageControlNavigator控件加载其他页面的内容。WinJS.Navigation.navigate函数以一个包... 查看详情

win10系列:javascript图形

...canvas元素会在页面上生成一个矩形的位图画布,可以使用JavaScript在画布上实时绘制图形图像。在绘制图形时,需要先调用画布的getContext函数获取与该画布相关的用于绘制图形(如2D图形、3D图形)的对象,然后使用这个对象调用... 查看详情

win10系列:javascript模板绑定

WinJS库模板提供了一种格式化显示多条数据的便捷方式,通过这种方式可以将模板与ListView或FlipView等控件结合使用以控制数据的显示格式。定义一个WinJS库模板的方法与定义WinJS库控件的方法相似:在页面中添加一个div元素,将di... 查看详情

win10系列:javascript写入和读取文件

正如上面的内容中所提到的,文件保存选取器用于保存文件,通过Windows.Storage.Pickers命名空间中的FileSavePicker类的pickSaveFileAsync函数可以向指定的文件系统位置中保存一个文件。文件保存之后,还可以对其进行读写操作,如果是向... 查看详情

win10系列:javascript控件的使用

...的基本控件,如按钮和复选框;WinJS库控件是为开发基于JavaScript的Windows应用商店应用提供的新控件,如ListView、HtmlControl和PageControl等。下面首先介绍如何添加这两种类型的控件,然后介绍如何为控件注册事件处理函数和设计控... 查看详情

win10系列:javascript综合实例2

在项目中添加一个名为pages的文件夹,并在pages文件夹里面再添加一个名为mainPage的文件夹,接着在mainPage文件夹里添加一个"页面控制"项,命名为mainPage,添加完成之后会同时生成mainPage.html、mainPage.css和mainPage.js这三个文件。这里... 查看详情

win10系列:javascript页面导航

页面导航是在开发应用的过程中使用频率较高的技术,其中比较常用的导航方式有多页导航和页内导航,采用多页导航方式的应用程序包含一系列的页面,在一个页面中加入另一个页面的链接地址后,单击链接将跳转到指定页面... 查看详情

win10系列:javascript综合实例4

实现主页面和分类页面的之后,最后来看一下菜肴页面的实现,这个页面用于详细介绍某项菜肴或主食,如名称、图片和具体做法等。在pages文件夹里面添加一个名为foodDetail的文件夹,并在foodDetail文件夹里添加一个"页面控制"项... 查看详情

win10系列:javascript综合实例1

上面几个小节讲解了使用HTML5和JavaScript语言开发Windows应用商店应用时会用到的一些技术,本小节将前面介绍的知识融合在一起创建一个菜谱应用程序,帮助读者更进一步地理解和掌握这些知识。此菜谱应用程序主要的功能是介... 查看详情

win10系列:javascript多媒体

在应用程序的日常使用中,经常会使用多媒体播放器来播放多媒体文件,包括视频、音频等,因此对于开发者来说,学习多媒体播放技术对开发应用是很有帮助的。本小节主要介绍如何使用HTML5和JavaScrip实现播放本地视频。想要... 查看详情

win10系列:javascript获取文件和文件夹列表

在应用程序中有时可能需要获取用户库中的内容,以便执行相关的操作。如果要获取某个用户库中的内容,需要先获取到这个用户库,获得用户库可以通过Windows.Storage命名空间中的KnownFolders类的相应属性来实现,可用属性包括doc... 查看详情

win10系列:javascript访问文件和文件夹

...门基于C#语言的详细讲解,本节主要介绍如何使用HTML5和JavaScript开发具有文件操作功能的Windows应用商店应用,首先来了解一下用于对文件或文件夹进行操作的文件选取器。19.4.1文件选取器正如前面章节C#语言中所介绍的,文件选... 查看详情

从零开始学_javascript_系列——dojo(基础,动画移动,重力模拟,动画合并,添加标签)

dojo学习 (1)加载①首先,先设置  <script>    //替代使用data-dojo-config,我们创建一个dojoConfig对象(是个设置)在我们调用dojo.js之前,他们功能相同    //这比通过一大堆设置来说,更... 查看详情

javascript网页特效(代码片段)

JavaScript 系列笔记: JavaScript系列笔记——目录点击上方链接可查看更多笔记JavaScript网页特效目录PC端网页特效1.元素偏移量offset系列2.元素可视区client系列 3.元素滚动scroll系列4.动画函数封装移动端网页特效1.触屏事件PC端... 查看详情

windows10动态壁纸

...选择第一个,点击进入。win10电脑怎么设置动态壁纸桌面/动画桌面壁纸?2在首页点击【正式版下载】按钮,下载软件安装包。win10电脑怎么设置动态壁纸桌面/动画桌面壁纸?3下载完成后双击打开安装包进行安装。建议把软件安... 查看详情