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

实现弧形切角两种方式

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.lryc.cn/news/107705.html

相关文章:

  • 什么是强化学习?
  • 如何在Linux系统上安装cpolar内网穿透
  • 分布式软件架构——内容分发网络
  • 【HAL库】STM32CubeMX开发----STM32F407----LAN8720A----移植FreeModbus实现ModbusTCP
  • 11-矩阵(matrix)_方阵_对称阵_单位阵_对角阵
  • AWS多账户单点登录 IAM Identity Center(AWS SSO)
  • 实验2-3-3 求奇数分之一序列前N项和 (15 分)
  • 关于Android studio中的自动化测试脚本UiAutomator框架以及UiAutomatorViewer工具的使用——项目案例
  • OA办公自动化系统设计与实现(论文+源码)_kaic
  • ansible——playbook
  • DDS中间件设计
  • aws的EC2云服务器自己操作记录
  • 基本ACL 和高级ACL配置
  • 【uniapp 报错 Cannot read properties of null (reading ‘offsetWidth‘)解决办法】
  • 6.s081/6.1810(Fall 2022)Lab2: System calls
  • Git在VSCode中的使用
  • 【双指针_移动零_C++】
  • 【网络安全】网络安全威胁实时地图 - 2023
  • 视频过大如何压缩变小?文件压缩技巧分享
  • 组合模式(Composite)
  • grid map学习笔记3之详解grid_map_pcl库实现point cloud点云转换成grid map栅格地图
  • ebpf开发问题汇总
  • 认识 mysql 命令
  • IK(Inverse Kinematics,逆运动学)
  • Cadence 小技巧系列(持续更新)
  • 【unity】Pico VR 开发笔记(基础篇)
  • 竞争之王CEO商战课,聚百家企业在京举行
  • 【shell】获取ping的时延数据并分析网络情况及常用命令学习
  • 石子合并一章通(环形石子合并,四边形不等式,GarsiaWachs算法)(内附封面)
  • Docker快速入门笔记