首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >ListView项目动画- Windows store应用程序

ListView项目动画- Windows store应用程序
EN

Stack Overflow用户
提问于 2013-05-06 11:39:51
回答 1查看 493关注 0票数 0

我使用visual studio和this教程中的基本网格示例创建了简单的网格应用程序。我期望这个动画可以在所有的物品上工作,但是它似乎只在第一个物品上工作。我的问题是,我如何在所有项目上设置动画?如果可以随机设置动画(不是一次完成所有的动画!例如: windows 8开始菜单)。

项目模板:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div class="itemtemplate" data-win-control="WinJS.Binding.Template">
    <div class="item">
        <img class="item-image" src="#" data-win-bind="src: backgroundImage; alt: title" />
        <img class="item-image-new" src="#" data-win-bind="src: backgroundImage; alt: title" />
        <div class="item-overlay">
            <h4 class="item-title" data-win-bind="textContent: title"></h4>
            <h6 class="item-subtitle win-type-ellipsis" data-win-bind="textContent: subtitle"></h6>
        </div>
    </div>
</div>

Js动画:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var darkGray = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXY3B0cPoPAANMAcOba1BlAAAAAElFTkSuQmCC";
var lightGray = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXY7h4+cp/AAhpA3h+ANDKAAAAAElFTkSuQmCC";
var mediumGray = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsQAAA7EAZUrDhsAAAANSURBVBhXY5g8dcZ/AAY/AsAlWFQ+AAAAAElFTkSuQmCC";

// Play the Peek animation
function peekTile(tile1, tile2) {
    // Create peek animation
    var peekAnimation = WinJS.UI.Animation.createPeekAnimation([tile1, tile2]);

    // Reposition tiles to their desired post-animation position
    tile1.style.top = "-250px";
    tile2.style.top = "0px";

    // Execute animation
    peekAnimation.execute();
}

function changeImage() {
    // Get the two image elements
    var images = document.querySelector(".item-image");
    var imagesNew = document.querySelector(".item-image-new");

    // Swap out the old image source and choose the new image source
    images.src = imagesNew.src;
    if (images.src == lightGray)
        imagesNew.src = mediumGray;
    else if (images.src == mediumGray)
        imagesNew.src = darkGray;
    else
        imagesNew.src = lightGray;

    // Reset the elements for the pre-animation position and trigger the animation
    images.style.top = "0px";
    imagesNew.style.top = "250px";
    peekTile(images, imagesNew);
};

和interval,用于更改图像(它写在ready函数中):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
setInterval(function () { changeImage() }, 4000);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-07 12:15:17

当您调用document.querySelector时,它将只返回第一个匹配的元素,在本例中,它将是第一个列表项。如果你想让任何随机的项目具有动画效果,只需调用document.querySelectorAll(".item"),从结果列表中选择一个随机项目,然后对其调用querySelector('.item-image'),就像你现在所做的那样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16397990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文