跳到主要内容

· 阅读需 8 分钟
熊滔

光标与选区

光标是一种特殊的选区。

  1. Selection 对象表示用户选择的文本范围或插入符号的当前位置。它代表页面中的文本选区,可能横跨多个元素。通常由用户拖拽鼠标经过文字而产生。
  2. Range对象表示包含节点和部分文本节点的文档片段。通过 selection 对象获得的 range 对象才是我们操作光标的重点。

· 阅读需 3 分钟
熊滔
信息

该笔记是来源于公众号文章还在用定时器吗?借助 CSS 来监听事件

hover延时触发

一般方法

鼠标进入时开始定时器

var timer = null
el.addEventListener('mouseover', () => {
timer && clearTimeout(timer)
timer = setTimeout(() => {
// 具体逻辑
}, 1000)
})

鼠标离开时取消定时器

el.addEventListener('mouseout', () => {
timer && clearTimeout(timer)
})

· 阅读需 2 分钟
熊滔

encodeURIencodeURIComponent 都是对 URI 进行编码的,由于 URI 仅支持 ASCII 字符,对于一些特殊的字符需要进行编码,例如汉字、&? 等有意义的特殊符号。

  • encodeURI 不会对 ~!@#$&*()=:/,;?+' 这些特殊字符进行编码
  • encodeURIComponent 不会对 ~!*()' 这些特殊字符进行编码

数字与字母(0-9,a-z,A-Z)是不会被编码的,_-.~!*'() 这些字符也不会被编码 。可以观察到二者的区别是 encodeURIComponent 会对更多的字符进行编码,而 encodeURI 对有些特殊字符不会编码,如 &, :, /

· 阅读需 7 分钟

当我们借用一个变量时,如果变量被销毁,那么我们就不能通过该借用的引用访问数据,因为变量以及被销毁了,此时访问的数据是不可知的。

fn main() {
let x;
{
let y = 5;
x = &y;
}
println!("{}", x);
}

如果我们尝试编译该代码,编译器将会给出错误

error[E0597]: `y` does not live long enough
--> hello5.rs:5:9
|
5 | x = &y;
| ^^ borrowed value does not live long enough
6 | }
| - `y` dropped here while still borrowed
7 | println!("{}", x);
| - borrow later used here

error: aborting due to previous error

For more information about this error, try `rustc --explain E0597`.

· 阅读需 4 分钟
熊滔

下载源码包,解压

wget https://github.com/ultralytics/yolov5/archive/refs/tags/v6.1.tar.gz
tar -zxvf yolov5-6.1.tar.gz

进入解压目录,安装依赖

cd yolov5-6.1
pip install -r requirements.txt

下载预训练模型 yolov5s6.pt,在项目根目录新建 weights 文件夹,将下载的预训练模型放入。