给你的网页添加一个暗黑模式(叁)

简介: 给你的网页添加一个暗黑模式(叁)

image.png


【3/10】第三个来了,这次写了一个拉绳的简单动画来开关dark mode,效果如封面所示。


在线预览链接,附源码!


目标依旧是十种方式来实现,顺便提升一下我的水平🙊


大伙见过用过其他形式的dark mode可以发一下,让我见见世面,我也可以复刻一下!


上代码!


很简单的代码,我简单解释一下🦍


🦭HTML


<h1>Mancuoj</h1>
<div id="switch"></div>
复制代码

🐬SCSS


都一样,SCSS嵌套写起来简单点儿


一些基础设置


@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@300&display=swap");
$dark-color: #111;
$light-color: #eee;
$bg-color: #4c6fff;
*,
* *,
*::before,
*::after {
  box-sizing: border-box;
}
body {
  margin: 0;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  font-family: Poppins, serif;
}
复制代码

画出开关


伪元素 ::before  可以在所选元素之前或之后添加一些内容。

必须配合 content 来使用,这个属性通常用来给元素添加内容诸如图片或者文字。

content 属性是必需的,用来实现形状时值可以是空字符串

top: -100px,我们藏起来100px长度来做动画✅


#switch {
  position: fixed;
  height: 300px;
  width: 2px;
  background: $bg_color;
  right: 30%;
  top: -100px;
  cursor: pointer;
  &::after {
    content: "";
    position: absolute;
    border: 2px solid $bg-color;
    border-radius: 50%;
    width: 22px;
    height: 22px;
    left: -10px;
    bottom: -20px;
  }
}
复制代码

写个拉绳的动画


具体可以看animation - CSS(层叠样式表) | MDN (mozilla.org)

动画就是把藏起来的100px放出来再收回去🎈


@keyframes line {
  0% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(100px);
  }
  100% {
    transform: translateY(0);
  }
}
.pull {
  animation: line 0.5s ease;
}
复制代码

dark mode


依旧是最简单的实现,只改了背景和文本的颜色,有需要可以自行添加~


.dark {
  background-color: $dark-color;
  color: $light-color;
}
复制代码

🐋JS


JS跟前两个差不多,稍微改改继续用😎

点击时加上动画,完成后再移除,需要用setTimeout()设置一个时间间隔。


const changeTheme = () => {
  const sw = document.getElementById("switch");
  sw.addEventListener("click", () => {
    sw.classList.add("pull");
    if (!document.body.classList.contains("dark")) {
      document.body.classList.add("dark");
      localStorage.setItem("css", "dark");
    } else {
      document.body.classList.remove("dark");
      localStorage.removeItem("css");
    }
    setTimeout(() => {
      sw.classList.remove("pull");
    }, 600);
  });
  if (localStorage.getItem("css")) {
    document.body.classList.add("dark");
  }
};
changeTheme();
复制代码

前两个的🔗


给你的网页添加一个暗黑模式(壹)

给你的网页添加一个暗黑模式(贰)

目录
相关文章
|
2月前
|
前端开发 JavaScript 搜索推荐
前端小白也能学会的高大上技巧:如何让你的网页支持暗黑模式?
【10月更文挑战第30天】随着现代网页设计的发展,暗黑模式已成为一种流行趋势,提升了用户的阅读体验并增强了网页的适应性。本文介绍了如何通过简单的HTML、CSS和JavaScript实现网页的暗黑模式。首先,定义两种主题的CSS样式;然后,使用JavaScript实现模式切换逻辑,并自动检测系统主题。通过这些步骤,前端小白也能轻松掌握暗黑模式的实现,提升网页的用户体验和个性化水平。
105 4
|
8月前
|
前端开发 定位技术 SEO
基于WordPress开发的高颜值的自适应主题,支持白天与黑夜模式
环境要求 WordPress >=6.0PHP >=7.4 主题特性 支持白天与暗黑模式 全局无刷新加载 支持博客、CMS、企业三种布局 内置 WP 优化策略 内置前台用户中心 支持 QQ / Github / Gitee / 微博登录 支持缩略图伪静态 全局顶部滚动公告 图形及极验验证码支持 自定义 SMTP 支持 一键全站变灰 网页压缩成一行 后台防恶意登录 内置出色的 SEO 功能 评论 ajax 加载 文章点赞、打赏、海报生成、分享 Twemoji 集成 丰富的广告位 丰富的小工具 自动百度链接提交 众多页面模板(读者墙 / 归档 / 书籍推荐 / 站点导航 / 标签 / 站点地图
79 5
新年Html动态特效祝福送给你
新年Html动态特效祝福送给你
476 0
|
前端开发 JavaScript
#yyds干货盘点# 前端歌谣的刷题之路-第一百题-控制动画
#yyds干货盘点# 前端歌谣的刷题之路-第一百题-控制动画
103 0
#yyds干货盘点# 前端歌谣的刷题之路-第一百题-控制动画
|
存储 移动开发 前端开发
给你的网页添加一个暗黑模式(贰)
给你的网页添加一个暗黑模式(贰)
207 0
给你的网页添加一个暗黑模式(贰)
给你的网页添加一个暗黑模式(壹)
给你的网页添加一个暗黑模式(壹)
114 0
给你的网页添加一个暗黑模式(壹)
|
前端开发 容器
【Web动画】科技感十足的暗黑字符雨动画
【Web动画】科技感十足的暗黑字符雨动画
717 0
|
存储 开发框架 移动开发
WebAPIs移动端特效——不看你就亏大了
WebAPIs移动端特效——不看你就亏大了
WebAPIs移动端特效——不看你就亏大了
给typecho添加社会主义核心价值观24字特效,鼠标点击出现富强,民主,文明等等12组词
给typecho添加社会主义核心价值观24字特效,鼠标点击出现富强,民主,文明等等12组词
306 0
|
Web App开发 新零售 前端开发
给网站添加暗黑模式指南
给网站添加暗黑模式是随着macOS中的暗黑模式(Dark Mode)出现之后的一个热门话题。社区中有关于这方面的讨论也很多,都在围绕着怎么给网站添加暗黑模式。今天在这篇文章再次和大家一起聊聊这个已久的话题,不同的是,这篇文章将和大家从不同的角度来聊怎么给网站添加暗黑模式。感兴趣的同学,请继续往下阅读。
给网站添加暗黑模式指南