粉丝992获赞1601

如何对列表全选反选?对列表全选很简单,只需要在第一个按钮的点击事件里加这么一行代码。 对复选框设置选举状态,用点 proof 方法,处表示选中。这里把所有的复选框的选举状态都设置为处,保存查看一下。 给第二个按钮的点击事件添加反选的代码。对列表反选稍微费点事,需要挨个检查一下。 判断复选框的选取状态也用点 prop 方法。如果 check 的状态是处,把 check 设置为 force, 反着设置为处,最后保存查看一下。

好,那么是这效果来,我首先实现全选, 通过内幕获得对象。 好,通过内幕互动一下 来。那么对于每个对象来说呀,这是这么表示是吧? 那么全选呢?就是 点什么?直程触 啊,看反选。 那反省的逻辑啊是啥呀? 如果每个对象啊, 如果是醋是吧? 只为讲 否则呀,是不是真 白天白天 那么不选的逻辑啊? 对,不选。逻辑很简单,紫薇都紫薇 pose 不选好看。计算。 那么计算呢?必须得是选中给他计算是吧? 计算一定注意给个东西给个 w 啊。有同学特别逗这个 w 啊,他这么给我写啊,能气死你啊, 怎么写?你要那个汉字什么用啊?要二百要的数字是吧? 啊,这做事拿脑子想一想啊, 八十是吧。 好了, 那你还是要获得这个对象是吧?对啊,好了,还得循环啊,循环避免不了的。那你 另一个礼家盒是吧?对外个萨姆从零开始是吧? 那选中是累加不选中是不累加是吧?这个值。你是得做个判断。如果呀,点谁呀?等得促使我累加是吧? 不得处不得家 萨姆的萨姆哪家是吧? 你家谁呀? obgs 每个对象的什么点 w 是吧? 这可不可以啊?可以可以啥可以从页面来的是什么数据类型啊?自助串是吧? 怎么办呢?那能在家吗是吧?那么你可以测验一下子是吧? 你好啊, 一百加八十这是没问题的是吧?所以必须得把它转化。注意我要把里间盒放这里是吧?放这里。首先得换个对象 和这个对象啊。哇,一个 对吧 s 零幺是吧?或者对象。然后啊,你把这个对象的点什么? 这对象有什么属性啊?婴儿 l t m l 是吧?等谁呀? 那么 为是吧?为我再加上一个什么 走全选啊!这是多少啊?一百二百三百四百是吧?但是要求自己红色怎么办呢? 加钥匙是吧?给谁加钥匙啊?什么选择器啊? id 选择器是吗?井号 s 零零幺是吧? 看了瑞的是吧?刷走走 一百八是吧?反反选多少钱呢?四百是吧?不选零元是吧?全选五百八好搞定。

有时候想在网页找点文字资料,奈何不让复制,为了一段文字开个会员得不偿失。今天小棉袄就教你两招,解除网页限制,想复制哪里就复制哪里。在需要复制文本的网页,以此按键盘的 f 十二 f 一,打开浏览器控制台设置,找到禁用 doorscreep 或者 dc bow drove script 选项,勾选上。此时我们回到我们需要复制文本的页面,就可以尽情的复制了。有的小可爱可能会说,每次复制都要设置,麻烦死了,有没有一劳永逸的办法让我每次打开这个需要复制的网站就可以自由复制?在小棉袄这里会 尽量满足你一切正经合理的请求。我们可以通过安装浏览器插件来实现这个需求。打开浏览器的插件应用商店,搜索 absolute nable red、 kick 和 copy, 并安装 microsoft at 浏览器。一次记右上角的三个点扩展,打开 microsoft at 加载像进入插件商店。三六零浏览器,通过点击右上角的扩展中心进入插件商店。至于谷歌浏览器,国内访问不了谷歌插件商店,只能采取离线安装方法,自行百度插件。安装好后,打开 还需要复制文本的页面,在浏览器右上角找到安装好的 absolute anibo red, 可以可和 copy 单机再弹出设置界面,勾选 i nable copy 及 absolute mode。 再次回到你要复制文本的页面,就可以随心所欲的复制了。关于解除网易禁止复制的小技巧就分享完了,赶紧实践起来,在评论区告诉我结果,等你呦!

啊,大家好,我是变成猫的丫丫啊。这节课我们来继续来讲解一下油箱搭建的一个预先验证码,自己搭建一个油箱, 那么呃,在讲解之前呢,我要先去介绍一下我们的群啊,有喜欢 gs 逆向的啊,包括意思 gs 加密的啊,而且其他的还有一些其他的一些编程知识的,我们可以去加一下我们的群,去学习一下啊, 我们这个群号呢是七四七七七六三七四,也可以直接扫描我们屏幕上的二维码,直接进入我们的,加入我们的群啊,会有一些,天天会有一些好像分享一些直播的一些小知识啊,跟大家交流一下,互动一下。 那我们在搭建邮箱验证码之前呢,我们要提前有个准备,既然是自己搭建吗,我们首先要有一台服务器啊,服务器的配置呢,也不限, 无所谓,哪怕是最低那个配置也无所谓啊,一合一计的都可以的啊啊,我们可以去一些云浮器上去跟某些厂商云浮器上去购买一下啊,我这里选用的是一个腾讯啊, 我们去装一下这个腾讯乐啊系统我们装的是个雷牛斯的,雷牛斯的服务器完之后呢,你需要安装这个宝塔,因为这个宝塔里边就带了一个邮件的一个东西,我们用着很很方便,我们用它去开发我们自己的一片爱,来调动我们油箱那个肩膀的一个东西啊, 在银行安装呢,这个宝塔安装呢,可以去宝 bt 点 cn 啊,去复制一个这个最新版的一个东西去按一下。同时呢,你在安装 luns 的时候也要选择一个最新版的 lus 啊,跟他匹配安装,我们自己去看一下他支持什么样的一个 luns 系统啊。你们可以自己去宝塔这边去看一下啊, 这边我已经安装完了,安装完之后呢,我们在我们这界面里边有一个软软件商店,对吧?这软件商店呢,我们这边是有一个 啊,邮局管理器的,我们一会就要安装他,但是呢你看他他需要二五端口,一般情况下像那个腾讯云啊,阿里云啊什么的啊的还有百度云呢,这些大比较大的厂商啊,一般都会封锁这个二五端口,你们要自行去解封一下,可以去提交一下公单啊,可以有有一定的数量可以去 解封这个二五端口的,是百分之百能解封的,但只不过他是限制你解析的服务器数量啊。可能我就有五个名额呀,谁有十个名额这个意思啊? 这人人都会都有这些免费的一些名额的啊,最多的也就是能解封那那个五六个啊,这个意思。 好的,我这个呢,我用的是腾讯的,我们我也在之前去解封过了,我也提交过公单了,所以我当前我这二股档口是可以用的,对吧? 完之后呢,我们首先还要有一个域名,我的域名是存在一个案例原因上的,我们随便买了一个小域名,就是这个域名在域名解析这地方呢,我们在安装这个。呃,域名解析这部分,我们有安装这个宝塔时候的时候,宝塔这个邮局管理器的时候会用到啊,我们现在去安装一下这个管理器啊,确定一下 让他去按一下啊,他是正在选择下载节点啊,这个速度应该是,呃,挺快的吧, 我们先去耐心的去等待一下他安装的一个过程,看看到底有多久我们已经安装成功了,对不对?安装成功中,我们点开这个设置,点开设置他说你当前外装由急需等 安装,那我们就点一下安装,如果这个时候你没有开启二五端口的情况下,这个东西是安不上的,那我们这个安装的过程是稍微有点慢的,可能要需要五指十分钟,是吧?要五指十分钟, 那五至十分钟呢,我们就要等待一下,这个时候我先要暂停一下,之后安装之后之后呢我们再继续来讲解啊,继续啊,我们已经安装完毕了啊,这里边呢我们首先呢要添加一个域名,对吧?添加一个域名呢,我们的域名我们就已经有了,我们的域名是什么呢?就是这个域名对不对?我们复制过来。 哈喽各位,我们把域名放在这里啊,放在这里之后呢,我们的 ag 路是什么东西呢?大家解释一下啊。当前的域名仅支持一级域名,也就是说我们不支持二级域名的,只是一级域名的 ag 路呢,也就是像他这样我们的一个随便的一个东西,我们去定义一下,我们就需要卖啊点这个 东西,这个时候呢我们提交一下,他正在添加域名,他会说 a 记录解析失败,这个时候呢我们需要到这边去添加一下那个 a 记录啊,也就是我们的 a, 这记录选择 a 主题记录呢,我们选择一个麦尔,之后呢记录值呢?我们就是我们的一个, 哎哎,这个我们写上圈啊,我们这个记录值呢?应该就是我们这个这个东西域名啊?我们 a 记录吗? a 记录就是这个东西,那我们啊,就是迈尔,没错,是迈尔的,我们记录值就是我们当前这个服务器的一个 ip 地址啊。我们 这个复制过来我们之后确定一下,这个可能你的解析不会当时生效啊,也可能是立刻就生效的啊。

本节课我们学习一下开发工具选项卡下面关于红安全性的设置。 gs 红可以为我们的 wps 操作提供诸多的便利,但也会给病毒带来可乘之机,我们该如何进行红的安全设置呢?接下来演示一下它的四种处理方式。点击红安全性 首先说一下第一种非常高,也就是说只有添加信任的位置才可以运行带有 gs 红的文件,接下来我们选择这一项,点击确定。接下来我们再来添加一下位置,单击文件下来才能 选择选项,再选择信任中心,在右侧点击添加新位置,比如当前 我们添加的位置,在红安全性文件下复制他的路径, 把我们的路径给粘贴进去,点击确定。此时当添加到这个文件夹下面的所有带有结色红的文件将可以安全运行,点击确定。接下来我们做一下测试, 当前这个文件夹下面并没有任何的文件,如果我们直接双击它外侧的工资表, 此时文件可以打开,但是我们在里面写的代码将没有办法运行,我们可以测试一下。选择工资表头,点击生成工资条,此时提示红背 被禁用,接下来将该文件关闭,并且将工资表拖放到红安全性这个文件奖。接下来我们再次打开, 此时我们再次选择表头,点击生成工资条,便可以正常的运行, 这是红安全性的第一种方法。接下来我们再来看第二种,通过签署的后,这种设置需要涉及到数字证书,用户操作起来比较麻烦,因此此种设置方式在此不做掩饰。接下来再看第三种 中表示文件,在打开时,需要用户自己来判断是否运行该文件,点击确定。接下来我们把该工资表移出到 信任的位置, 然后再双击打开, 此时有提示红已经被禁用。如果点击启用红,则可以正常的生成工资条,也就是可以正常的运行我们写的结死红带吗?如果点击右侧的叉号进行关闭,则不能正常生成工资条,我们点击启用红, 再次选择工资条表头,点击生成工资条,可以正常运行 gs 黄单吗?接下来我们再演示第四种。 第一,表示信任。所有的带有结实红代码的文件,也就是默认运行所有带有结实红代码的文件,我们点击确定。接下来我们再次打开工资表, 没有任何的提示,我们选择工资条表头,点击生成工资条代码正常运行。关于红的安全性设置,用户可以根据自己的实际情况选择不同的安全级别,本节课关于红安全性的设置就讲解到这里,再见!

那这个界界面已经完成了,那咱们来完成一下这个功能,那功能呢?其实咱们主要做两个功能啊。两功能?第一个什么功能啊?我一点这个小点的时候可以切换 图片啊,哎。切换图片,所以第一个功能我们要做的是什么呢?我在这来写一下,叫什么呢?叫做点击我们这个长链接, 要切换到我们这个指定的这个图片啊,点击超链接,切换我们到指定图片。那么说怎么切换的呀?点击第一个超链接, 点击第一个超链接,显示什么呢?显示第一个图片,点击这个,哎,第哎,二个超链接,是不是显示第二个图片啊?我就不再多写了啊,这都是废话了啊。第二个图片,那点击第三个显示第三个,点击第四个图片, 显示显示第四个呀,哎,显示第四个啊,这么一个东西,那这事其实我们都熟了,我应该先干嘛呀? 点击超链接,那我是不是要给给超链接绑定单机响函数啊?哎,绑定单机响函数,所以这里边我们来为什么呢?为所有的这个超链接都绑定我们这个单机响应函数。直接来一个 for 去弯先便利 y 一个 i 等于 零,然后,哎小于我们这个 oa 点一个愣死,然后来一个,哎,加加变力啊,然后这个 oa, 然后来什么呢? i 点一个 on 和立可等于一个 function function 呢?直接来一个额尔他一个这个 hello 保存,咱们来看效果。现在我一点 走,你是不是 hello 啊?这一走你是不是也 hello 啊?哎,点谁是不是都是 hello 啊?哎,这一块就 ok 了啊。单击响应函数绑定完了,那接下来呢? 接下来要干嘛呀?是吧?切换图片了,点击第一个长链接显示第一个图片,点击第二长链接显示第二个图片。那问题来了,我点的是第几个长链接啊? 首先我说我点的是哪个超链接,我知不知道?知道这次是不是就是啊?这次就是啊,我一刷新走你是这个呀,再点是不是就是他,但是注意我们知道是谁不重要。我得知道什么呀? 我得知道他是第几个吧,哎,我得知道是第几个,所以第一件事我需要干嘛呢?我需要,哎,知道我们这个,哎,叫什么呢?叫做获取我们点击超链 接的什么呢?超链接的锁引啊,我要获取我点击的那个超链接的锁引。那怎么获取?哎,我这个乐特,哎,行不行,行不行? 可以是吧,这问题咱们以前演示过,哎,这是一个单机响应函数,外边是一个负,我循环,他们的执行次序是什么? 先执行负额循环,然后执行单击函数吧,也就是说当我单击想函数执行的时候, fux 循环人家早就执行完了吧。那复合都执行完了, i 是几啊? 哎,是哎,是五吧,哎,我最大长度应该是五,所以你就会发,发现什么呢?你点每一个是都是五啊,所以你,哎能获取到吗?获 九哥,哎,注意啊,一定注意。他们执行次序是先干嘛呀?先执行负卧循环,再执行什么呀?单机响应 函数啊,咱就讲函数,这就像什么呀?这就像我这块,可能我是一个假设,我是一个卖苹果的,卖苹果呢,我家有一个大筐苹果,然后呢,我要干嘛呀?把这些苹果装到小筐里边去 去卖,哎,可能有一堆苹果是吧?一堆苹果,然后往里装,我说我这数,哎,从大框往小框里数啊,你应该能想这个镜头是吧?我这数一个、两个、三个、四个、五个、六个、七个、八个。假设我装了八个苹果,那现在我从这个框里我随便拿出一个苹果来, 那我问你这是第几个知道吗?不知道吧?你装的时候你数的,你取出来的时候是不是就没数了?哎,你不知道你拿的是第几个, 那怎么办呀?那怎么办呀?咱们先把苹果这问题解决了,这是不是一个意思呀?你现在是一个一个绑定的单机显函是不?绑定完了,你是不是不知道他是第几个了?那现在就需要知道怎么办呀? 哎,那我这么想呗,我这有苹果,我拿出一个,第一个苹果我咬一口放里边,第二个苹果咬两口放里边,第三个苹果咬三口放里边,第八个苹果咬八口就是变成糊了是吧?变成糊了,然后来人买苹果了是吧?说我要第八个苹果, 他把壶拿准了,这第八个。甭管说这个招高不高,但是至少我们是不是可以知道我们这个是第几个苹果了?哎,第几个苹果了,那其实你不一定可以咬是吧?可以干嘛呀?拿个笔写上是吧?或者贴个标签,什么都行啊。哎,贴个标签,那同样我能给苹果贴标签, 我能不能给我这个超链接贴标签呢?哎,但这是为我们这个超链接来绑定单击响应函数,那我能不能给他贴个标签呢?那我是不是希望我们的这个每一个超链接都能去保存他自己的那个锁引啊, 哎,那我想想,那我现在这个哦,这个 a, 然后一个,哎,这个代表的是谁?是不是代表的我每个长按键啊?然后来什么呢?点一个这个 index, 点一个 index 什么意思?我是不是给他添加一个 index 属性啊?来什么呢?来等于哎, 完了等于哎,或者这样咱们为了区分一下,我这不叫一代,叫一个这个 number, 哎,给他来一个编号啊的编号,那这是什么作用呢?我们来为每一个这个超链接都添加一个 number 属性,那我们来看看这是什么效果?这个 for 循环会执行五次,对吧?第一次执行的时候 i 是零,那我就是把第一个长链接取出来,然后给它加一个 number number 属性,那属性值多少?是零吧?那第二条链接呢? 是不是一啊?第三个长链接是不是就是二啊?以此类推,那现在我每个长链接里边是不是都有一个 number 属性啊?这个值是不是就是我们这个 a 的一个?所以啊,它的作用就相当于我在每个苹果上做了一个标记。那只不过我是在什么呀?在对象上做这么一个 标记吧,标记完了怎么取啊?这次是谁啊?这次是不是就我们那个对象啊?这次点 number 是不行了呀,对吧?我一保存,咱们来看一刷新,这一点 零,最后一个四,这个三,这个二,这个一,估计有了,哎,就可以了啊,所以注意怎么玩的,就是把这个索引作为我们这个对象的属性去保存就 ok 了啊。好, 那现在我们已经知道我点的是哪个苹果了,点的是不是苹果啊?我已经知道我点的是哪个超链接了吧?那现在我假设我点的是所以为零的超链接,我是不是应该就显示 锁引为零的图片啊?我点的是锁引唯一的长链接,是不是应该显示锁引一唯一的图片啊?哎,所以获取长链接的锁引并什么呢?哎。并将其设置为我们这什么呀? index, 哎,直接来什么呢?来一个这个 index 等于一个 this 点 number, 我干嘛了?我是不是将这个 this 点 number 值复值给我们全局变量 index 啊?哎,你说我要修正,我当前 正在显示这个图片吧,哎。那然后呢?然后呢?然后我这是要切换切换图片啊,哎。切换图片,那这块切换图片怎么切啊?哎。是不是修改我们这个 i m g list, 点一个 style, 点一个 left 呀,哎,等于啥呀? 等于啥呀?如果我想显示第一张就是什么呀?第二张,第一张是什么呀?第一张是 零吧,哎。第一张是零 px, 所以这块如果你显示零 px, 他干嘛呀?他是不动啊,哎。如果你想显示第二张呢? 是负五二零 px 呀,哎,五二零 px, 我这一刷新这一点是不变成他了呀。你要想显示第三张呢,是负幺零四零 px 呀,易保存易刷新 第三张了呀,哎,那这有什么规律啊?哎,我们来说第一张第一张锁引为多少?锁引为零,那我这个 left 呢? left 是不等于零啊?咱们就这样写啊,第一张锁引为零, left 等于零,那第二张呢? 第二张所以为多少?所以为 e left 呢?负二零吧,哎。负二零。第第三张 第三张所以为二,应该选什么呀?负的幺零四零吧,看见规律了吗? 哎。那这个第一张显示零,我们说零乘以负五二零,是不是就等于零啊?哎。第二张显示负五二零零乘以 不是一乘以负二零,是不是负二零啊?哎。第三张显示一零四零二乘以负五二零,是不是就是负的一零四零啊?所以你发现什么了?正好是,所以乘以那个 负二负负外二吧,所以你有没有啊? index 吧。哎,所以我们这只需要干嘛呀?来一个负五百二乘以什么呀? index 就行了呀,然后不要忘了加上一个 ps, 这就 ok 了呀,一保存咱们再看刷新。走走走走走,这不就 ok 了呀。哎,点哪个就切换到了哪个啊,就切换到哪个了。好,那这块切换完了,但是我们先来看一个问题, 我这点是永远是第一个呀,哎,点没跟这变,那怎么办呀?那我们说了,你 点完了以后,你说这条那个点也跟着变呀,哎,所以在这我来干嘛呢?来修改我们正在 是选中的这个 a 呀,哎,修改我们正在选中的 a, 我们先采用这么一种方式啊,来一个 o, 一个 a, 然后中科二。一个什么呢?一个这个 index, 点一个,其实我就直接这次就行了啊, style 点一个这个 background color 等于什么呢?等于一个 black, 你先看我这么写行不行, 试试是吧,一刷新走你行了是吧?走你走你走。你完了, 是不是都黑了呀?哎,都黑了,为什么呀?你这一设置完了是不是都点一个黑一个,点一个黑一个,你不仅应该把它变黑,还应该把别的干嘛呀,是不是变红啊?哎,变红,所以这么写呢? 不行啊不行,不能这么写。那怎么办呢?那现在我们来看啊,这变黑变红这事,我们是不是每次都得干呀?每次都得干,那这样我们不妨干嘛呢?定义出一个 方法,哎,专门来干这个事啊,我在这来干嘛呢?注意了,这个方法我们就在内部用,所以这个方法就直接写到这个 windows 里边,如果你还需要在家用,你就写外边,在这,你直接在这用啊,来干嘛呢?我们来 创建一个这个方法用来干嘛呢?用来设置我们这个选中的什么呢? a, 直接来一个方。什么叫一个 set 一个 a, 设置 a 啊?设置 a, 我来怎么写?看着 for 循环 y 一个 a 等于零,然后 a 小于 o a 点一个 lins, 我是不是对这个 a 进行便利啊?哎,对这个 a 进行便利,然后来什么呢? o a 中号 a, 点一个 style, 点一个这个 background 的 color, background 的 color 等于什么呢?等于一个 red, 我知道在干嘛, 我是不是对所有的 a 进行便利,然后把他们背景颜色设置为红色呀?哎,红色,然后看这我掉一个这个赛特 a, 那这回我一点什么效果? 已刷新,现在一点走,你一点一点一点,是不全变红了呀?哎,全变红了,别着急,全变红了也不行啊,那还得干嘛呀?这咱们先写一下啊,便利我们这个 所有的 a, 并什么呢?并将他们的这个背景颜色设置为红色啊,设置为红色,然后这呢我还要干嘛呀?将我们这个 选中的 a 设置为黑色。哪个是选中的呀?是不是就是我那个 index 那个呀?哎,设置为这个黑色,直接来一个 o a, 然后这来什么呢? index 点儿一个 by 一个 ground 啊,对,点 style 啊,点 style s, t, y, l, e 点一个 background color 等于个 black, 那这什么效果呀?我让其他的 a 都变红色,然后剩下的选中的是变成黑色呀。那这回再看一刷新,再一点投,你 走你走你走,你是不跟着变了?哎,就跟着变了,但是看没看到问题啊, 看见了吗?我鼠标一上的那 hover 是不是没了呀?哎,为啥没了呀?我这是不是给他设置一个内 连样式啊?内连样式的优先级最高是不是比内后位要高啊?所以这后位样式是不是这还能出来?但是当我点了一次以后,是不是出不来了,哎,出不来了,那这一块咋办呀?内连样式的优先级高怎么办呢? 哎,那我这样写,我不写 red 等于什么呢?等于一个空串行不行? 背景颜色等于个空串,等于是我把他那个内连样式背景颜色是不给他去了呀。内连样式背景颜色去了,那么说了,我样式表里边是不是有一个背景颜色的红色呀?那内连样式没了,是不是就样式表里边 生效啊?哎,那这样就干嘛了?是不是就不会覆盖了?哎,不会覆盖了,这个再看啊,我们来看一刷新,再一点是不就没事了?哎,就可以去切换了,看懂了吗? 哎,一定要注意啊,这块等于空串是干嘛?就是把这个 back 管的样式给他去了,去了以后是不是就是我们那个什么呀,默认样式吧,哎,默认样式啊,这么一个效果啊,好,这块整完了,这东西是不是非常简单呀?哎, 但是有一些细节地方非常多,是吧?哎,细节地方非常多,但是这东西切换是切换,但是这玩意还不如咱们之前做那个,是吧?费半天劲,结果还是这个效果, 是没转起来啊,哎,所以我们需要让他转起来啊,转起来我们就需要加一些什么呀?动画的效果,那这玩意简不简单呀? 哎,咱们把咱们那个 toos 是不是给它引入进来就行啊?哎,来引入我们这个工具,引入我们这个工具,咱们是不是只需要加咱们那个木函数,是不是行了呀? 来这里边来一个 src 兔子,引入进来以后咱们再看。那现在这个切换我还用不用这么切换了?不用了吧,哎,我把它注了来 这块写出。是啊,这是设置我们这个选中的 a, 选中的 a, 那在这呢,我来一个,叫什么呢?哎,咱们使用什么呢?使用我们这个木偶函数来切换我们这什么呀?图片怎么切换?直接来一个 木木参数给列出来了。第一个是传一个 object 吧,要执行动画的对象是谁啊? 是不是就是 i m g 例子呀?第二个是我们要执行动画的这个属性,谁呀?是不是 life 的呀?第三一个是我们这个什么呀?他给的是不是一执行动画的目标啊?目标是哪啊?是不是负的五二零乘 以我们这个 index 呀?哎。然后最后一个不是最后一个,第第四个速度,速度,先来一个十,最后一个是我们这什么呀?回掉函数先写上。不一定用啊,不一定用,先写上一保存是不就写完了呀,哎。然后再一刷新,走你。这回你再看 是不是就有轮播的效果了,有点,有点慢,咱们来一个二十,已保存,在已刷新,走,你 是不是就 ok 了呀?哎,这个图片就给他切换了,但是你要从最后一张切换到第一张,稍微会有点 有点长,是吧?有点长啊,这是我们的这么一个,这个效果,咱们就给他做完了,哎,就做完了,点击我们这个切换图片啊,好,那这个里边呢都是咱们学过的知识,没有难点,稍微有一点 难度就是我们获取这个,所以这块你稍微看一下,然后还有我们设置这个 a, 这块其他地方其实呢都不难啊,其他地方都不难,这块功能就完成了。然后呢这个功能完成了,还有一个什么呀?是不是自动切换呀?自动切换是不跟这个 差不多了?哎,差不多了,今天晚上把这个斜斜,然后去想想这个自动轮播自动切换图片怎么来完成啊?怎么来完成?来,我们呢先停一下。

介绍一下全选命令还有反选命,在 ps 图像处理过程中的,有时候是需要将图像全部选取的,也就是全选,这个时候呢就不需要使用选择工具了, 那么只要执行命令就可以了,执行全选的这个命令方法呢,我们就来到这个里哈,首先呢点击这个选择, 在这里呢有一个叫全部,他呢有一个快捷键叫 ctrl 加 a 啊, 我们来拿这张图片为例哈,我们呢是先把整个这张图片进行一个选择,整个一张图片做一个选区,我们只要在这个选择里面点击全部,这个时候我们可以看到哈,这里呢 就出现了这么一圈这个蚂蚁线,蚂蚁线呢就是把我们这个整个的这个图像啊,以选区的形式整个全部选取了,这个呢就是全选的一个使用方法啊, 那么我们再来看一下这个哈反选命令呢,是将当前的这个图层中的选区或者是非选区域互换,比如说我现在以这张图片为例,还是他以他哈,然后呢我们使用这个模范工具,在这里呢选择主体, 在选择完主体之后,我们可以看到哈,现在呢围绕着这个鹦鹉还有这个树干就出现了一个选区, 当前我们选的就是这个主体物哈,他呢是被选择出来了,我们是想要进行一个反选,将原先未被选择的区域, 也就是把它取消选取,而把这个背景,那么如何来进行反选,我们就可以使用这个选择,在这里呢有一个叫反选 快捷键呢是 safe 的 ctrl 加 i, 这个时候我们可以看到啊,围绕着这个鹦鹉以外就生成了一个这个蚂蚁线啊,然后呢我们就可以 ctrl 加这这个背景啊给他 复制出来了,这个呢就扣取完成了,那么我们再看一下后退一步哈,那么我们还可以呢使用这个模范工具在这个上面呢,单击鼠标右键在这里呢,我们可以看到哈 有一个叫选择反向,我们直接点折反向,选择反向哈,和这个刚才我们操作的 步骤啊是一样的哈,就把这个背景给他选择出来了,这个呢就是在这里所要讲的一个是全选,一个是反选,这个呢在我们使用 ps 修理图片或者是做图的时候是经常要用到的哈。

从这一刻开始呢,我们来讲一个新的支点,叫做动画,这个动画呢是我们在 css 阶段当中最后学习的一个知识,当然也是最好玩最有趣的一个,有了动画以后呢,我们可以做出很多很好玩的效果来。在讲他之前呢,咱们这样啊,先简单说一下什么是动画,我相信大家应该都能知道,所谓的动画呢,其实不是真的在动,他是有好多张图片切换,让我们人眼从视觉的感受上看起来像是在动。 小的时候有没有看过这种小人书,我给大家找了一个图啊,你看一眼小的时候有没有看过类似这样的效果,就这个小人书,然后书里边有很多张纸,你把这些纸快速的翻动,看起来里面那个效果呢,就像一个动画的感觉, 这个就是所谓动画的形成,然后咱们人眼能识别的这个效果是什么样的呢?一秒钟之内超过二十四张图的切换,就会感受上是一个连贯的,就看不出任何的卡顿了。如果你少于二十四张,看起来就是顿的,就是一个图,一个图的切换超过二十四张图 片越多,看起来这个动画就越连贯,但是过程当中每一张的这个图我们称之为叫真。给大家找了这样一个图看一下,这就是我们所谓的叫竹真动画,这个真呢 指的是其中的一张图,或者是一个这样的动作,那如果你在一秒钟之内有二十四张这样的图来回切换,看起来这个人物就是一个走动的状态, ok 啊,这是对于他一个简单的理解。当然我们现在看电视也好,你用手机刷也好,我们现在这个动画的效果会越来越精细,我们最高的这个效果都是一秒钟切六十,真的 一秒钟给他六十张图,来,我接过去,看起来动画特别连贯,感兴趣的话大家可以找这张图,甚至可以自己去试一试,做一做。那了解这个动画实现的效果以后呢?接下来我们可以通过代码来实现一下,我们可以简单定一个动画,有点像是咱们之前讲一个过渡,但是他们俩其实也不太一样。来写写试试,把这关掉,来打开编辑器,先写一个结构,比如说还是外层有一个 div, 我叫做奥特,然后里面套着一个小的 div, 我叫做英特, 给他做一点基本的样式,找到这个奥特,说这个宽高吧,宽度,假如说一千五百个像素高度呢?我来一百个像素,然后咱们来个小边框,一个像素缩列的实线,来小黑边框啊,来看一下基本的效果是这样的,一个长条,那接下来我们把它放在一个屏幕稍微好看一点的位置,抹指左右 高速上下为零调一下,这样的话他就居中了。然后上面的距离太近了,我们稍微调整一下,来一个脉冲泡表,说给一个一百的像素,哎,就是这样的效果。然后接下来呢,它里边其实套着一个小的 div, 就音等于吧,我们可以给那个小 div 设置一个颜色,大家可以看得见。找到这个小的音乐宽度呢,我们给一个一百像素高度,也给一个一百像素,这样就是正方形,来一个背景颜色,马桶颜色,来看一下效果就这样, 然后接下来我要做什么?听好啊,接下来我要这样做,想让这个里边的 inner 小盒子从左侧整体移动到右侧去。咱们 今天给大家讲一个过渡,还记得吗?就是我想让他变长填满了整个这容器。我现在不想填满,我只是想让当前的元素发生一个位移,只不过这个过程需要一个动作,那接下来我怎么能让他发生一个这样的动作呢?这个就得需要做一个动画了。首先说动画怎么做啊?是这样的,你需要两个步骤,第一个步骤呢,需要先自己定义一个 动画,或者我们叫做定义一组关键针,知道什么叫关键针吧?就是我们刚才说那个图片一张一张切换的过程,那为什么这个叫 关键?真的是这样的,比如说我们一秒钟之内有二十四张图切换,你看起来就像个动画,但这个动画呢?咱们不用把二十四个关键的地方都描述好。比如说刚才这个东西,我想让他从左边开始移动到中间移动到右边,那也就是说你可以描述最左边这个位置,描述中间这个位置,描述右边这个位置,三个关键的位置就可以了。 剩下中间那些位置他可以帮你自动的填充好。哎,所以这个相对来讲比较方便了。第一个咱们先自定义,那定义好了之后呢?你还需要让刚才这个音乐去应用一下这动画。对,第二步还需要做一个动画的设置,就是得让刚才那个小的元素应用一下动画, 这样的话他就可以动起来。那咱们一个一个来写,首先第一个如何去自定义一个动画呢?是这样的,这个自定义动画咱们需要另外一个关键字看。好啊,这样写的,首先写一个圈艾特,然后写上一个这样的东西,他叫做 key, 然后咱们写完这个以后呢,这个 keyforms 表示的是我要开始自定义动画,但是未来有可能这个动画会有很多。那你怎么去找到你定义的这一个动画呢?其实很简单啊,需要起个名字 能懂的意思吧?那这名字呢?其实里面来说,你随便写,写什么都行。大括号这个表示我要自定义一个动画,然后叫这个名,以后你找到这个名字就可以用了。那这个名字呢?虽然可以随便写,但是我建议大家咱们最好还是要规范,就写这个名字吧,要见明知义什么意思?就是看到这个名字大概猜他是什么含义, 说我现在想让中间这个小的音呢,去移动,可以写个这样,比如说我叫木,可以把移动这个就是自音译了一个动画以后,找到这名字就可以用了。然后这个里头写什么呢?这个里头当然写你动画当中的那一组关键针,最简单的你得写两个关键针,一个开始,一个结尾,中间的过程都帮你填充好了。 咱们之前讲一个渐变,还记得吗?最简单的渐变是不至少得给两个颜色,从什么颜色到什么颜色,中间帮你自动挡变化管理。哎,所以这个也是一样,我们写个最简单的啊,从哪开始到哪结束,咱们写两个关键字,从哪开始就叫 front。 写错了啊,不是,咱们以前讲一个 form, 这个 form 是个表单,是一个标签。 prom 呢,表示从哪里开始,这个是关键针的第一个,然后到哪结束呢?这个叫吐,就从这开始到这结束。但是我们指的开 结束不一定非得是位置不可,也有可能是 form 里边写了一些颜色,从红色的,然后兔变成绿色的,也可以,等等吧。这是一个结构啊。那比如说今天我想做什么呢?很简单,我想让刚才这个元素从最初始这个位置运动到最后边这个位置。那你 form 开始的时候那位置在哪?就是原来自己的位置吗? 就没有任何移动了。比如说你写一个 transform, 然后来一个 translate x, 零像素就没有任何的移动,那吐到最后的时候他能干嘛呢?让他做一个位移,移动到多少? 咱们算一算吧。刚开始我这个宽度是一千五,然后这个元素自己的宽度是一百,减掉以后剩一千四百,所以让他最后移动到一千四百像素这个位置去能看到吧。哎,所以这是一个最简单的定义,动画定义完了之后呢?接下来这个动画到底是谁来用?这才是关键。那所以接下来我们得需要设定这个动画的应用,给谁添加动画,谁动谁添加。 刚才我们想让谁动呢?我们想让当前这个婴儿动,所以你需要找到这个婴儿,给他去设置动画的一些属性。那这属性怎么设置呢? 跟动画相关的属性,他都是以这个单词开头的,叫做,因为没审,以这个开头的都是跟动画相关的,然后咱们可以把它拆分开,一个一个写,当然也可以写这个复合属性,这个复合属性咱们到时候再说啊。先来讲一讲这些带横杠的,这个有点像是咱们刚讲完的这个过渡,大家这个过渡咱们需要设置什么呢?过渡至少得需要设置两个东西,第一个就是谁过渡或者叫哪一个属性过渡, 第二个就是你过度发生的整体的时间到底多长,这样的话我就可以动起来,这个也是一样的,你至少需要告诉我两个事情,第一个事情就是我当前这个音乐元素到底应用哪一个动画,因为这里边可能会有好多个 k f 认词, 我到底用的是哪一个?找名字。第二个,这个动画应用的总时长是多长时间啊?所以我们来设置一下,来写第一个到底应用的是哪一个动画, 找了一个动画名能弄进去吧。好了啊,这个属性叫什么呢? nav 是开头的,它叫做 navs ga 内幕,然后名字是谁呢?你刚才写的这个木木就是名字, ctrl c 粘过来放这就可以了,嗯,懂吗?非常简单。然后第二个告诉我,这个动画它整体英文 时间多长?设定动画运行各种时间,这个时间还是一样,正常来说应该是以秒为单位的。这个时间叫什么呢? navishigan, 这个单词看着眼熟吧,咱们讲过渡的时候是不是有一个,这个指的是持续时间,比如说我让他持续四秒钟,这个就完成了。很简单,先定一个动画,接下来找到那个元素,让这个元素应用一下这个动画就可以来,咱们试一下看效果啊,刷新 看到吗?有没有发现这个东西跟我们之前讲过渡还有点像,但是过渡呢,你得需要个触发条件,比如说当鼠标悬停的时候,然后那个元素就变长变宽了,这不是这个,是当浏览器里边的元素加载的时候,他就马上会发生一个动画的效果。 看到吧,然后在这个动画运动过程当中,你观察几个事情啊?首先第一个,整个浏览器加载了以后,他是不是自动就会执行这个动画?第二个,这个动画有没有发现他只执行了一次?第三个动画执行完毕之后,他会回到最初这个初始的位置。我跟大家讲,这些东西其实都可以设置,就是我们可以设置当浏览器加载好了之后,让他延迟一会再运动,不是马上去运动。 第二个,中间运动时间咱们看设置了。第三个,这个运动的过程到底是一次还是好几次,也可以设置最后一个,就是他运行完了之后,最后是停留在最初的那个初始位置,还是停留在最后结束那个位置,这些东西咱都可以设置,别着急。好吧,慢慢来。那关注我课的同学打断一下,我是阿托老师,能跟着我学到这呢,我相信你肯定对我讲的内容非常认可。 感谢同学的信任,阿托老师送你一个好东西,一套精心录制的大师课,免费的哈,不用紧张,这套课程里边一共六个章节,每一节都是满满的干货,像什么事件循环呀,浏览器渲染原理啊,属性描述服啊,还包括几个经典的案例,甚至 voe 原码思想的拆解等等, 你现在可能还没有学,没关系啊,我告诉你,这些东西都是你未来求职比面试或者是在职提升必须必备的东西。所以这套课领回去好好学。我坦率的讲哈,凡是里边设计的知识权势的深度都达到了一个圆码级别,你基本上找不到第二个人能抛弃到这种程度的。那换句话来说,一旦笔试或者是工作中用到这些技术,你表现出来的水准很 定,在其他竞争者中有着压倒性的优势。关注阿涛老师这么久了,我也帮不上别的忙啊,大师课呢?就算阿涛老师送给大家礼物去领就完事了。大师课怎么领呢?在评论区第一条,点击加入粉丝群,按照群里边提示领取就可以了,领回去一定要好好看。行,咱们继续上课。刚才我们通过一个简单的实现呢,把这个动画基本上写出来了,那接下来我们再来研究个什么问题呢?就是他这个动画里边到底能写 什么东西?我们刚才只是在里边写了一行代码,只是做了一个位移。那除了位移之外还有别的吗?其实可以,比如说你可以让他位移的同时加一个旋转,就是看起来我这刚才是平行的移动过去的,我让他像一个车轮子一样,一边旋转一边走过去 也可以,我们可以这样做,让他移动一千四百个像素,同时在做一个旋转。旋转叫什么?叫 rotay 吧,我们可以给个 rotay z 对吧?啊?或者你直接给 rotay 都行,让他旋转三百六十度,就是从起始位置开始是没有任何旋转的,到终点的时候移动了一千四百个像素,同时还要旋转三百六十度,那你看到效果什么呢?就是他一边运动一边旋转, 有些可能看蒙了啊,老师,这是一圈吗?我跟大家讲这是一圈啊,不信的话你可以在这里边放一个文字,你看一下,看了吗?那个一使用在左上角那个角落里,然后这个元素呢?一共就转了一圈,从头到尾就这么一圈,同时还做了一个位移的变化, 如果你想着定两圈的话,你就在这改,有时候改成七百二十度,那就是移动的位移还是一千四百的像素,但是他在中间的过程当中一共需要选择两圈,一圈两圈就这样的, ok, 这些都可以啊,甚至你可以在他位移了以后,到终点的时候让他变成个圆形,这都可以做到好不好啊?我把这个数字给大家拿掉了啊,比如咱再加一个,我想让他在终点的时候变成一个圆形,圆形怎么办?这个叫高灯回九,给他一个百分之五十,这样就是在位移的过程当中还发生一个形变,看啊,从一个正方形慢慢滚滚滚滚,到最后 变成个圆,那甚至你还可以在滚动的过程当中还让他发生一个比的,比如说颜色的变化,这个也可以做到给他添加一个白,刚开始是一个藤蔓头颜色的,然后最后让他的 battlecolor color 变成一个盖不住,变成个天蓝色,来看一下 效果,就这样的一圈两圈,最后慢慢到蓝色。而且细心的你有没有发现他这个运动的过程中间还有一个运动的模式,有没有发现他最后的时候减速了?聪明同学应该也知道这个东西,咱们也可以设置这个就是基本的动画使用,然后在这基本上呢,我们再来说一个细节的问题啊,大家看我们刚才写的这个动画呢,好像只有两个关键针,一个 一个是起始的位置,一个是到终点位置,他发生了一些变化。那我问大家一个问题,请问这个起始的 form 里边这一行代码我能不能不写?其实可以的,大家想想,我现在起始的这个位置就是跟原来自己的位置是一样的,因为他零个像素的偏移,根本没有做任何的位移, 如果你把这一行去掉以后,好像没有什么影响。所以就是说你在做动画的时候,假如说刚开始初始化加载完成以后,他的位置就是自己起始的位置,没有做任何的调整, 其实这个符上都可以不写,就省略就可以。我们直接告诉他最后到达终点的时候你要变成一个什么样子,然后他中间就会帮你股权,这些个真能懂什么意思吧?给大家看我这个符上我控制啊,啥也不写,再来运行一下,你看效果跟刚才那个是一样的 啊,所以这个是我们通常在开发当中可能会一个小细节,就是 forum 这块,如果跟刚开始一样的时候你可以省略,那这样的话大家看如果你把它不写我删掉,是不是也可以,因为它有个空着嘛?那你只写一个兔 好像也没有什么问题。这个应该是你在做真正动画的设置时候最简单的一次吧,就是只给一个关键针,最后的这一个,这个是最基本的,或者是叫最简单的一个动画效果。那能不能给多一点,就是我想让这个动画稍微细腻一些, 我刚才说过了,这个东西虽然他是自动补齐的,但他补齐的中间没有任何其他的调整,他只能帮你做一个这样的渐渐的变化。那假如说我想在中间的过程当中添加一个自己的颜色,比如说我想让他从一个 tomato 颜色的中间变成一个紫色的,再变成蓝色, 这个是不是也可以?这个有点像咱们之前讲那个渐变,还记得吗?我们给渐变设置最基本的样式是什么样的,就给了两个颜色,什么也没给,那他就会帮你从 a 颜色变化到 b 颜色,但是我们可以在中间掺杂个三个、四个、五个颜色,这样的话他的变化会更细腻,而且你还可以指定每一个颜色和颜色中间他那个区间。所以我们这 调整动画的时候,除了这个最基本、最简单写法之外,其实我们还可以做更深入的、更细致的调整。我们可以在中间多插入几个关键针,然后在中间做各种各样颜色变化。那这样的话咱们就不能写一个 to 和 front 了,因为他们只有两个关键字,一个是第一针,一个是最后一针,那中间那些没法表示中间这些,如果你想要表示怎么办呢?我们得使用百分比 给大家写一个啊,看,我把这个这样 ctrl c 粘一下,然后上面这个呢,我先注意要不要了,你看啊,还是定义一个 keyprints, 然后名字呢?还叫木木,因为上面这块我引用了木,我就不改了。那接下来这块呢,就不写弗拉毛兔了,你可以写这个刚开始的第一针,咱们可以写百分之零,就百分之零的位置上他要做个什么事,当然我现在可以省略这个事。然后兔呢?是不是已经到运动的最后那个关键针了?就最后一针,你可以写这个叫百分之, 那写成这样的效果跟刚才那个 flow 和吐其实没有没有的区别,但是有了这个百分之零,百分之百之后呢,你可以在中间加呀,比如说我来一个百分之三十,哎,我想在运动到百分之三十的时候给他做一个其他变化,比如说我还是写这个吧,百分之三十的时候,我让他运动到,他说四百,对吧?然后让旋转呢,旋转个九十度,然后让他中间的时候来一个, 比如说包点 videos, 二十个像素,让他稍微变一点小棱角。然后接下来呢,我让他来一个颜色,比如说我在中间的时候过渡到一个什么颜色呢?我这样吧,我把刚开始那个改了吧,刚开始给我来一个海军蓝色,我们用这个,然后到百分之三十的时候,让他变化到一个坡口,变化到紫色,然后从百分之三十一直到百分之百,再变化成 一个粉色。啊,这样的效果现在是前百分之三十,运动的比较慢一点,因为全身角度只有九十度,到后边旋转了一圈半码,而且前面的话运动的距离比较短,后边这个比较长,颜色也发生变化,咱们可以试一下看看效果来刷新 看看前面三十,然后停住了,然后接下来再动,这个是可以的。当然你这个里面其实理论上来说,你可以从百分之零开始,百分之一、百分之二、百分三挨个设置都可以。只不过咱们在开发当中可能没有人这么写,通常我会找到几个关键点,比如说你从百分之零开始到百分之二十五什么样?到百分之五十什么样,从五十到百分之七十五什么样,七十五再到百分之百什么样。 但是我这里边写了好多一样的这个属性,其实可以不一定一样,比如说我只调整它的颜色,我中间这个旋转的位移啊,我都不管,我这些可以, 那我就从零开始,他只做一个往右的移动,移动到最后就变成一千四百像素这个位置,并且一共旋转两圈,中间所有的旋转跟所有的位置我都不管,我只管颜色,那从刚开始的海军蓝色到百分之三十变化到一个纯紫色,那假如说我在这再添加一个,有时候我让他到百分之六十的时候变成一个粉色,可以吧?然后到百分之百的时候让他变成一个,比如说耶老变成一个黄, 就是我中间的过程,我都不管这些位移,不管旋转,我只管颜色变化,这个也可以大家看一下效果来刷新 看看这种,所以你可以做很多的颜色的变化,或者很多这种样式的变化,你可以做的很细腻。但是咱们这个过程呢,就是刚开始加载了以后马上就运动,而且中间没有任何的互动和变化,这都可以设置,比如说 ok, 让他做一个延迟,刚开始运动等两秒,然后呢再有一个你可以把鼠标,比如说鼠标悬停在这个圈里的时候, 暂停拿出来再走,带停再走,这些都可以做到。如果咱们这堂课不讲那么多啊,大家对于动画呢,先有一个基本的了解,这个东西呢,其实跟咱们之前讲的渐变讲的过渡都差不多,如果 如果你要把这些东西穿在一块的话,你会发现很多的想法编成思想都是一样的,只不过他这个属性名不一样,所以大家有了之前些渐变啊,过度的学习,你在记这些属性就很容易理解了。那当然这个属性当中还有很多就是以这个 ad max 开头的,或者带很多横杠的,我们可以调整好多,比如说延迟,比如说可以调整他过度中间动画的那个模式,比如说可以设置停住位置等等一些都可以做到。 咱们留下来讲。大家回去后呢,可以先把咱们今天讲一个基本的动画设置,先写写试试。你可以像我一样做一个剧情,然后在里面做一个小的 div, 可以做一些动画的调整。咱们之前讲过很多跟变换相关的,比如说宽度啊、高度啊、颜色啊,各种旋转啊,各种扭曲啊,各种位置的变化,都可以拿来试一试。 上课呢,咱们把动画这些另外的属性给大家讲完,讲完之后呢,咱们就可以把这些东西搁在一块,写一个复合属性就一行就搞定了。然后接下来可以利用这个动画带着大家咱们做个小案例,这样的话大家可能对于动画就有个更深刻的理解,在我们未来开发当中,什么时候用怎么去设置就更加灵活了。好吧,同学们,那行,这堂课咱先到这需要代码同学呢?给我留言,让小助理发给大家,我们下期再见吧。

接下来我要做的事情呢,就是在我们自己的操作系统当中去安装 no 的 gs 这个代码运行环境, 要安装他,我们要先去下载他,所以我已经提前把 note gs 的官方网站打开了,在官方网站当中,我们看到他给我们提供了两种版本跟我们去下载,第一种版本呢叫做 lts, 第二种版本呢叫做 current, 这两个版本有什么区别?我们应该去下载哪一个版本呢?我们先来看 lts 版本, lts 啊是 long time、 support 这三个单词的简写,就是说这个版本是一个长期支持版,它是稳定版,这个版本是可以运行在生产环境当中的。 第二个版本叫做 current, 他呀是最新版,他是预览版。这个版本呢是不建议运行在生产环境当中的,因为在这个版本当中他是可能有 bug 的,那么在我们的课程当中呢,要选择 lts 版本就是稳定版本,接下来你只需要去点这个按钮,就可以把这个 note x 代码运行环境呢下载到本地了,当我们下载完成之后呢,就可以通过双击的方式来运行它,安装它,由于在我的系统当中呢已经把它安装好了,那么在安装的过程当中呢,我们把这个图啊给它截下来了,那么接下来我们就看一下它的安装过程, 那么当我们去点击这个安装包以后呢,我们会看到这样的一个界面哈,那这个呢就是一个欢迎界面,接下来我们只需要去点击 next 按钮进行到下一步就可以了,那么在这一步当中呢,他是让你同意他的安装协议,那么我们必然要同意哈,所以在这个地方,我们在复选框的上面去打一个勾,然后我们点击 next 进入到下一步, 这一步呢,是让你去选择 no 的 gs 的安装目录,他呢,有一个木耳男装目录,你也可以去点击,甚至去更改这个安装目录,但是在安装的过程当中呢,千万不要包含中文目录。好,那么如果你没有特殊需求的话,我建议你去更改这个目录,如果说你真的更改了,那那个更改的目录你也要记得,那么当目录选择完成之后呢,我们就可以去点击 next 进入到下一步了,这一步呀, 是让你去选择你要安装的核心功能,那么在这个地方呢,他提供了四项哈,那么每项其实我们都需要,所以呢,我们在这个地方不需要去更改,那么我们来解释一下哈,第一项呢,就是 note gs runtime, 它呀是 note gs 本身哈,我们必须要去选择它,安装它。第二项啊,是 note package manager, 那么它呢,是 note gs 平台下面的软件 包管理工具,那么我们要使用它,所以呢,我们要去下载它,那么第三个呢,就无所谓了,它是跟文档相关的,那么接下来我们看第四个哈,第四个是什么意思呢? atto pass, 就是说把 no 的 gs 的这个安装目录哈添加到系统环境变量当中,这样的话,我们就可以在命令行工具当中,在任何一个位置,我们就都可以去运行 note gs 了。 那么在这个地方呀,不需要做任何更改,我们直接去点击 next, 进入到下一步就可以了。那么在这一步当中呢,问你是否要去安装一些额外的工具,解析哈一些模块,那么这一步啊,我们不需要去选择它,如果说我们要用到这些工具呢,我们再单独去下载它就可以了哈。好,那么接下来我们去点 next, 那么当我们点击 next 以后啊,就要准备去安装了哈,如果说前面的选项我们选择的都没有问题的话,那么你直接点击 install 去安装它就可以了,那么这呢是安装的一个过程啊,那么当安装完成之后啊,如果说不出意外的话,我们会看到这样的一个界面, 那么当你看到这样的一个界面的话,就说明 note gs 就已经安装完成了,我们点击 finish 就可以去结束这个安装步骤了。那么当你安装完 note gs 之后呀,你回到桌面当中,你会看到在桌面当中他并不会多出 note gs 这样的一个图标,也就是说呀,我们安装的这个 note gs 呢,是没有可视化界面的, 我们要通过电脑当中的这个命令行工具来使用 note, 那么当 no 安装完成之后呢,我们在命令行工具当中就多出了 note 这样的一个命令,那么我们怎么样去测试说 note 有没有安装成功呢?哎,我们可以通过 note on v, 这个 v 呢,就是 version 版本的意思,我们可以去查看我们安装的这个 note 版本,如果说能够输出版本,就说明 note 就已经安装成功了。 好,那么接下来呢,我们就切换到命令行工具当中,我们打开命令行工序,在命令行工具当中呀,我们可以去输入 no 的空 哥杠 v 来查看一下我们安装的这个 note 版本,如果说这个版本出现了啊,就说明 note 已经安装成功了,那么我们在 mac 当文档当中呢,也会看到 ntm 杠 v 啊,这个 ntm 呢,就是 no 的平台下面的一个软件包工具哈,这个 ntm 呀,实际上是另外一个软件哈,只不过他和 not 是捆绑安装了,那么当 no 安装完成之后呢,我们也可以通过 ntm 杠 v 来查看一下 ntm 的版本, 关于 ntm 的更多的知识啊,我们在后面会详细的去讲解他,当我们去看到这两个版本输出的时候啊,就完完全全的证明了啊,我们已经成功的安装了 no 的了,那么在之前的课程当中呢,我们就说过哈, no 的,他是一个代码运行平台哈,那么在这个平台当中呢,可以去运行扎巴 scrap 的代码,那么我们就来体验一下哈, 在命令行工具当中呢,我们可以去输入 no 的这样的一个命令,接下来呢,我们交接回车。好,那么现在呢,我们就进入到了一个直行扎巴 代码的这样的一个环境了,那在这个环境当中呢,我们可以去直接编写扎拉斯特带码去运行扎拉斯特带码,比如说在这个地方,我们声明一个变量 a, 让 a 的值呢等于十,那么接下来我们再声明一个变量 b, 让 b 的值呢等于二十。好, 那么接下来我们使用 tongsodel 方法去输出 a 加 b, 好,那么接下来我们敲击回车去运行这个代码,注意看在控制台当中是不是输出了三十呀,就说明现在我们就已经成功的使用了 no 的 gs 去运行了扎巴斯特的代码了, 好,这就是当前我们所讲解的 note gs 这个代码运行环境啊,要如何去安装?要如何去运行扎巴斯卡特代码?

下边的话啊,我们来这个进行第二种方式,也是我们这个这节主讲的一个东西啊, 第三种啊,第三种方法的话,快速定位的话,叉 hr, 叉 hr, 叉 hr, 实践啊,断点,叉一叉,断点,这个叉一叉,断点也有自己的好处和坏处啊,也也有缺点,也有这个好处和缺点。好处就是什么呢? 我先讲一下啊,他的好处啊,就是定位的位置在发包函数, 定位的位置在发包函数啊,我们可以跟站啊,我们可以跟站,只要能跟站对不对?那就简单啊,只要能跟站,大家记住啊,只要能看见这个站里边的数据,或者说有一个流程 啊,就是我们的这个调试工具,他给了我们一个流程。其实就是站吗?只要能跟站的话就是一个非常容易的事情。呃,无法跟站这种的呢,就稍微麻烦一点啊, 那坏处是什么呢?就是他的缺点,缺点就是他只能用于什么?只能用于我们的叉 hr 的包啊,只能用于叉 hr 的包。数据包。什么意思? 我们知道我们这个之前讲过,是吧?发包的话他有两种发包的,我不知道这个哎,我忘了之前讲没讲,好像讲过一点有有两种这个发包的这种的方式啊, 我们在讲那个 gs 基础的时候是吧?一个是我们通过 gs 发包,然后另外一种的话是我们通过什么?通过我们的这个表单 啊?我们的 html 表单,表单法包啊,这里我介绍一下啊,什么是 gs 法包呢? gs 法包他最终调用的一个函数叫做 hm l http 是吧?一个什么时候有 case 那种东西啊? 哎,这个 hgdp 这个表单发包呢,他是通过我们浏览器里边的那个,就是 hhhttp 的这个引起,呃, htvp 呢?呃 htm 二这个引擎啊,他去发的包啊,这种包我们是没办法拦截的啊,所以说呢,他 这个缺点就是他只能拦这个 f s m l hdp 的啊,这种包啊,我们来看一下,其实我们在这也能看见,比如说还是这个吧,我刷新一下啊,按这个来讲啊,刷新一下之后,我们输账号,然后密码一二三四五六 x 二四七,我们点击,我们把这个勾上,点击登录的时候呢,哎,卡了是吧?啊,来来来,再刷新一点,看这老老好卡, 把这个关掉,他这个刷新不出来,他就会卡。幺五二二二二二二二,我这边禁止缓存了啊,他竟然会卡好,进来一下 cus 五,点击登录 好,现在有了是吧,我们知道他是通过这个来检查的啊,然后下边应该是有个发包函数啊,看一下是不是这个返回的一串信息啊,应该就是用户不存在吧,估计这个信息就是我们来看一下 输入的验证码,哦,正确是吧,他先验证了验证码,然后捞定三,用户不存在啊,我们来看一下这个包吧,这个包的话,你会发现 我们通过这个上边这个过滤器 xsr, 我们是过滤不到这个包的,对吧?啊,这里是过滤不到这个包的,但是呢,我们发现他是 gs 发的啊,首先啊,这个叉 hr 的这个包啊,有两种啊,一种是能过滤他这个过滤器啊,嗯, 过滤出来的不是很正确啊,注意啊,不要太相信这个,我们比较相信哪一个地方呢?我截个图啊, 这里啊,看这一行啊,主要看这一行这一行的哪一个地方比较重点啊? 这个蓝色的不大好画啊,黄色版啊,这个地方啊,这个地方是非常重点的啊,就我我我这个框出来这个地方如果这里显示是一个 gs 文件的话啊,那么 ok, 那么是完全可以插一插可以断的,否则的话,这里如果显示了一个其他的东西,欧字啊,刀客们他呀之类的,反正是其他的,不是 gs 的话,那么抱歉啊,这个他是没有办法断住的啊,没有办法断住的。好,这个要提前先给大家说一下啊, 那边等一会啊,这个,呃,有同学啊,他做一些东西的时候啊,呃,表单会出现耐克外壳里边吗?表单的会出现,但是呢,这里啊他是没有这个 gs 的,就这里他会可能会显示一个什么 o 字,可能会显示一个刀口 mant 啊, 本身显示一个其他东西,他不会让你点击的啊,他不会让你放到上边不会出这个提示的,像这种的话,叉一叉是没有办法断的啊,那就唯一这么一个区别啊, ok 啊,还有我们来看一下叉。

大家好,本条视频我来给大家介绍一下 cad 的选择方式,主要讲以下四个点,对象选择、正选、反选、快速选择和利用图层选择。首先是对象限制,我们来看一下,我现在选择整个图形, 然后我们会看到特性表,这里一共有两万七千九百一十四个对象,这时候我们通过这个对象 一个限制,我们可以对其中的内容进行调整,这个图形的话包含了角度标注、属性定义等等多种对象。然后我们现在选择文字, 我们把文字高度调成五千,看一下效果,然后你会发现这个文字的高度从原来 五百变成了五千这样子,这个就是对象限制的一个运用,我们在选择的之后的话,可以对这个对象里面 的分类进行一个调整,比如说我们对他的比例至高对齐方式以及他的文字样式做一个调整, 是就是这样子,然后这个对象限制他还有一个范围指定,比如我们现在是两万七千九百一十四,但是当我们把这个对象限制的内容选择级现在是三万二, 我们看一下他最大值是多少,当你输入超出了这个三万两千七百六十七之之后,他会提示你只能输到这么大的数, 所以我们现在试着输入五千,然后把这个对象限制的数量限制在五千范围内,这个时候我们再选择整个文件, 他会提示你无选择,就是因为我们的选择超过了这个对象限制的数量,我们把它调回来,然后最大值三二七六七六六, 这就是对象性质。然后是正选和反选,我们先把我的文字挑回来, 文字调整一下,文字原来调成四百五的高度吧,看着,然后 正选反选,那我们在做选择的时候,正选的反选是运用的比较多的。首先是正选,正选的话从上单击,然后从上到下做一个选择,这个时候包含在这个选框里面的一个完整的整体才会被选中。比如说我们现在 一做一个整一整框选框,然后你会发现只有这个圆圆形的这个勾住物,他会在这个选框里面,而下面这个 f 他只有一半在里面,然后你会发现这 f 其实不会被选在里面,然后的话只有这个 构筑和这条直线他被选在了里面,这就是甄选必须要在所有的就是构成这个构筑或者构成这个快的 整体部分全部在这个选框里面才可以被选中。比如说我们选择这个冷干机,那如果我只选,甚至我选到了极端,很极端小角落只包含这个地方了,他还是不会选中这个冷干机。 然后我们再尝试一下反选,反选的话就是从下到上这一个的话,只需要我们的这个构筑物有一一部分甚至一点,你只要在这个我们的选框里面, 他这个就会被选中。比如说我们现在下面这个我们只选择这一部分,但是当我们点击确认之后,他一整个都会被选在里面。反选就是这样子,正选那试一下其他下面部分没有在里面的,他不会给你选中,这就是正选和 反选,其实我们在选择对象的时候运用的比较多的。然后还有就是正选反选,选完之后,当你选完之后,你不想要这个小的勾住,你可以按住 shift 键,然后点他一下,这时候他就会默认把这个选择取消, 或者你这个大的也不想要,然后再单击按一直按住谢福的键,然后点击,这样就可以取消选择。 但这里要注意一下,我们的选项表就选择 op 里面要把这个选择集用 shift 添加到选择集这个选项,把它打过来取消,才能做到这一步, 然后的话就是快速选择。第三点,快速选择,我们来看 看一下快速选择,在我们的特性表就 ctrl e 调出特性表,然后你可以看一下 ctrl e 调出特性表之后,我们在特性表的 右上角有一个快速选择按钮,点击进去,然后你会让你选择对象类型,比如说我们现在像刚才一样选择一个多行文字, 就运算符选,等于就相当于一个赛尔的一个公式,就包含在这个选择集中,然后点击确定,这个时候这个整个文件里面所有的多行文字都会被选中,然后你可以尝试着把它复制出来,选择复制命令,然后将其复制出来 啊,你会看到这就是你复制出来之后的一个多行文字,就完成了一个选择。然后接下来是 是第四点,利用图层做一个选择。我们在绘图的时候,难免说要遇到用到多家或者是多个专业的图纸进行一个整合,将他们放在一张图上, 这个时候别人专业的话,你可能有一些标注,你就不没有,不需要。这时候如果你说单个的去进行一个删除,如果工作量相图纸量较大,那你工作量就会很大,所以的话这个时候我们要学会巧妙的运用图层去做一个选择, 我们先先点击图层工具,然后将关闭图层,然后选择单机的图层关闭工具,点单击一下,然后单机我们要关闭的那图层,然后就是现在是标注,我们把标注关掉,然后再把这个 标高也关掉,这样子的话我们就再把这个标高下面的小标注也关掉, 这样子我们就看着就很清楚,然后也比较快速,然后确认就可以得到这样一个比较清清晰整洁的一个底图,然后我们把它复制出来, 先复制到旁边看一下效果,然后再把我们的图层打开,就是咋这个小灯泡,然后打开这个图层,按一下原来的原来的图纸,没有做任何改变,但是旁边我们就复制到了一个比较干净整洁的底图,又处理完毕。 好,这就是本条视频讲解的四个选择方式,大家可以自行回顾一下,谢谢大家。

大家好,有同学留言说想学习一下用原声的 js 怎么实现拖拽这一个功能,我们这个视频呢就来学习一下, 现在大家看到我们屏幕上面呢有一个红色的小方块,我们现在想要实现的呢,就是当我们点击这个小方块的时候呢,哎,可以把它给移动开,对吧?可以拖拽到其他地方,并且当我们往这个边界往最上面去移动的时候呢,他就不能继续往上面拖拽了, 四个边界一样的哈,只可以拖拽到这个边界上面,也就是说呢,他只可以在我们设定的这个范围里面来进行一个拖拽, 我们就看一下这个实力呢是怎么完成的。这里我就简单的写了一个 div 哈,就是我们这个红色的这个小方块,就是这边这一个,但是呢这一个现在我们是脱不了的,因为呢我们还没有写这个 拖拽的功能,只是把他的样式给写出来,我们就看一下拖拽呢怎么给他实现,这里呢,我们就用 j s 给他写一下哈,这里呢我们先把这个方块这个对象的给他拿一下哈, docu 们下面这个 colytes lap 这个方法,然后呢把这个 div 给他传进去, 然后呢我们现在要对这一个 odiv 这个方块这个对象呢实现一个拖拽的功能,我们就来分析一下具体的步骤呢是怎么样的。 首先呢我们是不是应该先把鼠标移到这个方块上面,然后呢按下鼠标,是按下哈,不是点击,也就是呢先按住鼠标别松开,然后呢我们就移动鼠标, 这个时候呢我们就想办法让这个方块跟着我们鼠标一起来移动,移动到一个合适的位置呢,我们再松开鼠标,哎,完成一个拖拽,思路呢,就是这样子,经过 分析呢,我们知道完成这个拖拽的功能呢,唯一要解决的一个技术难点呢,就是怎么样让这个红色这个方块呢,可以跟着我们这个鼠标来进行移动。 这里呢我简单的给大家画了一个图哈,这个红色的这个方块呢,就是我们要拖拽的这个方块,然后呢上面有个白色的小点, 这个白色的小点呢就是我们鼠标移到这个红色方块按下鼠标的这个位置,然后呢里面还有四条线,两条黑色的短线,还有两条黄色的长线。我们先来说这两条黑色的短线, 我们先来说垂直的这一条黑色的短线哈,这条黑色的短线呢就是我们点击鼠标的位置,这个位置呢它距离我们这一个红色的方块上边线的一个距离哈,然后这个距离我们是可以通过我们按下鼠标这个事 见他的事件对象呢给他获取到的,在这个事件对象里面呢,他有一个 offs y 的值,这个值呢他就是我们按下鼠标这个位置距离我们这一个红色的小方块上边线的值啊,也就是呢这条垂直的黑色的 这条小短线呢,他的直,然后呢就是这条水平的黑色小短线,他呢就是我们按下鼠标的这个位置距离这个红色的小方块他左边沿的距离, 这个距离的值呢,我们同样可以通过这个事件对象给他获取到哈,在这个事件对象里面呢,他有一个 offsetx 的值,这个值的指向呢就是这个鼠标点击的位置距离这个小方块左边沿的值, 也就是呢我们画的这个黑色的这条水平的小短线他的直,然后呢就是这两条长一点的黄线了,这两条 黄线呢,我们先来说垂直的这一条,这条垂直的黄线呢,就是我们这个鼠标的位置距离我们这个窗口领部的一个距离,这个距离呢,我们同样可以通过这个事件对象呢给他获取到。 在这个事件对象里面呢,有一个开 y 这个值,这个值呢就是我们这个鼠标距离这个窗口顶部的一个值,也就是呢我们画的这条黄色的这条线它的值,哈, 同理,这条水平的黄色的这条线呢,它就是我们这个鼠标距离这个窗口左边沿的一个距离啊,然后它的值呢就是这个事件对象里面 这一个 click x 的直,指向的呢就是这条黄色的这一条线。现在我们拿到这四条线的直呢,这样子就好办了,我们要让这一个红色的小方块 跟着我们鼠标的移动一起来移动,这样子我们是不是要保证这个 of the y 和 offset x 的值他们固定不变,对吧? 那变化的是什么呢?我们这个鼠标要拖着这个红色的小方块进行移动,那移动的过程中,我们这个鼠标它的坐标是不是时刻在变化, 这个鼠标它的位置变化的话,哎,那这个 client x 和 client 的歪的直是不是也就发生变化了?所以这里呢,我们就要保证一点,怎么样可以让这个 client x 和 client 的歪的直不断变化的情况之下呢, 这一个 offs 的 x 和 offs 的 y 的值他们依然固定不变,要达到这个效果呢,我们是不是就要让这个小方块呢,他的位置跟着发生变化,对吧?我们呢就可以通过控制这个 top 值和 left 值呢来修改 控制这个小方块大的位置呢就可以了。那这个 top 值和 left 值又应该等于多少才合适呢?是不是应该等于我们这条黄色的线减去这条黑色的线水平方向也一样哈, 等于这两条线他们之间的一个差值,我们再给他副值回给我们的 top 值和 left 值,这样子呢,我们这个红色的小方块呢,是不是就一直跟着我们鼠标来移动了?这个差值呢?给大家画一下啊, 也就是呢,这一条线就是我们这条黄色的这条线减去这条黑色的线,就是我们现在钢化的这条线啊,这条线的值呢是多少呢? 是不是就应该等于我们这个 kind of y 的值减去这个 offset y, 对吧?然后呢这个值再给他复制给这个 top, 就是这条线,这里的意思呢,就是这个 开的歪呢,是我们这个鼠标的位置坐标,但是我们发生拖拽的时候呢,鼠标的位置它是不断发生变化的,但是这个 offsety 的值呢,他又要是固定不变的,因为只有这样子,这个小方块才会跟着这个鼠标来走,对吧?当然这个值呢,其实在我们按下鼠标的时候呢,他就已经出来了, 现在呢,我们要让这个情况发生,也就是呢,让这个等式成立,让这个小方块跟着我们鼠标来走,那这样子这个 top 值他是不是跟着发生变化就可以了,对吧? 水平方向的情况呢,和垂直方向呢是一样的,这里呢我就不写出来了,就让这一个 kind x 减去这个 offset x 的值,再复制给这个 left 值呢就可以了。还有这里这两个一呢是不一样的哈,这里只是粗略的给大家分析一下,这两个一指向的这个事件对象呢,不一样的一个呢是 鼠标点击的时候,一个呢是鼠标发生移动的时候,这个的话,等一下写代码的时候呢,大家就知道了,这里写的可能有点乱,大家可能要稍微分析一下哈,不过这里呢也不是很难, 好,我们正式来写这一部分的代码,这里我们已经拿到这个小方块这个对象了,第一步是不是点一下这一个小方块啊?是按下,不是点击啊,这里呢,我们就给他绑定一个事件监听啊,监听什么事件呢?是不是 omes 到这个事件,对吧?然后呢让他执行一个函数, 在这个函数里面呢,我们要做一些什么操作呢?我们刚才分析过,当我们在这个小方块里面点击的时候呢,可以拿到两个值,一个 of the x 和一个 of the y, 分别代表这个鼠标距离这个小方块左边沿和上边沿的距离的值。这里呢,我先把这个四件对象呢给他传 进来,然后呢用两个变量把刚才说的这两个子给它保存一下啊,一个 offs x, 一个 of the y, 先用两个边量存起来,我们在这个小方块上面按下鼠标之后呢,就应该开始移动了,对吧?在哪里移动呢?在这个小方块上面移动吗?不对吧, 这个小方块应该跟着我们鼠标一起移动吧?那我们是不是应该在这个 docu 们在这个文档上面来移动啊? 这里呢,我们就给这个 docu 们再绑定一个事件监听哈。监听什么事件呢?监听这个 mos 目鼠标移动的事件,对吧?鼠标在这个 docu 们上面移动的时候呢,我再让他执行一个函数哈, 这个函数应该处理一些什么事情呢?是不是应该执行这么一部工作啊?就对这个 top 还有这个 left 值呢,重新给他进行复职, 对吧?就当这个鼠标进行移动的时候,这个 top of left 子呢,刚才已经分析过了,这里呢,给他做个变量,给他存起来吧,叫 diy left。 然后呢,他是不是等于我们这个事件对象里面的这个 plant x, 然后呢,减去我们上面这个 of the x, 对吧? 这个值呢,我们已经用这个给它存起来了,同理呢,我们这个 top 值是一样的哈, 就是这个事件对象他下面的 crane to y, 再减去上面这个 y, 拿到这两个值之后呢,我们就可以对这个小方块他的 top left 值呢进行重新复制了,就他的一个 top 值呢,就等于我们这个 top 再给他加上个单位就可以了, 还有 left 子哈, ok, 这样呢,我们就可以实现,当我们在这个小方块上面按下鼠标的时候呢,这个小方块他就跟着我们鼠标来一起移动了,对吧?我们来看一下效果, 这边我一刷新,然后呢,点击这个小方块,鼠标一移,哎,大家发现没有,这个小方块呢,就跟着我们鼠标来移动了,但是呢现在我想甩 是甩不开他的,因为呢我们还没有写这个鼠标松开的事件,这里呢大家可以稍微思考一下这个鼠标松开这个事件呢啊,应该怎么来做,因为呢这里还是有一点点小技巧的,我们接着来写 这个鼠标松开这个事件是发生在谁身上呢?发生在这个小方块他的身上,对吧?然后呢我们还是给他添加上一个事件监听,就监听这个鼠标松开猫啊这个 事件,然后呢再让他执行一个函数,这个函数我们让他干嘛呢?其实很简单,我们这里呢可以给他用一个开关的思想,也就是说呢,给他做一个开关,我们再来声明一个变量 叫 flag, 这个变量呢先给它一个初识的值是 first, 这个变量就是我们这个开关来的,当我们对这个小方块触发了这个猫到,也就是按下鼠标之后呢,我们就让这个 flag 呢,让它的值呢就变成粗,然后呢只有这个 flag 为粗的时候,这里给它判断一下 flag 只有他为出的时候呢,我才对这个 top 和 left 呢进行这个复制。 好,那当我们猫是啊,也就是呢松开鼠标的时候,是不是只要让这个 flag 让它重新变成这个 fast 就可以了,对吧?这里呢 意思呢就这个变量这个 flag 它就相当于是一个开关来的,它一开始呢它的只是 force, 当我们点击了这个加 v 的时候呢,它的值呢就变成醋,只有说它变成醋的时候呢,才会进入这个语句里面,然后呢对我们这一个小方块它的位置呢进行一个重新的复值,如果说我们这个鼠标 松开了,他就会变成 force, 变成 force 之后呢,这句话他就执行不了,这样子呢,这个方块呢就不会跟着我们鼠标来进行移动了。好,我们呢来看一下效果。这边呢我们先刷新哈,然后呢一点击 拖动他,然后松开鼠标,哎,可以了,对吧?他现在呢就不会跟着我们鼠标,哎,不会说甩不开他了,一松开他就停在这里了。现在这个拖拽的基本功能呢是实现了,但是呢还是有点小问题的,当我们点击这个小方块的时候呢, 大家发现没有,我们往这个边界上面拖,他竟然可以拖超这个边界,这样子呢就不合理了,对吧? 我们这里呢就要对他进行一个边界的一个限制哈,就是呢给他限制一个范围,当他拖到我们边界的时候呢,就不可以继续往外面拖动了。这里呢我先把方法给大家写出来哈,然后再去分析,因为这里可能理解起来呢,稍微有一点点吃力哈, 这里呢我声明一个变量 is, 然后它的值呢是我们这个 window 的里面这个 in the head, 然后呢减去我们这个 odiv 这一个小方块它的一个高度啊 of the height, 然后呢再声明一个 w, 他就是我们 window 下面这个音呢 with, 然后呢减去我们这个小方块他的 offset with 这里什么意思 呢?给大家打开一个图哈,这个晕,抖音的嗨呢,他得到的就是我们这个窗口的一个总高度,然后呢减去我们这一个小方块的高度呢,他得到的就是上下留白的空白区域的总高度哈,就剩余的区域的总高度, 同理,这个 w 呢,就是除去我们这个 div 自身的宽度,左右留白的总宽度哈,就是剩余的。知道这两个值是什么意思呢?这里我们就可以重新对这个 div top 和 left 值呢再次进行复职了,就让这个 div top 等于 这里呢,我要用两个数学的方法哈,第一个的话用这一个取最小值的一个方法,然后呢里面的话我要嵌套一个取最大值的方法,这里呢理解起来可能稍微有一点点困难,有不懂的话大家可以多听两遍哈,这里呢这个最大值呢,我就让他 从零和这一个 div top 里面来取,取出最大值之后呢,在这个值再和这一个 h 值来进行比较,再把他们最小的值给他取出来。这个取最大值是什么意思呢?其实这里就是帮我们限制这一个上边界的,我们打开这个图, 正常来说,我们用这个钓鱼 top 和这个零来进行比较,取最大值取到的肯定是这个钓鱼 top, 对吧? 什么情况下才会取到这个零呢?就是这个 div top 往上移移,移出去移超过这一个 窗口,他的上边界的时候,他就会变成副值了,这个时候呢,我就让他的值取最大值,这个时候就零比这个负数要大,对吧?就取到零,哎,这个时候他是不是,是不是就贴着这一个边界他就超不出去了?这里取出这个最大值之后呢,我们还要和这个 h 来进行比较,取一个最小值是什么意思呢?这里这个取最小值呢,其实就是帮我们限制这个下边界的,因为正常来说我们往下面来移哈,往下面来移 这一个 div top 值,我们取出来之后,他这个值肯定会比上下加起来都要小,对吧?只有一种情况,就是当我们已经超出了这个范围, 哎,这个时候呢,他才可能会比他大,他比他大呢,我就让他取最小值,这样子他是不是就回到这个边界这里了? 这里大家有听不明白的话可以多思考两遍哈,同理呢,这里我们对这一个 div left 值呢,也要重新给他取一下值,就这一个取最小值,然后里面呢再给他取一个最大值,这个最大值呢就让他 从零和本来的这一个钓鱼 left 里面来取,然后呢这个最小值的话,就让他和这一个 w 里面来取,这个分析的道理和刚才分析这个钓鱼他是一样的哈,大家自己来思考一下。好,我们现在呢再来看一下效果啊, 这边我们刷新,然后呢拖动这一个 div 往边界上面拖,哎,他就拖不出去了,对吧?只可以在我们这个边界上面来拖了哈,好,这就是我们这个拖拽的项目,感谢大家。