还有一个页面遮罩层
<!-- 语音遮罩层 --> <view class="voice-mask" v-show="mask"> <!--语音条 --> <view class="voice-bar voice-del" :class="{voiceDel:needCancel}" :style={width:getVoiceBarWidth}> <image src="../static/icon/wave.png" class="voice-volume" :class="{volumeDel:needCancel}"></image> <view class="trangle-bottom" :class="{trangleDel:needCancel}"></view> </view> <!-- 底部区域 --> <view class="voice-send"> <!-- 取消和转文字图标 --> <view class="voice-middle-wrapper"> <!-- 取消 --> <view class="voice-left-wrapper"> <view class="cancel-del" :class="{delTip:needCancel}">松开 取消</view> <view class="voice-middle-inner close" :class="{bigger:needCancel}"> <image src="../static/icon/close-grey.png" class="close-icon"></image> </view> </view> <!-- 转文字 --> <view class="voice-middle-inner to-text"> <text class="wen">文</text> <!-- <image src="" class="wen"></image> --> </view> <view class="send-tip" :class="{sendTipNone:needCancel}">松开 发送</view> </view> <!-- 底部语音按钮 --> <view class="mask-bottom"> <image src="../static/icon/voice-left.png"></image> </view> </view> </view> ...... <style> .voice-mask{ position:fixed; top:0; right:0; bottom:0; left:0; /* display: flex; flex-direction: column; justify-content: flex-end; align-items: center; */ background-color: rgba(0,0,0,0.8); } .voice-bar{ position: absolute; left:50%; top: 50%; transform: translate(-50%,-30%); /* width: 230rpx; */ height:150rpx; background-color:#51ff50; border-radius: 26rpx; margin-bottom: 220rpx; } .voiceDel{ left:80rpx; top: 50%; width: 170rpx !important; transform: translateX(0%); transform: translateY(-30%); background-color: red; } .voice-volume{ position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); width: 160rpx; height: 36rpx; } .volumeDel{ width: 80rpx; } .trangle-bottom{ position: absolute; bottom: -38rpx; left:50%; transform: translateX(-50%); border-width: 20rpx; border-style: solid; border-color: #51FF50 transparent transparent transparent; } .trangleDel{ border-color: red transparent transparent transparent; } .voice-send{ position: absolute; bottom: 0; width: 100%; } .voice-middle-wrapper{ width: 100%; display: flex; position:relative; justify-content: space-between; align-items: flex-end; margin-bottom: 40rpx; } .voice-left-wrapper{ display: flex; flex-direction: column; justify-content: center; align-items: flex-end; } .cancel-del{ display:none; } .delTip{ display:block; color:#bfbfbf; margin: 0 22rpx 18rpx 0; } .voice-middle-inner{ display: flex; justify-content: center; align-items: center; background-color: rgba(0,0,0,0.2); width: 140rpx; height: 140rpx; border-radius: 50%; } .close{ transform: rotate(350deg); margin-left: 80rpx; } .bigger{ width: 170rpx; height: 170rpx; } .to-text{ transform: rotate(10deg); margin-right: 80rpx; } .close-icon{ width: 80rpx; height: 80rpx; } .wen{ font-size: 40rpx; color:#bfbfbf; } .send-tip{ position: absolute; left: 50%; bottom:0rpx; transform: translate(-50%,36%); color:#bfbfbf; } .sendTipNone{ display: none; } .mask-bottom{ position: relative; width: 100%; height:190rpx; border-top: #BABABB 8rpx solid; border-radius: 300rpx 300rpx 0 0; background-image: linear-gradient(#949794,#e1e3e1); } .mask-bottom image{ position: absolute; width: 60rpx; height: 60rpx; top: 0; right:0; bottom: 0; left: 0; margin: auto; } </style>
网友回复
js如何流式输出ai的回答并折叠代码块,点击代码块右侧可预览代码?
ai大模型如何将文章转换成可视化一目了然的图片流程图图表?
大模型生成html版本的ui原型图和ppt演示文档的系统提示词怎么写?
rtsp视频直播流如何转换成websocket流在h5页面上观看?
为啥coze会开源工作流agent coze studio?
如何检测网页是通过收藏夹打开的?
python如何实现类似php的http动态脚本请求处理响应代码?
js如何实现类似php的http动态脚本请求处理响应代码?
trae与solo有啥区别不同?
vue如何让ai动态生成问卷调查多步骤表单式收集基础信息自动规划执行任务?