css - 如何从某个网页播放CSS动画

标签 css css-animations

Web 开发相当新,所以请多多包涵。我目前有 3 个网页:Home、Portfolio 和 ContactHome 页面的背景覆盖了一半的页面; Portfolio 和 Contact 具有相同的背景,但仅占页面的四分之一。

当从 Home 移动到 PortfolioContact 时,我希望背景动画“向上”;以及从 PortfolioContact 移动到 Home 时动画“向下”的背景。 PortfolioContact 之间不应出现动画。

PortfolioContact 页面加载时,我已经成功地让背景动画“向上”,而当 Home 使用以下 CSS 加载页面:

//Home Page
body { background: #fbfbfb url("../gallery_gen/33123835311a4a19ce0578c280449a50.png") no-repeat scroll center top; 
    animation: bgSlideOut 1s ease-out;
    animation-fill-mode: forwards;
}

@keyframes bgSlideOut {
    from { background-position: 0 -370px; }
    to { background-position: 0 0; }
}



//Portfolio and Contact Pages
body { background: #fbfbfb url("../gallery_gen/33123835311a4a19ce0578c280449a50.png") no-repeat scroll center top;
    animation: bgSlideOut 1s ease-out;
    animation-fill-mode: forwards;
}

@keyframes bgSlideOut {
    from { background-position: 0 0; }
    to { background-position: 0 -370px; }
}

但是,当从 Contact 移动到 Portfolio 时,将播放 Portfolio 动画,反之亦然。有什么方法可以让动画仅在从 Home 移动到 Portfolio/Contact 时播放,反之亦然?

最佳答案

过渡 CSS 很好,但没有回答核心问题 - 这些页面如何知道是否运行过渡?他们需要知道用户“来自”哪个页面。该信息必须传递给页面。 CSS 本身并不知道浏览器历史记录。

不知道您的设置(3 个静态 HTML 页面?单页应用程序、JSP/PHP),您需要确定“主页”页面如何与这些页面进行通信 - 通过它的链接(查询字符串)、UI 逻辑跟踪同一 DOM 中的“历史”,或通过服务器上传递数据的 session 处理。

因此,无论是在页面初始化 JS 还是 JSP/PHP 层,您都可以有条件地在 body 标签上添加一个 CSS“钩子(Hook)”,例如在来自主页时应用过渡 CSS 的类,并在出现时省略该类来自其他内容页面。

关于css - 如何从某个网页播放CSS动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37147272/

相关文章:

css - 关于超链接颜色的奇怪浏览器问题(iMac 上的 Firefox 与 Safari)

c# - 自动改变字体大小

css - 以 scss 样式属性为目标的 Typescript 出现问题

javascript - 如何在特定位置启动 CSS3 动画?

CSS 背景动画仅在 block 中

html - 我可以只用 CSS 创建这个形状吗?

css - 提高 CSS3 背景位置动画的性能

html - 我的微调器旋转时如何居中 - CSS 动画

javascript - 带有按钮的 Jquery 自动 slider

html - 如何在没有 javascript 的情况下单击导航栏中的 anchor 链接并更改 div 中的内容?