首页 > 其他分享 >[CSS] View Transition

[CSS] View Transition

时间:2024-08-20 14:26:27浏览次数:11  
标签:both Transition image transition View root page CSS view

/* View Transitions */

/* STEP 1 */


::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 1s;
}


/* STEP 2 */


@keyframes fade-in {
    from { opacity: 0; }
  }
  
  @keyframes fade-out {
    to { opacity: 0; }
  }
  
  @keyframes slide-from-right {
    from { transform: translateX(60px); }
  }
  
  @keyframes slide-to-left {
    to { transform: translateX(-60px); }
  }
  
  ::view-transition-old(root) {
    animation: 90ms cubic-bezier(0.4, 0, 1, 1) both fade-out,
      300ms cubic-bezier(0.4, 0, 0.2, 1) both slide-to-left;
  }
  
  ::view-transition-new(root) {
    animation: 210ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in,
      300ms cubic-bezier(0.4, 0, 0.2, 1) both slide-from-right;
  }

/* STEP 3 */

body>header {
    // this allow header escape root view transition
    view-transition-name: main-header;    
}

/* STEP 4 */
details-page::part(image) {
    width: 120%;
    margin-left: -10%;
}

::view-transition-new(image) {
    animation: 210ms cubic-bezier(0, 0, 0.2, 1) 90ms both fade-in
}

 

Let's say we have a ProductList page and DetailPage... and we will display same image in both page, we want to apply view transition on the image.

ProducList page:

    // add view transition control
    // the viewTransitionName for product list page should match the viewTransitionName for product detail page
    this.querySelector("img").style.viewTransitionName = `image-${product.id}`;

Detail Page:

      this.root.querySelector(
        "img"
      ).style.viewTransitionName = `image-${this.product.id}`;

 

Code: https://github.com/zhentian-wan/webapp-patterns-projects/blob/main/CoffeeMasters/final/styles.css

标签:both,Transition,image,transition,View,root,page,CSS,view
From: https://www.cnblogs.com/Answer1215/p/18369385

相关文章

  • CSS学习笔记
    CSS(CascadingStyleSheet)层叠级联样式表CSS:表现(美化网页)字体、颜色、边距、高度、宽度、背景图片、网页定位、网页浮动……建议HTML和CSS分开写 CSS的优势:内容和表现分离网页结构表现统一,可以实现复用样式十分丰富建议使用独立HTML的CSS文件利用SEO,容易被搜索引擎收......
  • 前端必知必会-CSS 布局overflow属性
    文章目录CSS布局-溢出overflow:visibleoverflow:hiddenoverflow:scrolloverflow:autooverflow-x和overflow-y总结CSS布局-溢出overflow属性指定当元素内容太大而无法容纳在指定区域时是否剪切内容或添加滚动条。overflow属性具有以下值:visible-......
  • 前端必知必会-CSS布局-z-index属性
    文章目录CSS布局-z-index属性无z-index总结CSS布局-z-index属性z-index属性指定元素的堆叠顺序。z-index属性指定元素的堆叠顺序(哪个元素应放置在其他元素的前面或后面)。元素可以具有正或负的堆叠顺序:这是一个标题由于图像的z-index为-1,因此它将......
  • 12个纯css loading效果,值得收藏
    实际体验效果与源码地址效果一源码<style>.spinner{width:40px;height:40px;background-color:#a855f7;margin:100pxauto;-webkit-animation:sk-rotateplane1.2sinfiniteease-in-out;animation:sk-rotateplane1.2sinfiniteease-in-ou......
  • Android开发 - HorizontalScrollView 类水平滚动超长视图使用解析
    基本概念HorizontalScrollView是一个容器,它允许包含的内容在水平方向上滚动。如果你有一块内容(比如一张宽大的图片或一个长长的水平列表),HorizontalScrollView能让用户通过左右滑动来查看超出屏幕的部分基本使用在布局文件(如activity_main.xml)中定义一个HorizontalScrol......
  • HTML5+CSS3学习笔记补充——移动端网页+Bootstrap框架
    移动端网页和Bootstrap框架1.视口:用来约束HTML尺寸<!--视口标签是HTML骨架默认生成的设置网页宽度与逻辑分辨率(即设备)宽度一致--><metaname="viewport"content="width=device-width,initial-scale=1.0">2.二倍图:防止设计稿图片在高分辨率屏幕下模糊失真3.......
  • CSS3第三天(盒子模型+浮动)
    盒子模型1.内边距padding指定了高宽,再指定内边距,则会撑开盒子。盒子未指定高宽(继承算未指定),则不会撑开盒子。2.外边距margin用于控制盒子之间的距离。同padding的简写方式。margin-left左外边距righttopbottom块级盒子水平居中,需满足两个条件:①盒子必须指定了宽度②盒......
  • Winform(Devexpress)中实现GridView(GridControl)没有数据时,表格显示图片
    1.问题描述:在GridView中当数据源为空或者没有数据时,Grid表格下的画布显示图片;当然要使用到GridView事件:事件是:CustomDrawEmptyForeground代码如下:privatevoid_GridView_CustomDrawEmptyForeground(objectsender,CustomDrawEventArgse){if(_......
  • 【团队建设】如何做好团队开发中的 CodeReview(代码评审)?
    合集-团队建设(1) 1.【团队建设】如何做好团队开发中的CodeReview(代码评审)?08-19收起  目录前言一、为什么要做二、有哪些好处三、具体怎么做3.1评审条件3.2评审重点3.3评审形式四、还可以怎么做4.1提出亮点4.2轮流评审4.2文档沉淀五、文......
  • 秒开WebView?Android性能优化全攻略
    在如今的移动应用时代,用户体验的好坏直接关系到应用的成功与否。而在众多的用户体验因素中,应用的加载速度尤其重要。特别是对于使用 WebView 加载网页的应用,如果加载速度过慢,用户往往会产生不满,从而流失。因此,实现“秒开”WebView成为了开发者必须面对的一项挑战。本文将深......