优雅解决按钮”重复点击“问题

2020-11-26
阅读 3 分钟
8.9k
一、对思否的一点吐槽思否上的许多按钮都没有做重复点击检测的问题,往往导致点击没反应,多次点击后突然发表多条相同内容,比如和一位同学的私信:又如一个问题下的评论:如果你在这篇文章下发表评论,可以不小心多点几下"提交评论"按钮,会发现也存在相同的问题——如果你的手速比网速快的话。这个问题怎么解决呢?简单...

关键词高亮:HTML字符串中匹配跨标签关键词

2020-11-24
阅读 5 分钟
6.5k
很久之前写过一个Vue组件,可以匹配文本内容中的关键词高亮,类似浏览器ctrl+f搜索结果。实现方案是,将文本字符串中的关键字搜索出来,然后使用特殊的标签(比如font标签)包裹关键词替换匹配内容,最后得到一个HTML字符串,渲染该字符串并在font标签上使用CSS样式即可实现高亮的效果。

文本内容超过N行折叠并显示“...查看全部”

2020-11-18
阅读 6 分钟
14.2k
多行文本超过指定行数隐藏超出部分并显示“...查看全部”是一个常遇到的需求,网上也有人实现过类似的功能,不过还是想自己写写看,于是就写了一个Vue的组件,本文简单介绍一下实现思路。

JS双等号比较符(“==”)作用细节

2020-08-27
阅读 3 分钟
3.4k
都知道JS里”==“和”===“的区别,在于非同类型变量的比较中,”===“会直接返回false,而”==“则会先将两个比较值先转换为同一类型,再进行比较。然而,这里”先转换为同一类型“是什么样的规则呢?

JavaScript闭包的应用

2020-07-05
阅读 5 分钟
2.6k
这是一个生成斐波那契数列的例子。makeFab的返回值就是一个闭包,makeFab像一个工厂函数,每次调用都会创建一个闭包函数,如例子中的fab。fab每次调用不需要传参数,都会返回不同的值,因为在闭包生成的时候,它记住了变量last和current,以至于在后续的调用中能够返回不同的值。能记住函数本身所在作用域的变量,这就是...

Vue项目打包压缩:让页面更快响应

2020-03-09
阅读 5 分钟
15.2k
影响网页响应速度的因素有很多,例如:http请求次数太多、服务器本身处理请求太久、请求内容太大、JS脚本执行耗时过长、浏览器回流重绘等。网站页面的响应速度与用户体验息息相关,直接影响到用户是否愿意继续访问你的网站。对于Vue项目而言,最普遍的问题可能在于打包后的文件太大,导致加载时间过长。

前端利用canvas给图片添加水印

2020-01-13
阅读 3 分钟
10k
前两天给个人网站添加了一个小功能,就是在文章编辑上传图片的时候自动给图片加上水印。给网页图片添加水印是个常见的功能,也是互联网内容作者保护自己版权的方法之一。本文简单记录一下借助canvas在前端实现图片添加水印的实现方法。  canvas元素其实就是一个画布,我们可以很方便地绘制一些文字、线条、图形等,它...

Vue项目打包部署总结

2020-01-08
阅读 7 分钟
38.6k
使用Vue做前后端分离项目时,通常前端是单独部署,用户访问的也是前端项目地址,因此前端开发人员很有必要熟悉一下项目部署的流程与各类问题的解决办法了。Vue项目打包部署本身不复杂,不过一些前端同学可能对服务器接触不多,部署过程中还是会遇到这样那样的问题。本文介绍一下使用nginx服务器代理前端项目的方法以及项...

JS数组基本操作——数组遍历到底有多少种方式?

2019-08-29
阅读 6 分钟
5.7k
对于"数组遍历"这个问题,其实答案很宽泛,关键在于你能不能列举出一定数量的方法以及描述它们之间的区别。本文即介绍一下数组的基本遍历操作和高阶函数。

开发一个chrome插件:将百度搜索热点屏蔽掉!

2019-07-14
阅读 3 分钟
2.4k
每次百度搜索,搜索结果的右边总是出现些乱七八糟的搜索热点(推的都是些什么玩意,高校替课和我有毛关系,几个悲伤的热点我用星号顶掉了)。  强迫症想把它隐藏掉,我用的是chrome浏览器,受adblock(超强屏蔽广告插件)的启发,想到做浏览器插件的方式。  本文简单记录一下插件开发过程,chrome插件开发真的非常简单,...

CSS垂直居中,你会多少种写法?

2019-04-25
阅读 4 分钟
4.3k
CSS控制居中是前端开发中非常常用的布局技能,本文列出几种CSS控制元素居中的几种方法。  谈及HTML元素居中展示,涉及到水平居中和垂直居中,以及水平垂直居中。由于HTML文档流是水平方向的,所以水平方向上的布局控制比垂直方向要简单很多,居中也是如此。不过(水平)垂直居中还是有很多种写法,至少一只手是数不过来...

怎样给一个Vue页面添加大纲导航

2018-11-20
阅读 6 分钟
4.4k
需求本身并不难,不过想把这个东西做得通用一些,也就是以后再有别的页面需要加导航,不用再重新写很复杂的逻辑了。下面说一下具体实现思路,并且文末会给出简便易用的导航生成工具。