- 博客(20)
- 资源 (2)
- 收藏
- 关注
原创 网页微信扫码登录,以及redirect_uri参数错误解决方案
流程:首先是生成二维码,二维码对应的 url 中包含一个回调地址,在用户同意授权之后,将会在你的回调 url 上拼接参数 code 并且跳转,跳转之后前端从 url 中获取 code,调用接口发送给后端,后端用 code 去获取所需要的信息即可二维码效果扫码页码用户授权确认后,会跳转到之前redirect_uri属性写的链接,且带着code值。在跳转之后前端从 url 中获取 code,调用接口发送给后端,后端用 code 去获取所需要的信息即可。
2023-12-22 17:12:52 1494
原创 vue/cli3项目兼容ie(转为es5)
因为做的项目会在IE环境下运行的情况,按正常vue支持来说,IE8+应该是支持的,可是ES6写法需要进行兼容,否则项目在IE中无法打开,空白,也报一些 未定义什么的错误。
2023-12-19 14:30:30 777 1
原创 理解js事件循环机制Event Loop(宏任务和微任务)
JavaScrip是单线程的,也就意味着同一时间只能处理一件事,如果其中一件事运行非常耗时,就会阻塞线程,事件循环机制就是解决这件事的
2023-12-18 16:24:14 1032
原创 【vue】解决element-ui的el-select下拉框中因选项内容太长导致容器宽度过长问题
使用el-select下拉组件时,当下拉框中的选项内容很长会自动撑开容器宽度,导致页面效果很不好。如果不想使用组件默认的样式效果(超出的文字隐藏,并且后面添加省略号)属性设置下拉弹出框自定义类型 customDropdown。想使用横向滚动条展示所有内容,可以再加上下面的样式代码。为false:不将下拉弹出框插入至 body 元素。1、首先设置el-select的属性。3、设置下拉框的宽度。
2023-12-07 16:17:09 3458
原创 vue+pdf.js预览本地pdf文件(可以复制文本,滚动页码展示)
3、解析pdf,获取pdf所有页数据,使用canvas渲染,并使用TextLayerBuilder创建文本层,可以复制文本信息。在这里就是因为微任务导致,所以我们这里渲染pdf任务可以每次渲染完一页后等待一定时间才执行下一页的渲染,空出时间给主线程。在渲染pdf数据时,当pdf文件很大渲染量很多时,会导致页面卡住,无法执行其他操作;在滚动时当前是第几页的页码同步更新展示:需要在渲染每页pdf时将每页的高度存起来,以及每页滚动的临界值。在滚动时,根据当前滚动距离和每页滚动的临界距离相比较,判断当前是第几页。
2023-12-05 16:26:17 3124
原创 以鼠标为中心缩放图片
初始鼠标位置距离图片左侧的left、top和宽高的比例,与图片放大后的比例相同计算方式,主要是知道放大后鼠标的位置和放大前鼠标的位置,相减得到偏移的距离,使用transform:translate移动就行。在这个基础上不管是缩小还是放大,都需要把上一次translate对应坐标的值 - 这次得到的值
2023-12-04 18:13:08 515
原创 js+html2canvas实现网页放大镜效果:放大镜图片使用css样式background背景图,鼠标移动使用样式background-position动态设置
鼠标移动到需要放大的网页上时,鼠标静止不动500毫秒后,一个长方形的放大镜框显示,放大镜中显示当前区域2.2倍的效果,并且这时候鼠标移动放大的区域也跟着变化。放大镜限制:放大镜只能在特定的区域内使用,即放大镜的移动范围有边界。
2022-08-31 18:09:45 1982 1
原创 js 复制指定元素内的文本信息到剪切板(navigator.clipboard和document.execCommand)
【代码】js 复制指定元素内的文本信息到剪切板。
2022-08-26 15:41:20 991
原创 循环使用正则时,属性lastIndex导致输出结果与实际情况不符合
问题复现const reg = /\.png$/igconst arr = ['1.png','2.png', '3.png']arr.forEach(i=>{ console.log('匹配结果:'+reg.test(i))})结果会是这样很明显,和预期的结果不一致,结果应该都是true产生原因在正则表达式使用了表示全局检索的 “g” 标志时,正则的lastIndex属性会记录上一次的匹配字符的index+1(lastIndex),下一次匹配时就会从lastIndex处为
2022-04-02 16:05:56 179
原创 VS code断点调试vue项目代码
1、搜索安装 debugger for chrome 插件2、创建launch.json文件点击运行和测试,或下面的创建文字按钮,选择chrome3、修改launch.json文件 的配置项{ // 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。 // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "conf
2022-03-09 15:23:19 2760
原创 js数组去重的方法
js数组去重的方法1、for嵌套for,使用splice删除原数组重复的元素2、indexOf方法去重,返回新数组3、includes方法去重,返回新数组4、利用对象key属性唯一的特性去重4、利用ES6中的Set去重1、for嵌套for,使用splice删除原数组重复的元素 function deleteRepetition(arr){ for (let i = 0; i < arr.length; i++) { for (let j = i + 1; j <
2022-03-02 17:33:42 233
原创 判断一个字符串中出现次数最多的字符,并统计次数
var str = "acfdskffdssfaf"var obj = {}for (let i = 0; i < str.length; i++) { if (obj[str[i]]) { obj[str[i]]++ } else { obj[str[i]] = 1 }}console.log(obj)var maxNum = 0, maxStr = str[0]for (const item in obj) { if (o
2020-08-29 15:14:59 262
原创 Vue如何自定义一个组件
具体步骤如下:1、在compoents文件夹下创建mine文件夹,在其中创建Mine.vue和index.js;2、Mine.vue代码如下:<template> <div> <h3>自定义组件</h3> <p>{{msg}}</p> </div></template><script>export default { name: '
2020-08-09 16:53:19 321
原创 使用swiper.js插件实现简单的动画
1、首先引入css和js文件 <link rel="stylesheet" href="./cssC/swiper-4.5.0.min.css"/> <script type="text/javascript" src="./script/swiper-4.5.0.min.js"></script>2、根据需求编写样式和布局图片css样式: /* 轮播 */ .lunbo{ width: 100%; height:5.7rem;
2020-06-27 23:37:54 281
20多种常用的正则表达式
2023-12-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人