<div id="flipview1"
data-win-control="WinJS.UI.FlipView"
data-win-options="{itemDataSource:データ,
itemTemplate:テンプレート }">
</div>
<div data-win-control="WinJS.Binding.Template">見ればわかるように、リストビューと全く同じですね。違いは、data-win-controlに「WinJS.UI.FlipView」を指定しているだけです。テンプレートの使い方も全く同じです。これで、用意したテンプレートを使い、フリップビューが表示されるようになります。起動時には最初のデータが表示され、自動生成される左右に移動するボタンをクリックして次々とデータを移動できます。
……表示する内容を用意する……
</div>
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
※修正したHTMLタグ
<body>
<h1 id="title">Sample Page</h1>
<p id="msg">this is list sample page.</p>
<div id="flipTemp1" data-win-control="WinJS.Binding.Template">
<div style="width: 300px; height:250px; background-color:blue">
<div data-win-bind="textContent: title" style="font-size:18pt;"></div>
<div data-win-bind="textContent: content" style="font-size:14pt;"></div>
</div>
</div>
<div id="flipview1" data-win-control="WinJS.UI.FlipView"
style="width: 350px; height:250px;"
data-win-options="{itemDataSource:mydata.itemList.dataSource, itemTemplate:select('#flipTemp1')}">
</div>
</body>
※修正したスクリプト
(function () {
"use strict";
WinJS.Binding.optimizeBindingReferences = true;
var app = WinJS.Application;
var activation = Windows.ApplicationModel.Activation;
// ListView用のデータ
var dataArray = [
{ title: "Windows", content: "WindowsはマイクロソフトのOSです。" },
{ title: "Mac OS X", content: "Mac OS Xはアップルが提供するOSです。Macにのみ搭載されています。" },
{ title: "Linux", content: "LinuxはオープンソースのOSです。標準搭載されるPCはまだ少数です。" },
{ title: "Android", content: "AndroidはGoogleが開発するOSです。スマートフォンやタブレット他、多数の危機に用いられています。" },
{ title: "iOS", content: "iOSはアップルのOSです。iPhone/iPadに搭載されています。" },
{ title: "Chrome OS", content: "Chrome OSはGoogleによるOSです。Chromebookに搭載される他、オープンソースで配布されてもいます。" }
];
var dataList = new WinJS.Binding.List(dataArray);
var members = { itemList: dataList };
WinJS.Namespace.define("mydata", members);
app.onactivated = function (args) {
if (args.detail.kind === activation.ActivationKind.launch) {
if (args.detail.previousExecutionState !== activation.
ApplicationExecutionState.terminated) {} else {}
args.setPromise(WinJS.UI.processAll().then(function completed() {
var flip = document.getElementById("flipview1");
flip.addEventListener("click", flip1Action);
}));
}
}
app.oncheckpoint = function (args) {};
// ※追加した関数
function flip1Action(event) {
var obj = event.currentTarget.winControl;
var n = obj.currentPage;
var h = document.getElementById("title");
h.textContent = dataArray[n].title;
var p = document.getElementById("msg");
p.innerHTML = dataArray[n].content;
}
app.start();
})();
| << 前へ |