win11耳机在电脑上测试有声音,但是网页和视频没有声音
打开声音设置-更多声音设置
编辑
选中你的播放设备 我这里是前面板耳机 点击 【设为默认值】
然后我发现问题:耳机和音响同时输出声音!怎么解决?
1.打开音频管理器
选中图中播放设备中第二项,就可以分开播放了。
然后又有问题:麦克风没声音了!
参考下面2个视频解决了:
【【设备调试】你的声卡没坏,你的麦克风也没坏,你的电脑更没坏,坏就坏在手贱更新了WINDOWS10!!!- 处理麦克风能被识别但是无声的问题!】 https://www.bilibili.com/video/BV1as411E7rA/?share_source=copy_web&vd_source=5053a6dbc1b42e83bb14303fbfead9a2
【解决台式机箱耳麦无法使用麦克风问题,主要问题在于耳机3.5mm连接线】 https://www.bilibili.com/video/BV1CV4y1y7ex/?share_source=copy_web&vd_source=5053a6dbc1b42e83bb14303fbfead9a2
CSS居中的几种写法
一、行内元素的垂直水平居中方法1.一行的垂直水平居中123456789101112131415161718<body> <div class="out"> <span class="in">要居中的行内元素span</span> </div></body><style> .out{ width: 300px; height: 300px; background-color: grey; line-height: 300px; text-align: center; } .in{ background-color: blue; }</style>
其实设置了 line-height 就可以让文本垂直居中,并不需要同时设置 height,这里也是一直存在的一个误区。
这种方式实现垂直居中运用的是 CSS 中“行距的上下等分机制 ...
回流与重绘
浏览器渲染过程
解析获取到的HTML、生成DOM树;解析CSS,生成CSSOM树
结合DOM树和CSSOM树,生成渲染树(rander tree)
根据生成的渲染树,进行**回流(Layout)**,得到节点几何信息(位置大小)
**重绘(Painting)**:根据计算好的信息绘制整个页面
Display将像素发送给GPU,展示在页面上。
一、重绘触发重绘的条件:不影响其他元素的元素样式改变(宽高、大小、位置等不变)。
例如:outline、visibility、color、background-color等
只改变自身样式,不会影响到其他元素
二、回流回流的触发条件:元素的大小或位置发生改变(当页面布局和几何信息发生改变的时候)
例如:增删DOM元素、元素位置发生变化、尺寸发生变化、内容发生变化(文本变化或图片替代)、页面一开始渲染、浏览器窗口尺寸变化
回流一定触发重绘,重绘不一定触发回流
三、减少回流
DOM的增删行为
比如你要删除某个节点,给某个父元素增加子元素,这类操作都会引起回流。如果要加多个子元素,最好使用documentfragment。
几何属性的变化 ...
vue3+vite实现主题换肤/黑暗模式
利用less和css变量实现动态修改Css变量
vue3包版本:
1234567├── @vitejs/plugin-vue@4.1.0├── less-loader@7.3.0├── less@4.1.3├── style-resources-loader@1.5.0├── vite@4.2.1├── vue-cli-plugin-style-resources-loader@0.1.5 └── vue@3.2.47
vue2包版本:
12345678910111213141516171819├── @babel/core@7.21.8├── @babel/eslint-parser@7.21.8├── @vue/cli-plugin-babel@5.0.8├── @vue/cli-plugin-eslint@5.0.8├── @vue/cli-plugin-router@5.0.8├── @vue/cli-service@5.0.8├── core-js@3.30.2├── eslint-config-prettier@8.8.0├── eslint-plugin-prett ...
跨域的解决办法
一、浏览器的同源策略为了安全,不同源的请求会发送出去,但是不让你的JS拿到响应内容。不能跨过这个域去访问其他域的功能。
这里的域指的是协议、主机和端口号都要需要一致的URL
协议:http://
主机:www.bilibili.com
端口号: 8080
换句话说:俩个URL必须同源才允许交互
如果我们需要让member.bilibili.com和mail.bilibili.com进行资源交互,就需要用到跨域的技术来解决这个问题。
二、JSONP处理跨域既然不同源不能资源交互,那为什么我写标签里的link和script引用可以在别的源请求脚本呢?
这是因为当时在设计script标签的时候,就允许在别的源请求脚本。
能够跨域的标签有:script link img
利用这些标签能够跨域的“漏洞”进行跨域的办法就叫JSONP
1.JSONP操作HTML5里的script标签默认的type属性是text/javascript,定义了这个类型,请求的内容会被路利器执行。换句话说,script标签请求返回的代码就会被浏览器以JS代码的方式执行
那我们就可以这样操作 ...
节流与防抖
一、什么是防抖。就是指 在设定的一段时间内中除了最后一次,前面的连续触发都不执行。
举例:设定1000毫秒执行,触发一次,1000毫秒后执行,但是如果你在剩500毫秒的时候又触发了,那就重新从1000毫秒计算。
形象举例:英雄联盟或者王者荣耀的回城
防抖应用场景
搜索框搜索输入、文本输入的验证
文本编辑器实时保存
示例:非立即执行版
12345678910111213<button class="ipt" type="button" onkeyup="SomeJavaScriptCode">防抖</button><script> let timerId = null document.querySelector('.ipt').onclick = function () { console.log('我被点了'); if (timerId !== null) { clearTimeout(timerId) ...
JS宏任务与微任务
JS把异步任务分为宏任务与微任务。
在ES5之后,JavaScript引入了Promise,这样不需要浏览器,JavaScript引擎自身也能够发起异步任务了。
宏任务由宿主(浏览器、Node)发起
任务(代码)
宏任务
环境
script
宏任务
浏览器
事件
宏任务
浏览器
网络请求(Ajax/Fetch)
宏任务
浏览器
setTimeout()/setInterval()
宏任务
浏览器
微任务JS引擎发起的任务
任务(代码)
微任务
环境
Promise的then
微任务
JS引擎
nextTick
微任务
JS引擎
await右结合和下方的代码
微任务
JS引擎
Promise本身同步,then/catch的回调函数是异步的
代码分类
同步代码(js执行栈/回调栈)
微任务的异步代码(js引擎)
process.nextTick (node)
Promise.then catch()
Async/Await
Object.observe
宏任务的异步代码(宿主环境 ...
闭包
每当我们运行代码的时候,代码就会生成执行上下文(可以理解为执行环境)
JavaScript执行环境主要分为三种:
全局环境
函数环境
Eval环境
JavaScript用栈处理多个执行上下文
作用域链
创建执行上下文分两个阶段
创建阶段
作用域链
包含当前变量对象+所有父级变量对象
变量对象(参数、变量函数声明)
this
执行阶段
变量赋值、函数引用等
12345678function books(){ var book = "书包里面的书本" return function(){ console.log(book); }}var bag = books();bag()
上面代码的上下文创建顺序
全局执行上下文 = {作用域链:{全局变量对象}, {变量对象: books, bag}}
books执行上下文 = {作用域链:{books变量对象+全局变量对象},{变量对象:book}}
匿名函数执行上下文 = {作用域链:{匿名函数遍历对 ...
Promise
1. 基本功能 在处理一些需要花费比较长时间的任务时,使用Promise就可以进行异步的处理,防止阻塞。实现把异步当同步写。
2. 解决问题 解决回调地狱问题,而且因为有了resolve和reject可以进行异步处理并且得知任务进度
3. 异步任务 异步任务不进入主线程,而是进入异步队列,前一个任务是否执行完毕不影响下一个任务的执行。
123456789setTimeout(function(){ console.log('我在上面')},1000}console.log('我在下面')执行结果: 我在下面 我在上面 >
这种不阻塞后面任务执行的任务就叫异步任务
4. 回调地狱 上面说到,异步任务不能保证按照顺序执行,但实际上我们是有这样的需求的。在没有promise的时候我们这样子实现。
123456789setTimeout(function(){ console.log("获取id"); setTimeout(function( ...
MongoDB常用命令
一. 数据库相关
查询数据库列表show dbs
创建或切换数据库use database_name
删除数据库db.dropDatabase()
二. 集合相关
创建集合db.createCollection(name, options)
options:
capped如果为true则创建固定集合(有着固定大小的集合)
size为固定集合指定一个最大值,如果capped为true需要指定该字段
max 指定固定集合中包含文档的最大数量
举例:
12345db.createCollection("t_article", { capped: false, size: 5242880, //Specify a maximum size in bytes for a capped collection. max:5000, //The maximum number of documents allowed in the capped collection.})
查看集合列表show collections
...