javascript - 如何在 Javascript 中制作可拉伸的聊天气泡?
问题描述
我想在 Javascript 中制作可拉伸的气泡聊天形状。它应该具有渐变色作为背景,并且可以在形状周围添加边框。结果将是这样的:
圆形部分将是可拉伸的,三角形将保持在相同大小的中间。
我已经尝试过这些方法:
用
clipPaths
. 这里的问题是三角形没有保持相同的形状(它正在拉伸)。CSS
clip-path
。这里的问题是我没有设法使用基本形状绘制这种形状。不幸的clip-path
是,一次不支持多个clip-path
。绘制气泡
canvas
并用作背景。由于气泡应根据内部内容进行拉伸,因此问题是在内容更改大小并触发redraw
画布时获取事件。
目前,canvas
方法可能是最简单的,但也许还有一些我缺少的其他解决方案。
解决方案
您可以使用::after
来实现结果
.message {
display: inline-block;
height: 120px;
width: 130px;
border-radius: 8px;
position: relative;
background: rgb(2, 0, 36);
background: linear-gradient(10deg, rgba(2, 0, 36, 1) 0%, rgba(9, 9, 121, 1) 35%, rgba(0, 212, 255, 1) 100%);
}
.message::after {
content: "";
background-color: black;
height: 16px;
width: 16px;
position: absolute;
bottom: -4px;
left: 50%;
transform: translate(-50%) rotate(45deg);
}
<div class="message"></div>
推荐阅读
- php - 使用 vim 有效地重新格式化关联数组
- android - BufferedWriter 在一段时间后停止写入
- javascript - 当用户在文档上移动手指时移动图像
- java - 由于未找到视图而导致应用程序崩溃
- android - MediaStore.Images.Media.insertImage 不会保存图像
- excel - 在python中用csvwriter写一个单元格或一行
- variables - 在 SSIS 中将时间捕获并存储为字符串
- android - 在 Termux Android 上连接到 MariaDB 服务器
- xml - 如何使用 Golang 在 XML 中获取更深层次元素的元素名称
- c# - 在 Bamboo 上使用 MSBuild 构建解决方案时遇到问题