实现弧形切角两种方式

news2024/10/6 10:34:53
1、css 的 radial-gradient

在这里插入图片描述

<view style="padding:30px; background: #ccc;">
  <view class="navActive"></view>
</view>
.navActive{
  width: 200px;
  height: 40px;
  background-color: #fff;
  color: rgb(0,63,136);
  position: relative;
  border-top-right-radius: 20px 50%;
  border-bottom-right-radius: 20px 50%;
  box-shadow: 3px 3px 5px #ccc;
}
.navActive::before,
.navActive::after {
  content: "";
  display: block;
  height: 16px;
  width: 16px;
  position: absolute;
  background:radial-gradient(circle at 16px 16px, transparent 16px, #fff 16px);
}
.navActive::before {
  left: 0px;
  top: -16px;
  transform: rotate(-90deg);
}
.navActive::after {
  left: 0;
  bottom:-16px;
  transform: rotate(0deg);
}

这里使用了 background:radial-gradient 来控制左边的弧度, border-top-right-radius: 20px 50%; 给长方形的边指定长度区域然后设置成圆角;唯一的缺点弧度的位置无法加阴影,以及弧的弧度不太好控制;

2、canvas

无法添加阴影;

<view style="padding:30px; background: #ccc;">
  <canvas id="canvas" type="2d" style="border: 1px solid #ccc; width: 100%; height: 1000rpx;"></canvas>
</view>
Page({
  data:{},
  onLoad() {
    this.init();
  },
  init(){
    let that = this;
    //获取 canvas 节点
    wx.createSelectorQuery()
    .select("#canvas")
    .fields({
      node:true,
      size:true
    })
    .exec((res)=>{
      let canvas = res[0].node;
      let ctx = canvas.getContext("2d");
      let dpr = wx.getSystemInfoSync().pixelRatio;
      canvas.width = res[0].width * dpr;
      canvas.height = res[0].height * dpr;
      ctx.scale(dpr, dpr);

      ctx.beginPath()
      ctx.arc(270,155,25,Math.PI*0, Math.PI*2);
      ctx.fillStyle = '#fff';
      ctx.fill();
      
      ctx.beginPath()
      ctx.fillRect(70,100,30,30); //填充一个矩形
      ctx.fillRect(70,130,200,50); //填充一个矩形
      ctx.fillRect(70,180,30,30); //填充一个矩形

      ctx.beginPath()
      ctx.fillStyle = '#ccc';
      ctx.arc(100,100,30,Math.PI*0, Math.PI*2);
      ctx.arc(100,210,30,Math.PI*0, Math.PI*2);
      
      ctx.fill();//填充颜色
    })
  }
})

目前我还没有找到更好的方式能快速精准的画出这个图形,有更好方法的麻烦留下你的建议;

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

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

相关文章

windows环境下安装elasticsearch、kibana

通过本文可以快速在windows系统上安装elasticsearch、kibana环境。 当你用Integer类型的时候&#xff0c;要非常小心&#xff0c;因为100等于100、但是200不等于200&#xff0c;当然&#xff0c;如果你会一点小花招&#xff0c;也可以让100不等于100、让200等于200。(运算符比较…

优化供应链和库存管理:PDM系统的物料控制之道

在现代制造业中&#xff0c;优化供应链和库存管理是企业实现高效运营和降低成本的重要目标。PDM系统作为一款强大的数字化工具&#xff0c;扮演着物料控制之道的角色&#xff0c;帮助企业实现优化供应链和库存管理的目标。让我们一同深入探讨&#xff0c;看看PDM系统是如何通过…

git clone 登录 github

git clone 登录 github 目录概述需求&#xff1a; 设计思路实现思路分析1.github 设置setting2.输入passwd 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result…

mac切换jdk版本

查询mac已有版本 1、打开终端&#xff0c;输入&#xff1a; /usr/libexec/java_home -V注意&#xff1a;输入命令参数区分大小写(必须是-V) 2.目前本地装有两个版本的jdk xxxxedydeMacBook-Pro-9 ~ % /usr/libexec/java_home -V Matching Java Virtual Machines (2):20.0.1 (…

Cocos Creator不规则按钮

实现该功能需要用到组件PolygonCollider2D&#xff0c;官方链接&#xff1a; https://docs.cocos.com/creator/3.4/manual/zh/physics-2d/physics-2d-collider.html 创建组件 创建一个精灵节点&#xff1a; 创建碰撞组件PolygonColider2D&#xff0c;如图 给按钮添加多边形碰…

【Axure教程】移动端二级滑动选择器

今天教大家制作移动端二级滑动选择器的原型模板&#xff0c;该原型已全国一二级省市选择器为案例&#xff0c;因为该原型用中继器做的&#xff0c;所以制作完成之后使用也很方便&#xff0c;只需修改中继器表格里的内容即可 一、效果展示 1. 拖动选择 2. 快捷选择 【原型预览…

超全整理——116道网络安全工程师面试真题(附答案),建议收藏!

随着国家对网络安全的重视度&#xff0c;促使这个职业也变得炙手可热&#xff0c;越来越多的年轻人为进入安全领域在做准备。 数以百计的面试&#xff0c;为何迟迟无法顺利入职&#xff1f;能力无疑是至关重要的&#xff0c;可却有不少能力不比已入职的同事差却应聘失败的人&a…

vite babel 获取组件的 children 代码, 填写到 jsxCode 属性中

最终效果 <DocsModule title"类型"><Button>默认按钮</Button><Button type"primary">主要按钮</Button><Button type"success">成功按钮</Button><Button type"danger">危险按钮&l…

【Jmeter】 Report Dashboard 生成html图形测试报告

目录 背景 生成图形报告的方式 1、直接使用一个已存在的 CSV文件生成 2、负载测试完成后自动生成 使用示例 报告内容详情 测试报告摘要图 响应时间随时间变化曲线 活跃线程随时间变化曲线 I/O&#xff08;Bytes&#xff09;随时间变化曲线(忽略事务控制器示例结果) …

【阻止IE强制跳转到Edge浏览器】

由于微软开始限制用户使用Internet Explorer浏览网站&#xff0c;IE浏览器打开一些网页时会自动跳转到新版Edge浏览器&#xff0c;那应该怎么禁止跳转呢&#xff1f; 1、点击电脑左下角的“搜索框”或者按一下windows键。 2、输入“internet”&#xff0c;点击【Internet选项…

促进跨部门协作:PDM系统的多用户协同编辑

在现代企业中&#xff0c;跨部门协作是推动创新和高效工作的关键。PDM系统&#xff08;Product Data Management&#xff0c;产品数据管理&#xff09;作为一款强大的数字化工具&#xff0c;提供了多用户协同编辑功能&#xff0c;有效促进了跨部门之间的协作与沟通。让我们一同…

学术简讯 | CN-Celeb-AV: 多场景视听多模态数据集发布

近日&#xff0c;清华大学语音和语言技术团队联合北京邮电大学发布了中国明星多场景音视频多模态数据集 (CN-Celeb-AV)&#xff0c;供音视频多模态身份识别 (AVPR) 等领域的研究者使用。本数据集包含来自1,136名中国明星&#xff0c;超过419,000个视频片段&#xff0c;涵盖11种…

SpringBoot搭建WebSocket初始化

1.java后端的maven添加websocket依赖 <!-- websocket依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId></dependency>2.实例化ServerEndpointExport…

[C++] 类与对象(中)类中六个默认成员函数(1)

1、类的六个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会自动生成以下6个默认成员函数。 2、构造函数 2.1 构造函数的概念 我们这里来看看日期类的初始…

ESP32 LVGL:无法显示过大的GIF图片(修改VLGL RAM缓存大小)

文章目录 问题描述&#xff1a;问题解决更改LVGL RAM缓存大小看ESP32的RAM使用情况 参考链接 问题描述&#xff1a; 使用LVGL可显示64 * 64的GIF&#xff0c;但是却无法显示120*120的GIF。 问题解决 更改LVGL RAM缓存大小 分析原因&#xff1a;在用LVGL显示GIF图片时&#…

【JavaEE】Spring Boot - 项目的创建和使用

【JavaEE】Spring Boot 开发要点总结&#xff08;1&#xff09; 文章目录 【JavaEE】Spring Boot 开发要点总结&#xff08;1&#xff09;1. Spring Boot 的优点2. Spring Boot 项目创建2.1 下载安装插件2.2 创建项目过程2.3 加载项目2.4 启动项目2.5 删除一些没用的文件 3. Sp…

安全基础 --- html标签 + 编码(01)

html标签 &#xff08;1&#xff09;detail标签 <details>标签用来折叠内容&#xff0c;浏览器会折叠显示该标签的内容。 <1> 含义&#xff1a; <details> 这是一段解释文本。 </details> 用户点击这段文本&#xff0c;折叠的文本就会展开&#x…

MFC第二十六天 CRgn类简介与开发、封装CMemoryDC类并应用开发

文章目录 CRgn类简介与开发CRgn类简介CRgn类区域管理开发CRgn类区域管理与不规则形状的选取 封装CMemoryDC类并应用开发CMemoryDC.h封装CMemoryDC开发游戏透明动画CFlashDlg.hCFlashDlg.cpp 封装CMemoryDC开发游戏动画 附录四大窗口CDC派生类 CRgn类简介与开发 CRgn类简介 CR…

Meta开源Llama 2免费大语言模型,媲美ChatGPT,可在线试玩

Llama 2是Llama 1模型的升级版本,引入了一系列预训练和微调 LLM,参数量范围从7B到70B (7B、13B、70B)。其预训练模型比 Llama 1模型有了显著改进,包括训练数据的总词元数增加了 40%、上下文长度更长 (4k 词元),以及利用了分组查询注意力机制来加速 70B模型的推理! 但最激动…

PSO粒子群优化算法

PSO粒子群优化算法 算法思想matlab代码python代码 算法思想 粒子群算法&#xff08;Particle Swarm Optimization&#xff09; 优点: 1&#xff09;原理比较简单&#xff0c;实现容易&#xff0c;参数少。 缺点: 1&#xff09;易早熟收敛至局部最优、迭代后期收敛速度慢的…