Apple 网站的特效, iPhone SE 共有黑、白、红三种颜色,在卷动页面的时候会逐步替换,看起来效果非常时尚,在此供上代码学习。

<!DOCTYPE html>
<html>
<head>
<title>iPhone SE切换颜色特效</title> <style type="text/css">
html {
font-size: 48px; --iphone-black-bg: #000;
--iphone-black-text: #f2f2f2; --iphone-white-bg: #fff;
--iphone-white-text: #8b8b99;
--iphone-white-text-highlight: #1d1d1f; --iphone-red-bg: #960b19;
--iphone-red-text: #e57571;
--iphone-red-text-highlight: #f5f5f7; --iphone-width: 460px;
--iphone-offscreen: -720px;
} body {
margin: 0;
height: 4000px;
font-family: Helvetica;
background-color: #000;
} .sticky-container {
position: sticky;
top: 0;
width: 100%;
height: 100vh;
overflow: hidden;
} .sticky-container .iphone {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
width: 100%;
height: 100vh;
position: absolute;
top: 0;
left: 0;
} .sticky-container .iphone h3 {
font-size: 1rem;
margin: 0 0 60px 0;
width: var(--iphone-width);
} .sticky-container .iphone img {
display: block;
width: var(--iphone-width);
margin-bottom: var(--iphone-offscreen);
} .sticky-container .iphone.black {
background-color: var(--iphone-black-bg);
z-index: 10;
} .sticky-container .iphone.black h3 {
color: var(--iphone-black-text);
} .sticky-container .iphone.white {
background-color: var(--iphone-white-bg);
z-index: 20; clip-path: inset(100% 0px 0px 0px);
} .sticky-container .iphone.white h3 {
color: var(--iphone-white-text);
} .sticky-container .iphone.white h3 span {
color: var(--iphone-white-text-highlight);
} .sticky-container .iphone.red {
background-color: var(--iphone-red-bg);
z-index: 30; clip-path: inset(100% 0px 0px 0px);
} .sticky-container .iphone.red h3 {
color: var(--iphone-red-text);
} .sticky-container .iphone.red h3 span {
color: var(--iphone-red-text-highlight);
} .sticky-container.no-sticky {
position: relative;
overflow: visible;
} .sticky-container.no-sticky .iphone {
position: relative;
} .sticky-container.no-sticky .iphone.red {
padding-bottom: calc(var(--iphone-offscreen) * -1);
}
</style> <script type="text/javascript">
window.addEventListener('scroll', (e) => {
let noStickyOffset = document.documentElement.clientHeight * 2
let scrolled = document.documentElement.scrollTop / noStickyOffset let $white = document.querySelector('.white')
let $red = document.querySelector('.red') $white.style.clipPath = `inset(${((0.5 - scrolled) / 0.5) * 100}% 0px 0px 0px)`
$red.style.clipPath = `inset(${((1 - scrolled) / 0.5) * 100}% 0px 0px 0px)` if (scrolled >= 1) {
document.querySelector('.sticky-container').classList.add('no-sticky')
} else {
document.querySelector('.sticky-container').classList.remove('no-sticky')
}
})
</script> </head>
<body>
<!--
https://www.apple.com/v/iphone-se/b/images/overview/finishes_black__b06syayq94wi_medium_2x.png
https://www.apple.com/v/iphone-se/b/images/overview/finishes_white__drv9fwq9vzwy_medium_2x.png
https://www.apple.com/v/iphone-se/b/images/overview/finishes_red__eqfv1ongy282_medium_2x.png
--> <div class="sticky-container">
<div class="iphone black">
<h3>
Comes in Black.<br>
&nbsp;
</h3>
<img src="https://www.apple.com/v/iphone-se/b/images/overview/finishes_black__b06syayq94wi_medium_2x.png">
</div>
<div class="iphone white">
<h3>
Comes in Black.<br>
<span>White</span>
</h3> <img src="https://www.apple.com/v/iphone-se/b/images/overview/finishes_white__drv9fwq9vzwy_medium_2x.png">
</div>
<div class="iphone red">
<h3>
Comes in Black.<br>
White. <span>And Pow.</span>
</h3> <img src="https://www.apple.com/v/iphone-se/b/images/overview/finishes_red__eqfv1ongy282_medium_2x.png">
</div>
</div>
</body>
</html>

iPhone SE切换颜色特效的更多相关文章

  1. 编写最简单的 iPhone 界面切换应用

    编写最简单的 iPhone 界面切换应用   以下是在iOS中最简单的界面切换示例.使用了多个Controller,并演示Controller之间在切换界面时的代码处理. 实现的应用界面: 首先,创建 ...

  2. WPF如何实现类似iPhone界面切换的效果(转载)

    WPF如何实现类似iPhone界面切换的效果 (version .1) 转自:http://blog.csdn.net/fallincloud/article/details/6968764 在论坛上 ...

  3. Android的Activity切换动画特效库SwitchLayout,视图切换动画库,媲美IOS

    由于看了IOS上面很多开发者开发的APP的视图界面切换动画体验非常好,这些都是IOS自带的,但是Android的Activity等视图切换动画并没有提供原生的,所以特此写了一个可以媲美IOS视图切换动 ...

  4. easyui之自定义字体图标(鼠标覆盖时切换颜色)

    项目要求是自定义字体图标,使用easyui框架结构,众所周知easyui强功能弱样式,字体图标其实就是一张图片.要达到切换图标颜色的效果,要么就是有两套图,使用js控制.但是我这个人比较懒,不喜欢做复 ...

  5. vue点击切换颜色限制个数(用了mui框架)

    vue点击切换颜色 只能点击一个 <!doctype html> <head> <meta charset="UTF-8"> <title ...

  6. iphone 数字字段颜色兼容问题

    在iphone手机中,有些字段的颜色会自动发生变化,在head中添加如下meta即可.<meta name = "format-detection" content=&quo ...

  7. dotnet OpenXML 转换 PathFillModeValues 为颜色特效

    在 OpenXml 预设形状,有一些形状设置了 PathFillModeValues 枚举,此枚举提供了亮暗的蒙层特效.具体的特效是让形状选择一个画刷,在画刷上加上特效.如立体几何 Cube 形状,在 ...

  8. 2016苹果春季发布会 iPhone SE发布

    配置如下 主屏尺寸:4英寸 主屏分辨率:1336x640像素 后置摄像头:1200万像素 前置摄像头:120万像素 电池容量:1624mAh 核心数:双核 操作系统:iOS 9 核心数:双核 CPU: ...

  9. Android实现Activity页面跳转切换动画特效

    了解Android程序设计的人应该知道,在Android 2.0之后有了overridePendingTransition(),其中里面两个参数,一个是前一个activity的退出,另一个activi ...

随机推荐

  1. FastAPI 学习之路(一)fastapi--高性能web开发框架

    fastapi是高性能的web框架.他的主要特点是:- 快速编码- 减少人为bug- 直观- 简易- 具有交互式文档 - 高性能 - 基于API的开放标准 支持python 3.6版本. 安装 pip ...

  2. 企业级镜像仓库 harbor

    企业级镜像仓库 harbor 前言 a. 本文主要为 Docker的视频教程 笔记. b. 环境为 CentOS 7.0 云服务器 c. 上一篇:跨 Docker 宿主机网络 overlay 类型 h ...

  3. Selenium系列5-XPath路径表达式

    Xpath介绍 XPath 使用路径表达式在 XML 文档中进行导航 XPath 使用路径表达式来选取 XML 文档中的节点或者节点集.这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似. ...

  4. ARP-NAT(MAC Address Translation)的原理

    本文部分图片来自: http://wiki.deliberant.com/faq/wireless-bridge-routing-arpnat/ https://wiki.openwrt.org/do ...

  5. 解析Markdown文件生成React组件文档

    前言 最近做的项目使用了微前端框架single-spa. 对于这类微前端框架而言,通常有个utility应用,也就是公共应用,里面是各个子应用之间可以共用的一些公共组件或者方法. 对于一个团队而言,项 ...

  6. Jmeter系列(8)- 参数化:JSON提取器、全局参数化、CSV文件导入

    JSON提取器 同一个响应结果需要提取多个参数进行参数化,下方输入项用分号(;)进行间隔.请求引用时${变量名} 全局参数化 此处全局参数化用的是用户自定义的变量 CSV文件导入

  7. hadoop生态之面试题篇

    一.hdfs的高可用 1.先说下自己的理解, 正常的hdfs有namenode,datanode,secondnamenode,但是second name node 不是真正意义上的namenode备 ...

  8. 定要过python二级 选择题第四套

    1. 2. 3. 4. 5. 6. python用于人工智能 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.

  9. 【HTML】实战阿里云src页面css模仿基础学习

    实战结果页面gif图片 阿里云src首页模仿完整代码(500行左右) <!DOCTYPE html> <html> <head> <meta charset= ...

  10. netty系列之:使用netty搭建websocket服务器

    目录 简介 netty中的websocket websocket的版本 FrameDecoder和FrameEncoder WebSocketServerHandshaker WebSocketFra ...