0%

近一个月以来的个人总结

🎞近一月以来的个人总结

总结近期的工作学习生活

自从项目组的项目由我负责的部分开发完毕之后,活儿瞬间变少了。随着项目跟进被打乱的之前的学习计划并没有被我马上捡起来,我也经历了停摆期,这段时间几乎一直在玩在休息,可能是因为忙了太久的后遗症?这段时间居然重新对CSGO上瘾起来了,变得有些许依赖,而且一整天能刷很久的B站和知乎,这不就是进行计算机学习之前的自己吗?可能这是因为太久没对自己做规划了,太久没反省自己了,我就在心慌中一直摆烂、游戏,而对周六的教资考试、周日的工程项目考试和工程地质大作业视而不见。

还是要对自己的工作学习生活做一些总结,做一些规划,看看明天开始会不会好一些。

🎐渐长的CSS知识

成熟的项目开发需要比较熟练的CSS技巧,诸如内边距、外边距,以及垂直和水平居中,都非常重要。项目开发中的居中一般有较为普遍的绝对定位法,即直接设置为position: relative,然后微调leftright的值,从而使子元素水平、垂直居中;还有就是让父元素采用flex布局,然后让子元素根据主轴和交叉轴对称,即justify-content: centeralign-item: center

然后便是盒子阴影,算是进阶CSS内容了,有box-shadowdrop-shadow,前者是在元素的框架上添加阴影效果,并且可以添加多个阴影效果,参数值包括阴影的 X 轴偏移量、Y 轴偏移量、模糊半径、扩散半径和颜色;后者则是将元素的一个蒙版以特定的样式投影到元素下方,参数值同样包括X 轴偏移量、Y 轴偏移量、模糊半径、扩散半径和颜色。

还有利用CSS的border实现的三角形箭头。本质是设置内容为空,border填充全部区域,即可达到上下左右的边框向中心延展成三角形的效果,然后再分别更改上下左右边框的背景颜色即可实现箭头效果。例:需要左箭头就给左边框设置背景颜色,其余边框均设置成透明即可。

实际的开发过程中,有很多细节上的东西需要注意,譬如选择框、下拉框的光标样式调整,滚动条的样式调整,都是很细的东西。有时候这些东西并不是开发人员自己写的,而是直接在封装好的插件或者组件中被定义的,那我们怎么改呢?这个时候就需要直接用浏览器打开项目,然后右键并选择检查,然后在右边找应用于该元素的样式,再去组件或者页面中去修改样式。由于Vue中一般的CSS样式是定义为Scoped的,因此我们还需要使用Vue3中的新语法——:deep()函数来去修改不在此作用域中的元素样式。

🎄接触响应式布局

响应式布局以前从未接触过,也知之甚少。响应式布局个人认为最重要的一点是设置断点,因为不同客户端的屏幕大小不一致,仅保证缩放合适是不能够让客户端有良好体验的。移动端相对客户端是一定有内容的删减的,这就需要合理设置断点,在视窗宽度合适的时候删掉一部分内容。具体实现使用element-uilayout响应式布局实现的,加断点也非常方便,直接在所在的div里面加一个断点即可。不过还有一种方案就是直接用layout布局的响应式实现,其参照了 Bootstrap 的 响应式设计,预设了五个响应尺寸:xs、sm、md、lg 和 xl,合理设置值也可以达到比较好的效果。

🎍初次接触插件

项目组分给我这个新人一个比较棘手的任务,就是做用户教育内容,说白了就是蒙版引导。但是由于项目是用的z-index过于多,用到的fixed布局也很多,所以单纯使用全覆盖的蒙版加上z-index会出现一个问题:就是高亮区域是无法点击的,并且设置高亮区域也是一个麻烦费力的活儿。因此我把目光放到了别人造好的轮子上面去。一开始选中的插件是driver.js,是一个比较简单友好的插件,国内使用的开发者很多,有完备的使用说明,高度封装,自定义内容比较少,适合对弹框样式和交互形式要求不高的项目使用,而且插件的API给的不够多,想要调用起来比较困难。最最重要的是,插件本身跟我一开始的思路是一样的,即通过一个全覆盖的div把页面包裹住,然后利用z-index值实现高亮和交互,这在我们的项目上是失效的。

因此只能去看看有没有别的插件,于是找到了shepherd.js上来,这是个高度自定义化的插件,API和配置参数有很多内容,这也意味着学习成本比较高。再加上该插件国内使用的人可能不是特别多,导致几乎找不到中文文档,因此我只能硬着头皮啃生肉学习文档(这在之后可能是前端的常态了)。啃完生肉之后用起来就是很舒服的了,首先它可以在配置文件里面直接加入自定义化的CSS类名,直接修改弹框样式等;其次它是用的svg的动态path来改变高亮区域的,因此不受项目本身的影响,交互非常方便(这一块的原理还不太明白,之后还需要去熟悉);而且它的API十分方便,对Vue也非常友好,可以直接调用tour.start等;并且它的按钮也是高度自定义化的,你可以自由更改按钮的个数、内容和函数。

img-v2-93d536e2-70d3-4fb4-a024-2a9800a3f0bg

用户引导当然需要保证用户只看到一次,这里是通过状态库实现的,暂时只能做到认浏览器而不是认用户。定义一个值,初始为空,然后每次打开页面都判断一次是否为空,若为空则加载用户教育内容并将其值随机填充。

🎠规划

目前也算是到了规划的时机了,继续摆烂玩下去肯定不是什么我应该做的事情。周六的教资先想办法通过,然后这周还有工程地质的大作业和周日的考试,甚至周日下午还有个项目组的全体大会要开,这周其实是比较忙的。接下来我的想法是一边跟进项目组的学习,即项目驱动学习;一边开始着手学习Java了,当然还有基础的计算机网络,自顶向下那本黑砖到了运输层的最后面真的是难啃,需要状态好的时候才能看得下去。计组和操作系统则是还没有开始,这都是计算机基础知识,肯定是需要掌握的。