当前位置: 首页 > news >正文

前端小案例1:用css实现蒙层效果

前端小案例1:用css实现蒙层效果

我想要在react的函数组件中实现如下效果:首先dom结构中有一个slider组件用于展示当前的亮度条,如果在 flagtrue的情况下,就给当前页面上覆盖一张透明度为0.8图片。有一个按钮会切换flag的值。

import React, { useState } from 'react';
import './SliderComponent.less'; // 导入 Less 样式文件function SliderComponent() {const [flag, setFlag] = useState(true);// 根据 flag 返回覆盖图片的 JSXfunction renderOverlay() {return (<div className="overlay"><img src="overlay-image.png" alt="Overlay Image" /></div>);}// 切换 flag 的值function toggleFlag() {setFlag(!flag);}return (<div className="slider-container"><div className="slider">{/* Slider 的内容 */}</div>{flag && renderOverlay()}<button onClick={toggleFlag}>Toggle Flag</button></div>);
}export default SliderComponent;

在上述代码中,我们通过 import 语句导入名为 SliderComponent.less 的 Less 样式文件,该文件应与 Slider 组件的 JavaScript 文件在同一目录下。然后,我们在组件的根元素上使用 className 属性来应用相应的样式类。

根据你的需求,你可以在 SliderComponent.less 文件中定义样式规则,例如:

.slider-container {/* 容器样式 */
}.slider {/* Slider 样式 */
}.overlay {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.8);
}.overlay img {width: 100%;height: 100%;object-fit: cover;
}

请根据你的实际需求在 SliderComponent.less 文件中定义所需的样式规则。然后,确保在使用 Less 样式文件时正确配置了 Less 编译环境,以便在构建或运行应用程序时将 Less 样式文件编译为 CSS 并应用到对应的组件上。

更近一步:让蒙层只在局部展现

上述的样式中,图片是全局覆盖的,我只想让它覆盖住slider组件可以吗?

可以!如果你只想让图片覆盖 Slider 组件而不是整个容器,你可以将图片的父元素设置为 Slider 组件,并在样式中对其进行定位。以下是一个示例:

import React, { useState } from 'react';
import './SliderComponent.less'; // 导入 Less 样式文件function SliderComponent() {const [flag, setFlag] = useState(true);// 根据 flag 返回覆盖图片的 JSXfunction renderOverlay() {if (flag) {return (<div className="slider-overlay"><img src="overlay-image.png" alt="Overlay Image" /></div>);}return null;}// 切换 flag 的值function toggleFlag() {setFlag(!flag);}return (<div className="slider-container"><div className="slider">{/* Slider 的内容 */}{renderOverlay()}</div><button onClick={toggleFlag}>Toggle Flag</button></div>);
}export default SliderComponent;

在上述代码中,我们将图片的父元素设置为 Slider 组件,并为该父元素添加了名为 slider-overlay 的样式类。

然后,在 SliderComponent.less 文件中,你可以定义相应的样式规则,例如:

.slider-container {/* 容器样式 */
}.slider {/* Slider 样式 */position: relative;
}.slider-overlay {position: absolute;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.8);
}.slider-overlay img {width: 100%;height: 100%;object-fit: cover;
}

这样,图片将会覆盖 Slider 组件而不是整个容器。

http://www.lryc.cn/news/157642.html

相关文章:

  • RTMP流媒体服务器EasyDSS视频点播平台在不关闭防火墙的情况下平稳部署的具体步骤
  • QT中信号与槽机制的介绍,以及信号与槽连接的几种方式
  • 学习笔记——Java入门第二季
  • 计算机视觉的应用13-基于SSD模型的城市道路积水识别的应用项目
  • 【39元linux开发板-ADB远程教程】-[ADB远程终端]-幸狐Luckfox Pico-超越树莓派PICO
  • 900ES1-0100 honeywell 可减少视觉引导应用的整体开发时间
  • Openvslam
  • Windows通过RDP异地远程桌面Ubuntu【内网穿透】
  • js 基础 (ES 模块)
  • K8s 多集群实践思考和探索
  • 德国金融监管机构网站遭遇大规模DDoS攻击后“瘫痪”
  • 关于特殊时期电力行业信息中心运营思路
  • 机器人中的数值优化(八)——拟牛顿方法(上)
  • mac安装adobe需要注意的tips(含win+mac all安装包)
  • C/C++学习网址
  • Typora导出的PDF目录标题自动加编号
  • 【React】React学习:从初级到高级(二)
  • 无法将类型为“Newtonsoft.Json.Linq.JObject”的对象转换为类型“Newtonsoft.Json.Linq.JArray”解决方法
  • 从零开始,无需公网IP,搭建本地电脑上的个人博客网站并发布到公网
  • Excel VSTO开发6 -Range对象
  • LeetCode 15 三数之和
  • 车船边缘网关是如何给车辆船只定位的?
  • 详解MAC帧、ARP、DNS、ICMP协议
  • Leetcode:【169. 多数元素】
  • 好用免费的Chat GPT
  • MySQL-MHA
  • 初识Node.js与内置模块
  • NLP(1)--NLP基础与自注意力机制
  • Ubuntu 升级cuda版本与切换
  • 精讲算法的时间复杂度