前端代码 录音样式 类似微信发送语音

2023-11-09

先来上图

在这里插入图片描述wxml代码 不是小程序的就换成div

<view class="voice" wx:if="{{voiceshow }}">
	<view class="bgc"></view>
	<view class="acoustic reception">
		<view class="five"></view>
		<view class="four"></view>
		<view class="three"></view>
		<view class="two"></view>
		<view class="one"></view>
	</view>

	<view class="change">
		<view class="cancel {{btnclose?'select':''}}">
			<view wx:if="{{btnclose}}" class="release">松开 取消</view>
			<image wx:if="{{btnclose}}" bindtap="complainShow" src="{{libUrl + '/images/wechat-img/关  闭 @2x.png'}}"></image>
			<image wx:else bindtap="complainShow" src="{{libUrl + '/images/wechat-img/关闭@12x.png'}}"></image>
		</view>
		<view class="word {{btnword?'select':''}}">
			<view wx:if="{{btnword}}"  class="release">转文字</view>
			<text></text>
		</view>
	</view>

	<view id="bottom-top" class="bottom_top {{move_top?'bottom_hover':''}}">
		<view wx:if="{{move_top}}" class="release">松开 发送</view>
		<view class="symbols">
			<view class="wifi-symbol dong ">
				<view class="wifi-circle first"></view>
				<view class="wifi-circle second"></view>
				<view class="wifi-circle third"></view>
			</view>
		</view>
	</view>
</view>

css的代码 这个样式变化在js中调节 获取整个窗口的高度 减去底下动画框到顶部的高度 就是上半边的高度 然后判断移动的位置 在那个上面 是发送语音还是不发送语音 然后再去判断在左右那两边 再去判断是取消还是转换文字 这些样式都是动态的 需要在js 中进行编辑添加 有什么不懂得私信我


.voice {
  width: 100%;
  height: 100vh;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999999;
  overflow: hidden;
}

.voice .bgc {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, .6);

}

.voice .bottom_top {
  width: 120%;
  height: 380rpx;
  border-radius: 100%;
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  background: rgb(58, 58, 58);
  bottom: -120rpx;
}

.voice .bottom_hover {
  background: linear-gradient(0deg, rgb(213, 213, 213) 50%, rgb(163, 163, 163) 100%);
  border: 10rpx solid rgb(182, 181, 181);
  box-sizing: border-box;
}

.voice .bottom_top .symbols {
  width: 50rpx;
  height: 50rpx;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.voice .change .cancel .release {
  /* width: 220rpx; */
  /* transform: rotate(15deg); */
}

.voice .change .word .release {
  /* width: 80rpx; */
  /* transform: rotate(-15deg); */
}

.release {
  width: 100%;
  text-align: center;
  height: 30rpx;
  line-height: 30rpx;
  font-size: 28rpx;
  position: absolute;
  top: -60rpx;
  left: 0;
  color: rgb(170, 170, 170) !important;
}

.voice .change {
  width: 100%;
  height: 180rpx;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: absolute;
  left: 0;
  bottom: 300rpx;
}

.voice .change .cancel,
.voice .change .word {
  position: relative;
  width: 150rpx;
  height: 150rpx;
  border-radius: 50%;
  background-color: rgb(58, 58, 58);
  text-align: center;
  line-height: 150rpx;
  color: rgb(135, 135, 135);
  font-size: 36rpx;
  /* border: 15rpx solid rgba(58, 58, 58,0) ; */
}

.voice .change .cancel {
  margin-left: 80rpx;
  
}

.voice .change .cancel image {
  width: 30rpx;
  height: 30rpx;
  transform: rotate(-15deg);
}

.voice .change .word {
  margin-right: 80rpx;
  
}
.voice .change .word text{
  display: block;
transform: rotate(15deg);
}
.voice .change .select {
  background-color: rgb(237, 237, 237);
  border: 15rpx solid rgb(237, 237, 237);
  color: rgb(48, 48, 48);
}

.voice .acoustic {
  width: 200rpx;
  height: 220rpx;
  background-color: rgb(48, 48, 48);
  border-radius: 20rpx;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  padding-left: 60rpx;
  padding-top: 30rpx;
  box-sizing: border-box;
}

.voice .acoustic view {
  background-color: #ccc;
  height: 16rpx;
  margin-top: 15rpx;
}

.voice .acoustic .one {
  width: 30rpx;
}

.voice .acoustic .two {
  width: 45rpx;
}

.voice .acoustic .three {
  width: 65rpx;

}

.voice .acoustic .four {
  width: 80rpx;
}

.voice .acoustic .five {
  width: 95rpx;
}

.voice .acoustic .active {
  background-color: rgb(139, 195, 74);
}

.reception .one {
  animation: fadeInOut1 .7s infinite 0.1s;
}

.reception .two {
  animation: fadeInOut1 .7s infinite 0.2s;
}

.reception .three {
  animation: fadeInOut1 .7s infinite 0.3s;
}

.reception .four {
  animation: fadeInOut1 .7s infinite 0.4s;
}

.reception .five {
  animation: fadeInOut1 .7s infinite 0.5s;
}

@keyframes fadeInOut1 {
  0% {
    opacity: 0;
    /*初始状态 透明度为0*/
    /* background-color: rgb(139, 195, 74); */
  }

  100% {
    opacity: 1;
    /*结尾状态 透明度为1*/
    background-color: #ccc;
  }
}

/* 录音动画 */

.box {
  width: 90rpx;
  box-sizing: border-box;
  position: relative;
  margin: 0rpx 20rpx;
  line-height: 50rpx;
  display: flex;
  justify-content: space-between;
  -webkit-backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
}

.wifi-symbol {
  width: 50rpx;
  height: 50rpx;
  box-sizing: border-box;
  overflow: hidden;
  transform: rotate(135deg);
  /* background-color: red; */
  position: relative;
}

.wifi-circle {
  border: 5rpx solid #999999;
  border-radius: 50%;
  position: absolute;
}

.first {
  width: 5rpx;
  height: 5rpx;
  background: #cccccc;
  top: 45rpx;
  left: 45rpx;
}

.dong .second {
  animation: fadeInOut 1s infinite 0.2s;
}

.second {
  width: 25rpx;
  height: 25rpx;
  top: 35rpx;
  left: 35rpx;
}

.dong .third {
  animation: fadeInOut 1s infinite 0.4s;
}

.third {
  width: 40rpx;
  height: 40rpx;
  top: 25rpx;
  left: 25rpx;
}

@keyframes fadeInOut {
  0% {
    opacity: 0;
    /*初始状态 透明度为0*/
  }

  100% {
    opacity: 1;
    /*结尾状态 透明度为1*/
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

前端代码 录音样式 类似微信发送语音 的相关文章

  • 如何将数据从 JavaScript 发送到 Python

    我正在 jinja2 和 python2 7 上使用 GAE 进行 Web 开发 我可以从Python获取数据 但我无法将数据从 JavaScript 发送到 Python 这是 JavaScript 代码 function toSave
  • 如何格式化折线图谷歌图表材料上的轴?

    我在格式化材料图表的轴时遇到问题 Using classic line chart if I would like to format my vertical axis with a dollar sign I would do vAxes
  • 如何创建共享网络目录或文件的超链接?

    我检查了以下两个相关讨论 1 如何创建指向本地可执行文件的超链接 https stackoverflow com questions 2815982 how do i make a hyperlink to a local executab
  • 如何使用 javascript 将我的域名字母大写?

    假设我的域名是www hello com 如何使用 jQuery JavaScript 使浏览器的 URL 栏看起来像 www HELLO com 您无法更改浏览器地址栏中显示的内容 这是一项基本的安全功能 您可以使您的域名全部大写 并将页
  • 当系列没有相同的时间值时,如何在工具提示中显示所有系列

    我有一个显示多个时间序列的图表 不同时间序列不会同时采样 有没有办法在工具提示中显示所有系列 在示例中 您可以看到所有系列都包含在前 2 个点的工具提示中 因为它们是同时采样的 其余点仅包含 1 个系列 var myChart echart
  • 全日历与 UTC 和本地日期的混淆

    我确实让 fullcalendar 正常初始化 所以它代表当前日期 午夜 gt 午夜 1 天 1 小时时段 我从其他一些数据源获取带有时间戳的数据 格式为 YYYY MM DD HH mm 作为字符串传输 无时区信息 因此 我将该字符串转换
  • React Native 中 fontAwesome 图标的圆形轮廓

    我想使用 fontAwesome 图标 使其位于圆圈的中间 我想将它用作一个图标项 我读到我们可以将它与圆形图标一起使用并将其放置在其中 但我无法使其工作 import IconFA from react native vector ico
  • 为什么 Firefox 3.6 改变了 jQuery 和 CSS 属性?

    为什么 Firefox 3 6 改变了 jQuery 和 CSS 属性 好吧 更具体一点 我有一个交叉淡入淡出插件 可以在放置在彼此之上的两个图像之间创建发光效果 该函数 如下所示 将使顶部图像在悬停时在 200 毫秒内转换为不透明度 0
  • Nodejs 异步 Promise 队列

    我需要使用速率受限的 API 例如 我一秒钟只能进行 10 个 API 调用 因此我需要等待当前秒结束才能进行另一个 API 调用 为了实现这一目标 我想创建一个可以自行管理的异步队列 它的主要功能是让我向队列添加一个新的 Promise
  • 为什么 WebView 中的 dataWithPDFInsideRect 不能在 Mavericks 上创建高质量的 PDF?

    Run 示例项目 https github com tvarghese TestWebView并观察桌面上生成的输出 PDF 名为保存网页 pdf 粘贴感兴趣的代码片段 NSURL url NSBundle mainBundle URLFo
  • JavaScript 中的安全数据

    我必须为 Web 测试创建生成器 使用 HTML 和 JavaScript 测试必须离线和在线进行 正确答案和分数评估必须是生成的测试的一部分 最终用户的分数仅发送到服务器 无法在服务器上进行评估 并且服务器对问题一无所知 它只保存最终分数
  • Xpath 获取 if href 包含字符串的一部分

    您好 我尝试获取包含 href p random tagged see 的所有元素 这是我的路线 div preceding h2 text Most recent div div a href p tagged see 我该如何修复此代码
  • 跟踪预防阻止了对 https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js 存储的访问

    大约一年半前 我使用 OfficeJS API 编写了一个 Excel 加载项 它一直工作到大约两周前 Excel 似乎已经进行了更新 现在我可以右键单击任务窗格并查看开发工具 而以前我无法做到这一点 并且必须运行外部 MS Edge 开发
  • 如何从代码隐藏中向我的 div 添加点击事件?

    如何从代码隐藏中向我的 div 添加点击事件 当我点击 div 时 会出现一个消息框 其中显示 您想删除它吗 并在框中显示 是 或 否 全部来自后面的代码 while reader Read System Web UI HtmlContro
  • 指定 body CSS 宽度安全吗?

    现在通常满足于以一定的尺寸居中 div Blah div 不使用包装器进行对齐和大小并直接将其应用到body tag 像这样 Blah 尺寸是
  • 如何从 Visual Studio Code API 打开浏览器

    我只是在探索一种从用于开发扩展的 Visual Studio Code API 打开默认浏览器的方法 以下是我的代码 var disposable vscode commands registerCommand extension brow
  • 阻止 PM2 上不同时运行的请求

    在我的 Express 应用程序中 我在应用程序中定义了 2 个端点 一种用于 is sever up 检查 另一种用于模拟阻塞操作 app use status req res gt res sendStatus 200 app use
  • javascript 加壳器与压缩器

    我想知道加壳器与压缩器的区别 优点是什么 即您应该在网络应用程序中部署压缩版本还是压缩版本 示例代码 var layout NAVVISIBLE 1 Init function this Resize Dimensions function
  • 如何在 JavaScript 中将日期时间微格式转换为本地时间?

    我有一个页面当前正在使用日期时间微格式 http microformats org wiki datetime design pattern显示时间戳 但我只显示我自己的时区的人类可读时间
  • 如何将函数导入到Vue组件中?

    我正在尝试将单个函数导入到我的 Vue 组件中 我为我的函数创建了一个单独的 js 文件 randomId js exports randomId gt My function 在我的 Vue 组件中 我导入了 Random js let

随机推荐

  • Redis-入门与springboot整合

    Redis入门 一 Redis基础命令 二 常用数据类型 1 String类型 2 List类型 3 Set集合 4 hash集合 5 Zset集合 三 Redis发布和订阅 四 新数据类型 1 Bitmaps 2 HyperLogLog
  • Java常用类:System类

    文章目录 System类概述 1 arraycopy 方法 概述 语法 举例 2 currentTimeMillis 方法 概述 语法 举例 3 gc 方法 概述 语法 举例 4 exit int status 方法 概述 语法 举例 Sy
  • openwrt18.06.4配置strongswan对接山石网科(hillstone)记录①

    首先感谢https blog csdn net d9394952 article details 90734469 原贴作者 摸索了一个礼拜 将过程记录如下 首先将路由器连上网 更新opkg root OpenWrt ping www ba
  • aivms--CentOS7.6安装/JDK1.8/ThingsBoard CE /PostgreSQL

    先决条件 yum install y nano wget yum install y https dl fedoraproject org pub epel epel release latest 7 noarch rpm 1 安装JDK8
  • Catowice City【Codeforces 1248 F】【BFS】

    Codeforces Round 594 Div 2 F 一开始是听闻有人说这是一道Tarjan好题 然后就点进来做了 但是想来想去 却想了个另类的法子 我们可以看到 如果N个人都要选择的话 那么每个人都只能是审判者 或者是参赛者 所以 我
  • hutool工具常用API

    hutool工具常用API 依赖 工具API 1 convert 2 DataUtil 3 StrUtil 4 ClassPathResource 5 ReflectUtil 6 NumberUtil 7 BeanUtil 8 CollUt
  • 使用C++11变长参数模板 处理任意长度、类型之参数实例

    变长模板 变长参数是依靠C 11新引入的参数包的机制实现的 一个简单的例子是std tuple的声明 template
  • Python六大基本数据类型介绍

    Python基本数据类型 一 数字型 一 整型 二 浮点型 三 布尔型 四 复数类型 二 字符串 三 列表 四 元组 五 集合 六 字典 一 数字型 一 整型 1 整型 int 在数字中 正整数 0 负整数都称为整型 例 intvar 10
  • 零知识证明zkSNARK

    最近接触学习零知识证明 很是头疼 没有一些背景知识 只能硬看了 而且也没有别的好方法 为什么要学习零知识证明 因为区块链的去中心化 导致信息都是公开透明的 比特币 以太坊 EOS等目前绝大部分项目区块链上的交易都是公开的 发送者的地址 金额
  • 试用版MindMaster思维导图转XMind方法分享

    在用MindMaster做导图的时候主题总是达到上限 于是想换成没有上限的XMind 就打算把已经做好的导图转到XMind上 现在网上的方法是通过导出docx文件或者复制大纲到word中然后再复制到XMind中 但受试用版限制 没办法导出w
  • 调用兄弟目录中的模块

    使用sys path append把父目录的加到模块搜索路径列表中即可 下面是具体原理分析 比如目前的目录结构如下 parDir dir1 test1 py dir2 test2 py 现在我需用在test1 py中导入dir2的test1
  • 合泰BS8116A-3触摸芯片开发踩坑指南

    一 硬件说明 引脚图 接线 说明 由于用到了唤醒检测 所以KEY16引脚用作IRQ中断唤醒功能 未使用引脚拉低 二 IIC配置说明 1 最大波特率 实际单片机配置最好不要设置波特率100Khz容易出错 50Khz就可以了 2 从机地址 注意
  • OpenCV基本知识

    1 OpenCV概述 1 什么是OpenCV 开源C C 计算机视觉库 面向实时应用进行优化 跨操作系统 硬件 窗口管理器 通用图像 视频载入 存储和获取 由中 高层API构成 为Intel 公司的 Integrated Performan
  • Vue ly-tab组件使用

    Vue ly tab组件的使用 目录 Vue ly tab组件的使用 安装 引入 使用 安装 这里使用指定版本安装 如果安装其他版本使用方法可能不一致 npm install ly tab 2 1 2 S 或者 cnpm install l
  • 深入理解采样定理 + Matlab 仿真 Sa 函数的采样与恢复

    建议配合国宝老师的视频食用 信号与线性系统分析 吴大正 郭宝龙 文章目录 1 采样的说明 1 为什么要取样 2 什么是取样 2 采样定理 1 为什么要有奈奎斯特频率 2 什么是采样定理 3 信号的恢复 4 Matlab的Sa函数取样仿真 1
  • nginx通过四层代理实现端口转发

    公司原有的测试数据库在主机192 168 10 5上边 现在数据库转移到了192 168 10 4上 为了不让各个地方都需要更改地址 现在需要一个四层代理工具 将原来请求到192 168 10 5的3306端口转发到192 168 10 4
  • ChatGPT数据泄露,技术细节公布

    事件发生后 OpenAI 临时关闭了 ChatGPT 服务以调查问题 后续 Open AI 的首席执行官 Sam Altman 也亲自发了推文 承认他们确实遭遇了重大问题 不过当时并没有公布问题的细节 只表示是一个开源库的错误导致的 由于一
  • 支持WIN7的VSCode版本

    我有台13年底买的电脑 装的WIN7 使用时发现 最新的VSCode已经不支持WIN7 目前VSCode官网上写的最低支持WIN8 经过确认 最后支持WIN7的版本是1 70 3 不论32位还是64位 都是这个版本
  • easyui 下拉框联动

    supplierCode combobox onChange function n o var supplierCodes n join ajax type post url pageContext request contextPath
  • 前端代码 录音样式 类似微信发送语音

    先来上图 wxml代码 不是小程序的就换成div