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

前言:哈喽,大家好,今天给大家分享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.mzph.cn/pingmian/50783.shtml

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

相关文章

前端练习<HtmlCSS>——照片墙(附完整代码及实现效果)

这个小练习也来源于b站up小K师兄&#xff0c;大家可以通过下面的链接学习哦~up讲的非常详细。 纯CSS写一个简单酷炫的照片墙效果&#xff5e; 先看一下这个照片墙的效果&#xff1a; 1.鼠标没有放到图片上时&#xff0c;照片同比例&#xff0c;每张照片都有倒影的效果。 2.然…

生成式AI和LLM的革命:Transformer架构

近年来&#xff0c;随着一篇名为“Attention is All You Need”论文的出现&#xff0c;自然语言处理&#xff08;NLP&#xff09;领域经历了一场巨大的变革。2017年&#xff0c;在谷歌和多伦多大学发表了这篇论文后&#xff0c;Transformer架构出现了。这一架构不仅显著提升了N…

Spring RestTemplate:简化HTTP请求的利器

在现代Web开发中&#xff0c;HTTP请求是与外部服务交互的主要方式之一。Spring框架提供的RestTemplate工具&#xff0c;大大简化了HTTP请求的发送和处理过程&#xff0c;让开发者可以更加专注于业务逻辑的实现。本文将带你了解RestTemplate的基本用法及其在实际项目中的配置方法…

【BUG】已解决:ERROR: Failed building wheel for jupyter-nbextensions-configurator

ERROR: Failed building wheel for jupyter-nbextensions-configurator 目录 ERROR: Failed building wheel for jupyter-nbextensions-configurator 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我…

第 3 章 数据和 C

目录 3.1 示例程序 3.1.1 程序中的新元素 3.2 变量与常量数据 3.3 数据: 数据类型关键字 3.3.1 整数和浮点数 3.3.2 整数 3.3.3 浮点数 3.4 C 语言基本数据类型 3.4.1 int 类型 1. 声明 int 变量 2. 初始化变量 3. int 类型常量 4. 打印 int 值 5. 八进制和十六进…

测试面试中遇到的python题目

1、九九乘法表 #九九乘法表 for i in range(1, 10): #range函数是左开右闭for j in range(1, i1):result j * iprint(%d*%d%d%(j,i,result), end" ") #print打印会默认换行&#xff0c;end 意思是末尾不换行,加空格print() #换行2、100-10000之间&#x…

Linux I2C驱动程序

Linux I2C驱动 前言 主要目的记录一下我在野火的i.MX6ULL mini开发板上面编写了一个Linux I2C设备驱动去驱动SSD1306 OLED屏幕的开发过程。源码用的是野火提供的内核源码。 SSD1306 OLED和I2C接口 这块OLED屏幕大家应该都比较熟悉了&#xff0c;小巧迷你&#xff0c;DIY很好…

习题2.24

没啥好说&#xff0c; 先看解释器给出的结果 说起来也简单&#xff0c;这是一个多层的列表&#xff0c;第一个元素是1 第二个元素是&#xff08;2 &#xff08; 3 4&#xff09;&#xff09; 第二层第一个是2 第二个是 &#xff08;3 4&#xff09; 第三层第一个是 3 第二个…

项目中自定义python异常类

作为一个初学者 &#xff0c;在github上看到一个项目中异常文件&#xff0c;我也不知道当时为什么这么写&#xff0c;越来越觉得写得是不是有问题&#xff0c;所以我先写一遍我认为是对的&#xff0c;在看一下那个项目怎么写的以及我为什么 认为有问题 首先定义异常基类 cla…

stm32入门-----ADC模数转换器(理论篇——上)

目录 前言 一、ADC模数转换器 1.简介 2.ADC的结构 3.输入通道 4.转换模式 5.触发控制 6.数据对齐 7.转换时间 8.校准 前言 本期就开始学习ADC模数转换器&#xff0c;这个大家在学习51单片机的时候应该就接触过了&#xff0c;实际上就是把模拟电压转换为…

YOLOv5改进 | 卷积模块 | 即插即用的递归门控卷积gnConv

秋招面试专栏推荐 &#xff1a;深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 &#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 专栏目录&#xff1a; 《YOLOv5入门 改…

认识到自己的无知,需要一定的智慧

知识本是补药&#xff0c;却被变成毒药——“新无知”的三种表现 今天&#xff0c;一个人如果把评书、演义、宫廷剧当作真实历史&#xff0c;把当年从教科书上学来的过时理论当做“观世界”的金科玉律&#xff0c;并以此嘲笑别人“无知”的&#xff0c;属于典型的“新古人”—…

线程的同步和优先级

文章目录 前言一、优先级和同步各是什么&#xff1f;二、使用方法 1.线程的优先级2.线程的同步总结 前言 线程不仅可以实现代码的单线程运行和并发运行&#xff0c;在线程安全的情况下&#xff0c;还可以实现共同处理相同的系统资源。该篇文章还介绍了开发者如何设置线程运行的…

UniApp 打包项目为桌面端 exe 文件

引言 随着跨平台开发的需求日益增长&#xff0c;UniApp 成为了开发者们的首选之一。通过 UniApp&#xff0c;你可以使用 Vue.js 的语法结构和组件系统来构建原生应用、Web 应用甚至是桌面应用。本文将详细介绍如何使用 UniApp 将你的项目打包成 Windows 桌面端的 exe 文件。 …

【数据结构】单链表带头双向循环链表的实现

一、链表的概念及结构 1.链表的概念 概念&#xff1a;链表是一种物理存储结构上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 2.链表的结构 一般讲的链表包括数据域和指针域&#xff1a; 二、链表的种类 实际中链表的结构…

【HashMap源码学习】

HashMap的底层结构 HashMap是基于分离链表法解决散列冲突的动态散列表。 1、在jdk7中&#xff0c;使用的是“数组 链表”&#xff0c;发生散列冲突的时候键值对会用头插法添加到单链表中&#xff1b; 2、在jdk8中&#xff0c;使用的是“数组 链表 红黑树”&#xff0c;发…

【Python】成功解决: [Errno 24] Too many open files

【Python】成功解决: [Errno 24] Too many open files 在Python编程中&#xff0c;遇到[Errno 24] Too many open files错误是一个常见的系统资源限制问题。这个错误表明你的程序尝试打开的文件数量超过了操作系统允许的最大文件描述符数量。在Linux和Unix系统中&#xff0c;每…

昇思25天学习打卡营第1天|简单深度学习

前言 昇思MindSpore是一个全场景深度学习框架&#xff0c;旨在实现易开发、高效执行、全场景统一部署三大目标。 其中&#xff0c;易开发表现为API友好、调试难度低&#xff1b;高效执行包括计算效率、数据预处理效率和分布式训练效率&#xff1b;全场景则指框架同时支持云、边…

从 Pandas 到 Polars 三十八:Polars 的“瘦身”功能

Polars 有一个内置工具来进行 dtype 瘦身。调用 shrink_dtype 表达式&#xff0c;它会根据列中的数据将列转换为需要最少内存量的 dtype。 shrink_dtype 是 Polars 中一个非常有用的函数&#xff0c;它用于优化 DataFrame 中列的数据类型&#xff0c;以减小内存占用并可能提高…

react子组件向父组件传参

在React中&#xff0c;子组件向父组件传参&#xff08;或称为“通信”&#xff09;通常通过事件回调的方式实现。父组件向子组件传递一个函数作为props&#xff0c;子组件在需要时调用这个函数&#xff0c;并可以通过参数的形式向父组件传递数据。 下面是一个简单的例子来说明…