「CSS畅想」我的发呆专属,反复解锁手机屏幕

简介: 前端玩转CSS,可以创造出不少有趣的效果。今天实现了一个解锁手机屏幕的效果,简单的快乐。

前言

晚上加班赶工,等走出公司大门,已是漫天繁星。坐上回家的公交,困顿之意袭来。

大脑开始放空,意识开始飘散,感觉这条回家的路变得非常漫长。下意识的解锁手机查看时间,然后情不自禁的被屏保图片吸引,我的屏保图片是我向往的草原。

于是,我开始玩起了反复解锁查看屏保的小游戏。也逐渐发现一些平时没有注意到的,手机的功能细节。

日期的展示、指纹解锁的动效、解锁之后应用上移的效果,好像都能用CSS实现。事情开始变得有趣了,灵感来了,我怎么能轻易放走,当然是打开IDEA实现它。


在线预览

在线预览平台,可查看完整代码,并体验效果。


一张向往的图片

天似穹庐,笼盖四野。

天苍苍,野茫茫。风吹草低见牛羊。

心中的向往,打工的动力,理想的生活。

整体效果

完整代码已经在线代码预览的平台上。

https://code.juejin.cn/pen/7122117149866328077

功能设计

按钮可操作性

根据手机操作实验,不难发现按钮可操作性跟当前屏幕状态有关。

操作

屏幕熄灭

屏幕点亮

主屏幕

息屏

亮屏

解锁

功能实现

息屏

  • 前置摄像头是一致都存在的,又一个可爱的小圆点和圆环组成;
  • 息屏之后,可以进行亮屏操作,不可以进行解锁操作。
// 熄灭屏幕functionrestShow() {
if (restFlag) {
screenLight.style.display='none';
fingerprint.style.display='none';
screenBlock.style.display='block';
lightContent.style.display='none';
lightFlag=true;
unlockFlag=false;
restFlag=false;
  }
}

亮屏

  • 屏幕点亮之后,手机界面展示日期和海洋球。
  • 可以进行息屏操作,也可以进行解锁操作。
// 点亮屏幕functionlightShow() {
if (lightFlag) {
screenLight.style.display='block';
fingerprint.style.display='block';
screenBlock.style.display='none';
lightDate.style.display='block';
initNowDate();
lightFlag=false;
unlockFlag=true;
restFlag=true;
  }
}

展示日期

  • 第一行是当前星期;
  • 第二行是当前时分;
  • 第三行是当前月日;

均可通过Date对象中获取,简单列一下

getMonth():从 Date 对象返回月份 (0 ~ 11)。所以实际展示的时候需要进行+1。

getDate():从 Date 对象返回一个月中的某一天 (1 ~ 31)。

getHours():返回 Date 对象的小时 (0 ~ 23)。

getMinutes():返回 Date 对象的分钟 (0 ~ 59)。

getDay():从 Date 对象返回一周中的某一天 (0 ~ 6)。对应的是周日、周一至周六。

初始化日期信息

// 初始化日期信息functioninitNowDate() {
varnow=newDate();
varmonth=now.getMonth() +1;
varday=now.getDate();
varhour=now.getHours();
varminutes=now.getMinutes();
varweekList= ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
varweek=weekList[now.getDay()];
if (hour>=0&&hour<=9) {
hour='0'+hour;
  }
if (minutes>=0&&minutes<=9) {
minutes='0'+minutes;
  }
vartimeStr=hour+':'+minutes;
vardayStr=month+'月'+day+'日';
lightWeek.innerHTML=week;
lightDay.innerHTML=dayStr;
lightTime.innerHTML=timeStr;
}

磨砂海洋球

常见的指纹解锁,一般通过svg实现,我的svg功底一般,所以我变通了一下,改成了磨砂海洋球。

  • 依靠磨砂效果,海洋球有了立体感。
  • 而磨砂的实现,使用的是CSS3 filter(滤镜) 属性。
.circular .liquid1 {
background: #2984d4;transform: translate(0, 40px) translateZ(0);
animation: liquid16slinearinfinite;
-webkit-filter: blur(13px);
filter: blur(13px);
}
.circular .liquid2 {
background: #e18554;transform: translate(2px, 8px) translateZ(0);
animation: liquid26slinearinfinite;
-webkit-filter: blur(11px);
filter: blur(11px);
}
.circular .liquid3 {
background: #2984d4;transform: translate(-12px, 0) translateZ(0);
animation: liquid36slinearinfinite;
-webkit-filter: blur(13px);
filter: blur(13px);
}
@keyframesliquid1 {
33% {
transform: translate(40px, 8px) translateZ(0);
  }
66% {
transform: translate(0, 0) translateZ(0);
  }
}
@keyframesliquid2 {
33% {
transform: translate(40px, 30px) translateZ(0);
  }
66% {
transform: translate(0, -10px) translateZ(0);
  }
}
@keyframesliquid3 {
33% {
transform: translate(50px, 50px) translateZ(0);
  }
66% {
transform: translate(-10px, 50px) translateZ(0);
  }
}

解锁

  • 解锁之后,主屏幕内容会有一个向上移动的效果,借助的是经典的animation动画。
  • 此时,只能进行息屏操作,不用再重复亮屏操作。
// 解锁屏幕functionunlockShow() {
if (unlockFlag) {
fingerprint.style.display='none';
lightDate.style.display='none';
lightContent.style.display='block';
lightFlag=false;
unlockFlag=false;
restFlag=true;
  }
}

总结

想去五台山,祈福一下平安喜乐,感受一下仿佛伸手就能触碰到底云朵,眺望一下远方的草原和牛羊。

但是眼下,只能合上手机,睡一觉,梦里应该什么都有。

目录
相关文章
|
3月前
|
人工智能 自动驾驶 机器人
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
过去22个月,AI发展速度超过任何历史时期,但我们依然还处于AGI变革的早期。生成式AI最大的想象力,绝不是在手机屏幕上做一两个新的超级app,而是接管数字世界,改变物理世界。
1809 72
吴泳铭:AI最大的想象力不在手机屏幕,而是改变物理世界
|
3月前
|
编解码 异构计算
无影云电脑产品使用黑神话悟空之是否可以想主播们玩的那样手机屏幕上有虚拟按键
这段内容主要讨论了无影云电脑在使用过程中遇到的五个问题及其解答,包括是否能在手机屏幕上显示虚拟按键、解决服务器网络异常导致的连接问题、处理活动前购买的云电脑无法开启电竞模式的情况、解决游戏崩溃问题,以及处理打开游戏时报错的问题。文中提供了详细的解决步骤和参考链接。
|
7月前
|
编解码 人工智能 自然语言处理
让大模型理解手机屏幕,苹果多模态Ferret-UI用自然语言操控手机
【5月更文挑战第29天】苹果推出Ferret-UI,一个结合图像识别和自然语言处理的多模态大语言模型,允许用户通过自然语言指令操控手机。该系统能适应不同屏幕布局,识别UI元素并执行相应操作,有望变革手机交互方式,提升无障碍体验,并在测试和开发中发挥作用。但需面对屏幕多样性及准确性挑战。[论文链接](https://arxiv.org/pdf/2404.05719.pdf)
174 3
|
7月前
|
编解码 移动开发 安全
如何让你的APP变小及手机各屏幕尺寸
如何让你的APP变小及手机各屏幕尺寸
137 0
为什么香肠能激活手机屏幕,手套不能
这是一个简单的科普文章 2010年 韩国经历了一个特别寒冷的冬天,人们戴着手套时 无法启动智能手机
|
API Android开发
Android 中获取手机屏幕的宽度和高度(单位为像素)
Android 中获取手机屏幕的宽度和高度(单位为像素)
351 0
|
Android开发
Android实现手机和电脑屏幕共享
Android实现手机和电脑屏幕共享
|
Windows
【电脑控制手机屏幕】windows11、10自带投屏功能,三步解决
想用电脑控制手机,但是下载第三方软件好麻烦,只需三步骤即可使用windows系统自带投屏插件实现投屏功能
1379 0
|
小程序
如何让你的小游戏适配不同尺寸的手机屏幕
本文主要内容:教你如何对游戏中的 UI,背景以及内容进行不同尺寸屏幕的适配,让你的小游戏在各种尺寸的屏幕上,都展示出最好的一面。 如果你没有任何的游戏开发经验,欢迎观看我的“人人都能做游戏”系列视频教程,它会手把手的教你做出自己的第一个小游戏。
450 0