使用 html css 和 javascript 制作太阳和月亮动画

使用 html css 和 javascript 制作太阳和月亮动画

            Day-Night Toggle                body, html {            margin: 0;            padding: 0;            height: 100vh;            display: flex;            justify-content: center;            align-items: center;            font-family: Arial, sans-serif;            transition: background 0.8s ease, filter 0.8s ease;            overflow: hidden;        }        .container {            position: absolute;            bottom: 30px;            right: 30px;            text-align: center;        }        .toggle-button {            width: 100px;            height: 50px;            background: #333;            border-radius: 25px;            position: relative;            cursor: pointer;            transition: background 0.3s ease;            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);            display: flex;            align-items: center;            justify-content: space-between;            padding: 5px;        }        .toggle-circle {            width: 40px;            height: 40px;            background: #fff;            border-radius: 50%;            position: absolute;            transition: all 0.5s ease;            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);        }        /* Icons for Sun and Moon on Button */        .button-sun, .button-moon {            font-size: 2rem;        }        .button-sun {            color: #FFD700;        }        .button-moon {            color: #B0C4DE;        }        /* Large Sun and Moon at Top Left */        .large-sun, .large-moon {            font-size: 10rem;            position: absolute;            top: 20px;            right: 10px;            transition: opacity 0.8s ease, transform 0.8s ease;        }        .large-sun {            color: #FFD700;            opacity: 0;        }        .large-moon {            color: #B0C4DE;            opacity: 0;        }        /* Day and Night styles */        .day .large-sun {            opacity: 1;            transform: translateY(0);        }        .night .large-moon {            opacity: 1;            transform: translateY(0);        }        .day .image {            filter: brightness(1.5) contrast(1.2) saturate(2);        }        .night .image {            filter: brightness(0.7) contrast(1) saturate(1);        }        .image {            position: absolute;            height: 100%;            width: 100%;        }        .moon-image {            height: 200px;            width: 200px;            filter: drop-shadow(1px 1px 20px white);        }        .sun-image {            height: 250px;            width: 300px;            filter: drop-shadow(2px 2px 40px rgb(206, 145, 23));        }        /* New styles for text */        .mode-text {            position: absolute;            top: 40%;            left: 40%;            transform: translate(-50%, -50%);            font-size: 2rem;            color: #fff;            text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.6);            transition: opacity 0.5s ease;        }        .day .mode-text {            opacity: 1;        }        .night .mode-text {            opacity: 0;        }        .night .mode-text-night {            opacity: 1;        }        @@##@@    
@@##@@
@@##@@
Good Morning! It's a beautiful day!
Good Night! Sweet dreams!
🌙
let isDay = true; function toggleDayNight() { const body = document.body; const toggleCircle = document.querySelector('.toggle-circle'); const largeSun = document.querySelector('.large-sun'); const largeMoon = document.querySelector('.large-moon'); const dayText = document.querySelector('.day-text'); const nightText = document.querySelector('.night-text'); if (isDay) { // Switch to night mode body.classList.remove('day'); body.classList.add('night'); toggleCircle.style.transform = 'translateX(60px)'; dayText.style.opacity = '0'; nightText.style.opacity = '1'; } else { // Switch to day mode body.classList.remove('night'); body.classList.add('day'); toggleCircle.style.transform = 'translateX(0)'; dayText.style.opacity = '1'; nightText.style.opacity = '0'; } isDay = !isDay; }

使用 html css 和 javascript 制作太阳和月亮动画使用 html css 和 javascript 制作太阳和月亮动画使用 html css 和 javascript 制作太阳和月亮动画

以上就是使用 html css 和 javascript 制作太阳和月亮动画的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1494653.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月19日 16:45:09
下一篇 2025年12月19日 16:45:24

相关推荐

  • 手机端如何实现固定导航栏并让下方内容可滚动?

    如何实现手机端固定导航栏,实现下拉滚动 在手机端开发中,有时候需要实现固定导航栏,但同时允许下方的内容可滚动。以下是如何使用 css 定位和滚动特性实现这一效果: 步骤 1:创建固定导航栏 在 css 中,将导航栏元素设置 position: fixed;。这将把它固定在浏览器的顶部。 .navba…

    2025年12月19日
    000
  • 如何实现豆瓣电影搜索影院悬浮框自动隐藏?

    豆瓣电影搜索影院悬浮框的实现 在浏览豆瓣电影网站时,右上角搜索影院功能呈现了 intéressante 的交互效果。点击“广州”后出现的悬浮框,在点击悬浮框以外的区域时会自动隐藏。 解决此问题的方法是为 body 元素绑定一个点击事件监听器。该事件处理程序将检查点击目标是否包含在悬浮框内。如果不是,…

    2025年12月19日
    000
  • 豆瓣电影网页影院搜索框是如何实现自动隐藏效果的?

    豆瓣电影网页影院搜索框自动隐藏效果 在豆瓣电影网页上,当用户点击“广州”显示影院列表后,点击列表之外任意区域,列表即可自动隐藏。实现这一效果的方法如下: 对于此问题,一般做法是使用 javascript 或 jquery 等框架在 body 元素上绑定一个 click 事件监听器。当点击事件触发时,…

    2025年12月19日
    000
  • JavaScript 中的生成式人工智能? Microsoft 的 GenAIScript、Svelte Nextjs 等

    欢迎来到新版“本周 JavaScript ”! 今天,我们从 Microsoft 获得了一些改变游戏规则的更新,即期待已久的 Svelte 5 版本和新的 Next.js 15 版本 – 还有更多!  微软GenAIScript 2024 年都是关于人工智能的,而 Microsoft 正…

    2025年12月19日
    000
  • 如何解决构建搜索框历史记录时遇到的失焦问题?

    做搜索框的历史记录时遇到的问题 在构建搜索框的历史记录时,您可能遇到了以下问题: 问题一: 点击历史记录项会触发输入框失焦,导致历史记录无法正常显示。问题二: 清除输入框时也会触发失焦,从而导致搜索框不符合设计要求。 解决方案: 问题一: 使用一个容器元素将输入框和历史记录列表包裹起来。添加一个“点…

    2025年12月19日
    000
  • 提高开发效率的 JavaScript 技巧

    javascript 是前端开发的重要语言,但许多开发人员可能不熟悉它的一些强大功能。这里有 10 种有价值的 javascript 技术,可以提高编码效率。 1. 使用 flatmap 进行数组操作 flatmap() 是一种多功能方法,它结合了 map() 和 flat() 的功能,将数组扁平化…

    2025年12月19日
    000
  • 如何用 CSS 定位实现手机端页面可下拉,导航栏固定不变?

    如何利用 css 定位实现手机端页面可向下拉动,导航栏固定不变 在移动端页面中,通常需要保持导航栏固定,而允许页面内容向下滚动浏览。实现此效果可以通过 css 定位来实现。 具体步骤: 将导航栏定位为固定定位 header { position: fixed; top: 0; left: 0; wi…

    2025年12月19日
    000
  • 如何实现 El-Table 数据合并,且满足特定条件下的合并规则?

    el-table 数据合并优化 问题描述 需要实现 el-table 数据合并,但遇到问题:只要有相同值就可以合并,但实际要求为: 其他列有相同值正常合并诉求类型中相同值合并时,诉求利用率也需合并以上规则在细分类型和细分利用率中也适用 优化方案 数据清洗: 标记第一次出现的值 ismerge = f…

    好文分享 2025年12月19日
    000
  • 小程序如何自动切换语言,才能兼顾精准性和适用性?

    根据小程序实现自动切换语言 对于多语言环境的小程序,如何自动切换语言是一个常见问题。 方法一:根据用户定位 这种方法基于用户定位来获取所在国家,并根据国家对应语言设置。然而,这种方法存在一定的局限性,如用户可能不会允许位置共享。 方法二:通过 wx.getsysteminfo 这是微信官方提供的 a…

    2025年12月19日
    000
  • 多语言小程序如何实现语言自动切换?

    多语言小程序切换语言方案 对于多语言小程序的语言自动切换,业界提供了两种主流方案: 一、基于用户定位获取用户所在国家 调用 wx.getsysteminfo 获取用户语言。根据用户定位获取用户所在国家。然后切换到与该国家匹配的语言环境。 二、直接通过微信自带的 wx.getsysteminfo 获取…

    2025年12月19日
    000
  • 小程序多语言环境如何自动切换?

    如何实现小程序多语言环境的自动切换 为了实现小程序的多语言环境自动切换,有两种常见的方法: 一、根据用户定位获取语言 获取用户地理位置,确定其所在国家/地区。根据国家/地区加载对应的语言环境。 二、通过微信提供的接口获取语言 调用 wx.getsysteminfo 获取用户设备语言。根据设备语言加载…

    2025年12月19日
    000
  • 如何使用 El-table 合并数据,满足诉求类型和利用率的特殊合并要求?

    el-table数据合并问题 此问题旨在解决el-table合并数据时的特殊需求。 需求说明: 当诉求类型相同且诉求利用率也相同,才能合并诉求利用率。如果诉求利用率存在相同值,但诉求类型不同,则不合并。细分类型和细分利用率的合并规则与此类似。 解决方法: 要在组件中实现此需求,需要对数据进行预处理,…

    2025年12月19日
    000
  • 如何按相邻数据对后台异步返回数据进行排序?

    如何按相邻数据对后台异步返回数据进行处理? 后端返回的数据按 staff 字段默认排序,前端希望根据 appeal_type 和 detail_appeal_type 字段对数据进行排序,以便相邻记录具有相同的字段值。 解决方法: 首先,按照 appeal_type 字段排序: list.tosor…

    2025年12月19日
    000
  • 小程序多语言环境自动切换:如何实现用户语言的精准获取和应用?

    小程序多语言环境自动切换 在开发小程序时,需要针对不同语言的用户提供不同的语言环境,以便他们更好地理解和使用小程序。那么,如何实现小程序的语言自动切换呢? 解决方案 小程序获取用户语言主要有两种方式: 根据用户定位获取用户所在国家,然后切换语言。直接通过微信提供的 wx.getsysteminfo …

    2025年12月19日
    000
  • 如何对异步获取的数据进行多字段排序?

    如何对异步获取数据进行排序处理 后端返回的数据通常按特定字段排序,但前端可能会需要根据其他字段进行重新排序,例如根据多种字段相邻排序。本问题中,需要对后端返回的员工工作数据按 appeal_type 和 detail_appeal_type 字段相邻排序。 解决方案: 首先按 appeal_type…

    2025年12月19日
    000
  • 多语言小程序中,如何实现自动语言切换?

    多语言小程序的语言切换方案 在小程序中实现多语言环境时,如何自动切换语言是一个常见问题,通常有两种常见的解决方案: 1. 根据用户定位获取用户所在国家,然后切换语言 这种方法需要通过微信提供的 api wx.getlocation 来获取用户的位置信息,然后根据位置信息确定用户的所在国家,再根据国家…

    2025年12月19日
    000
  • 使用 TypeScript 和 ioredis 在 Nodejs 中构建高性能缓存管理器

    使用基于 ioredis 构建的多功能、易于使用的缓存管理器来提升 node.js 应用程序的性能。简化缓存、优化效率并简化操作。 我根据自己的需求开发了一个基于 ioredis 的类,重点关注易用性和性能。它包括 typescript 支持,旨在实现简单使用和高效操作。它仍然可以进一步改进和优化,…

    2025年12月19日
    000
  • 如何对异步返回的数据进行多级排序?

    对异步返回的数据进行排序和处理,将相邻数据展示出来是很常见的需求。以下是如何针对你提供的案例进行处理: 后端返回的数据中,按staff默认排序,但前端需要按照appeal_type和detail_appeal_type进行排序。为了实现这一需求,我们需要使用 javascript 的sort方法进行…

    2025年12月19日
    000
  • el-table 如何合并满足特定条件的数据?

    el-table 中合并具有特殊要求的数据 问题描述:在 el-table 中合并数据时,遇到了特殊的条件:只有当诉求类型和细分类型相同的情况下,诉求利用率才参与合并。 解决方案: 要解决这个问题,需要对从接口获取到的 tabledata 数据进行数据清洗,具体步骤如下: 标记特殊数据:对于首次出现…

    2025年12月19日
    000
  • 如何实现异步获取数据的相邻数据展示排序?

    相邻数据展示处理 针对异步获取的数据,进行排序处理以达到相邻数据展示的效果时,根据指定字段(如 appeal_type 和 detail_appeal_type)进行排序即可。 代码示例 为了实现对指定字段排序,可以使用 sort() 函数,并将比较函数传递给它。示例代码如下: // 先按 appe…

    2025年12月19日
    000

发表回复

登录后才能评论
关注微信