html+css+js 实现马赛克背景按钮

news2024/9/21 12:36:12

前言:哈喽,大家好,今天给大家分享html+css 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕

支持一下

文章目录

  • 效果
  • 原理解析
    • 上代码,可以直接复制使用
      • 目录
      • html
      • css

效果

马赛克效果

原理解析

1.给每一个按钮的back层添加span元素作为背景
2.span元素的数量是let count = 25 * parseInt(back.clientHeight / height);
马赛克
3.当hover时,span和p发生变化。
当hover时span和p发生变化

4.具体的变换参数,直接看代码,可以一键复制,查看效果

上代码,可以直接复制使用

目录

马赛克目录

html

<!DOCTYPE html>
<html>

<head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">

    <title>html+css+js 实现马赛克背景按钮</title>
    <link rel="stylesheet" href="./style.css">
</head>

<body>
<div class="container">
    <h1 style="text-align: center;color:#fff;margin-bottom: 50px;padding-top: 50px">html+css+js 实现马赛克背景按钮</h1>

    <div class="wrapper">
        <div class="button">
            <div class="back" style="--c:#e74c3c;"></div>
            <p>求点赞</p>
        </div>
        <div class="button">
            <div class="back" style="--c:#2ecc71;"></div>
            <p>求关注</p>
        </div>
        <div class="button">
            <div class="back" style="--c:#3498db;"></div>
            <p>求收藏</p>
        </div>
        <div class="button">
            <div class="back" style="--c:#9b59b6;"></div>
            <p>求转发</p>
        </div>
    </div>

</div>

<script>
  // 获取所有的.back层
  let backs = document.getElementsByClassName('back');
  // 遍历所有的.back层,并添加span元素作为背景
  for (let i = 0; i < backs.length; i++) {
    // 当前的.back层
    let back = backs[i];
    // 马赛克块宽高尺寸采用.back层的1/25宽度
    let width = back.clientWidth / 25;
    let height = width;

    // 计算所需的背景块数量
    let count = 25 * parseInt(back.clientHeight / height);
    for (let j = 0; j < count; j++) {
      // 根据计算结果并添加对应数量的span元素
      let span = document.createElement('span');
      span.style.width = width + 'px';
      span.style.height = width + 'px';
      // 设置动画过渡:时长 线性 动画延迟
      span.style.transition = '0.2s linear ' + Math.random() / 2 + 's';
      // 追加元素
      back.appendChild(span);
    }
  }
</script>
</body>

</html>

css

*{
    /* 初始化 */
    margin: 0;
    padding: 0;
}
.container{
    /* 100%窗口高度 */
    height: 100vh;
    /* 弹性布局 水平+垂直居中 */

    /* 渐变背景 */
    background: linear-gradient(200deg,#485563,#29323c);
}
.wrapper{
    width: 254px;
    margin: 0 auto;
}
.button{
    width: 250px;
    height: 80px;
    border: 2px solid #fff;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 10px;
    margin: 15px 0;
    cursor: pointer;
    /* 溢出隐藏 */
    overflow: hidden;
    /* 相对定位 */
    position: relative;
}
.button p{
    font-size: 22px;
    font-weight: bold;
    /* 绝对定位 */
    position: absolute;
    /* 动画过渡 */
    transition: 1s;
}
.button .back{
    width: 100%;
    height: 100%;
    position: absolute;
}
.button .back span{
    background-color: #fff;
    display: block;
    float: left;
}
.button:hover div span{
    /* 通过var函数调用自定义属性--c,设置背景颜色 */
    background-color: var(--c);
}
.button:hover p{
    color: #fff;
}

到此这篇文章就介绍到这了,更多精彩内容请关注本人以前的文章或继续浏览下面的文章,创作不易,如果能帮助到大家,希望大家多多支持宝码香车~💕

整理不易,点赞关注宝码香车

更多专栏订阅推荐:
👍 html+css+js 绚丽效果
💕 vue
✈️ Electron
⭐️ js
📝 字符串
✍️ 时间对象(Date())操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1953201.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

python爬虫-事件触发机制

今天想爬取一些政策&#xff0c;从政策服务 (smejs.cn) 这个网址爬取&#xff0c;html源码找不到链接地址&#xff0c;通过浏览器的开发者工具&#xff0c;点击以下红框 分析预览可知想要的链接地址的id有了&#xff0c;进行地址拼接就行 点击标头可以看到请求后端服务器的api地…

女人内裤怎么洗才是最干净?内衣裤洗衣机怎么样?哪个牌子更好?

最近刚好用到一款比较好用的洗内衣裤洗衣机&#xff01;如果你也和我一样有洗内衣裤烦恼的&#xff0c;或者可以看看&#xff01; 内衣裤作为贴身穿的衣服&#xff0c;我是不会把它和外衣一起清洗的&#xff0c;而家里面的大洗衣机已经担起了清洗外衣的工作&#xff01; 朋友们…

React Router-v6.25.1

以下例子是根据vitereactts构建的&#xff0c;使用路由前先安装好这些环境&#xff01;&#xff01;&#xff01;&#xff01; 1、路由的简单使用 首先要创建一个浏览器路由器并配置我们的第一个路由。这将为我们的 Web 应用启用客户端路由。 该main.jsx文件是入口点。打开它…

【杰理蓝牙开发】AC695x 音频部分

本文主要记录 杰理蓝牙audio接口的使用&#xff0c;包括ADC和DAC原理的介绍和API接口的使用。 【杰理蓝牙开发】AC695x 音频部分 0. 个人简介 && 授权须知1. ADC【音频数据采集】硬件部分1.1 单片机引脚1.2 硬件电路设计1.3 MIC 输入通路解释 2. 【DAC】音频信号编解码…

GLSL教程 第9章:计算着色器

目录 9.1 计算着色器的基本概念 计算着色器的主要特点&#xff1a; 9.2 计算着色器的基础知识 1. 创建计算着色器 计算着色器代码&#xff1a; 2. 编译和链接计算着色器 示例代码&#xff1a; 3. 执行计算着色器 示例代码&#xff1a; 9.3 实现并行计算和数据并行处理…

51单片机-第五节-串口通信

1.什么是串口&#xff1f; 串口是通讯接口&#xff0c;实现两个设备的互相通信。 单片机自带UART&#xff0c;其中引脚有TXD发送端&#xff0c;RXD接收端。且电平标准为TTL&#xff08;5V为1,0V为0&#xff09;。 2.常见电平标准&#xff1a; &#xff08;1&#xff09;TTL电…

Mysql中如何实现两列的值互换?给你提供些思路。

文章目录 Mysql中如何实现两列的值互换1、第一感觉此sql应该能处理问题了2、需要一个地方存要替换的值&#xff0c;不然两列搞不定。2.1 加第三列&#xff1f;&#xff08;能解决&#xff0c;但是看起来呆呆&#xff09;2.2 上临时表&#xff08;搞点弯路走走&#xff09; 示例…

C语言画蜡烛图

GPT-4o (OpenAI) 在C语言中&#xff0c;绘制蜡烛图&#xff08;Candlestick Chart&#xff09;不是直接的任务&#xff0c;因为C语言本身不包含高级图形绘制库。然而&#xff0c;可以通过某些图形库来完成这项任务&#xff0c;例如使用GTK、SDL、OpenGL等。 以下是通过GTK库绘…

【iOS】—— retain\release实现原理和属性关键字

【iOS】—— retain\release实现原理和属性关键字 1. retain\reelase实现原理1.1 retain实现原理1.2 release实现原理 2. 属性关键字2.1 属性关键字的分类2.2 内存管理关键字2.2.1 weak2.2.2 assgin2.3.3 strong和copy 2.4 线程安全的关键字2.5 修饰变量的关键字2.5.1常量const…

北京率先建设AI原生城市,力争明年推出百个优秀行业大模型产品

7月26日&#xff0c;《北京市推动“人工智能”行动计划&#xff08;2024-2025年&#xff09;》&#xff08;简称《行动计划》&#xff09;正式向社会发布&#xff0c;新京报记者在北京市发展和改革委员会举行的新闻发布会上获悉&#xff0c;北京将率先建设AI原生城市&#xff0…

基于JSP的班级同学录网站

你好呀&#xff0c;我是计算机学姐码农小野&#xff01;如果有相关需求&#xff0c;可以私信联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSPB/S架构 工具&#xff1a;Eclipse、Mysql 系统展示 首页 管理员功能界面 用户功能界面 论坛管…

ubuntu上部署vue项目到ngixn中+SpringBoot项目+postgresql数据库

文章目录 前提1.Ubuntu上安装ngix2.部署Vue项目2.1上传vue项目2.2.配置 3.Ubuntu上安装Postgres4.部署springboot项目 前提 记一次在ubuntu部署前端vue和后端springboot项目&#xff0c;以及数据库postgresql的安装以及启动、停止等常用的命令。 1.Ubuntu上安装ngix 1、检查…

探索 Python 的色彩世界:Colorama 库深度解析

文章目录 &#x1f308; 探索 Python 的色彩世界&#xff1a;Colorama 库深度解析背景&#xff1a;为何选择 Colorama&#xff1f;Colorama 是什么&#xff1f;如何安装 Colorama&#xff1f;简单库函数使用方法场景应用示例常见问题及解决方案总结 &#x1f308; 探索 Python …

Gartner发布2024年零信任网络技术成熟度曲线:20项零信任相关的前沿和趋势性技术

大多数组织都制定了零信任信息安全策略&#xff0c;而网络是零信任实施领域的顶级技术。此技术成熟度曲线可以帮助安全和风险管理领导者确定合适的技术&#xff0c;以将零信任原则嵌入其网络中。 战略规划假设 到 2026 年&#xff0c;15% 的企业将在企业拥有的局域网上用 ZTNA …

HarmonyOS 质量、测试、上架速浏

1.应用质量要求&#xff1a; 1. 应用体验质量建议: 功能数据完备 功能完备 数据完备 基础体验要求 基础约束 兼容性 稳定性 性能 功耗 安全…

Yolov5-v7.0使用CBAM注意力机制记录

Yolov5-v7.0使用CBAM注意力机制记录 一、CBAM实现代码 在model/common.py文件中加入如下代码&#xff1a; #############CBAM注意力机制############## class ChannelAttention(nn.Module):def __init__(self, in_planes, ratio16):super(ChannelAttention, self).__init__(…

【Windows】激活补丁被误删,怎么办?如何关闭Windows11安全中心中的“病毒和威胁保护”!

按下“win&#xff08;徽标键&#xff09;i”快捷键&#xff0c;选择隐私与安全性-Windows安全中心。 选择防火墙和网络保护-域保护。 将开关闭&#xff0c;专业网络和公用网络防火墙也同样关闭&#xff0c;如下图所示&#xff1a; 关闭防火墙后&#xff0c;左边菜单…

改进向量搜索-使用PostgresML和LlamaIndex重新排名

改进向量搜索-使用PostgresML和LlamaIndex重新排名 搜索和重新排名&#xff1a;提高结果相关性 搜索系统通常采用两种主要方法&#xff1a;关键字和语义。关键字搜索将精确的查询词与索引数据库内容匹配&#xff0c;而语义搜索使用 NLP 和机器学习来理解查询上下文和意图。许多…

【踩坑系列-Docker】基于Alibaba Cloud Linux3基础镜像安装Nginx

Author&#xff1a;赵志乾 Date&#xff1a;2024-07-26 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 问题描述 使用Alibaba Cloud Linux3作为基础镜像&#xff0c;在其上安装Nginx&#xff0c;对应的Dockerfile内容如下&#xff1a; …