js
文章平均质量分 54
swag_特约男演员
一个小丑啊,一个小丑罢了!
展开
-
记录Vite项目多页面应用模式踩坑
不解决开发时就像有蚂蚁在身上爬,老鼠在咬指甲盖。但是貌似要自己写个插件,但是我不会。可以去插件社区里找,幸运的是我找到了。,刷新路由就会丢失,如果你配置了路由守卫,则会触发跳转。,这个就是子页面入口,返回这个就能找到资源。官方的目录结构配置的多页应用,没有改动。路径,则不会出现这个问题。,不会去发送请求,资源由前端处理。知道原因了,就好办了。这一看就是我要的啊,跟着文档试试。上,验证得出:这样解决是对的。是正常的,刷新路由也不丢失。也是一样的,因为它默认是。同级则不对,因为它不在。找不到资源时,给它返回。原创 2023-04-01 16:34:46 · 1466 阅读 · 0 评论 -
自定义antd或element table 列设置组件(拖拽排序及控制是否展示)
antd table列设置及拖拽排序原创 2023-01-09 09:36:15 · 1094 阅读 · 0 评论 -
canvas裁剪图片demo
canvas裁剪图片demo,可以自彳亍修改学习原创 2022-10-24 09:57:35 · 218 阅读 · 0 评论 -
uniapp使用canvas写环形进度条
uniapp使用canvas绘制环形进度条原创 2022-07-21 14:45:42 · 1339 阅读 · 2 评论 -
如何在web端使用emoji进行输入
思路渲染好emoji列表,为每个emoji图标绑定点击事件。emoji是通过unicode16进行展示的,需要将其插入textarea或者input的innerhtml中才能展示出来。再将其赋值给value,这样value就包含了所有的输入内容。在点击插入emoji时,需要先获取textarea或input的innerhtml和光标位置。如果光标位置和innerhtml长度是相等的,说明是从后面插入,直接拼接字符串即可。如果不相等说明是从中间插入,需要先分割html再拼接字符串。注意重新设置光标位原创 2022-02-11 11:01:30 · 1561 阅读 · 0 评论 -
微信小程序tree下拉复选组件(带源码)
效果鸣谢感谢这位大佬的思路难点如何根据层级缩进,这里是根据indextree组件是自调用(递归)由于组件是递归渲染,导致平级非点击项数据为原始状态,这里把修改的状态放在map结构里。所以需要把collapse状态、checked状态记录在map结构里,每次折叠、点击操作需要根据map结构进行修正。checked:0未选中,1选中,-1有选中但未全选collapse: true折叠,false展开组件是递归调用的,所以不要在递归中频繁的setData最好是return一个值,最后在set原创 2021-11-18 09:34:25 · 5348 阅读 · 18 评论 -
js表单校验类
思路传入规则对象rules,和表单数据formdata。规则对象是key:value形式,这个value是每一项的规则数组。循环变量规则对象的根据规则对象的key去校验formdata对应的数据。返回整个表单数据校验结果valid和错误信息errorMessage就图一乐,我自己写着玩,真校验害得antdesign,element源码/** * @classdesc 表单校验类 * @private {valid: boolean} 校验结果 * @private {errorMessage:原创 2021-11-11 14:14:36 · 692 阅读 · 0 评论 -
京东放大镜效果js实现demo
原理分为原图盒子和大图展示。鼠标移入原图盒子,展示遮罩层和大图。鼠标移出则消失。根据鼠标移动事件的参数动态修改遮罩层位置和背景图的位置。效果源码<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewp原创 2021-09-24 15:57:21 · 138 阅读 · 0 评论 -
记录js实现快速排序、冒泡排序、选择排序
快速排序function quickSort (array) { // 就一个元素排什么序啊 if (array.length <= 1) return array // 找基准,默认第一个元素 let m = array[0] // 比基准小放左边 let l = [] // 比基准大放右边 let r = [] // 遍历数组,从第二个元素开始因为第一个元素已经拿出来了 for (let i = 1; i < array.length; i++) {原创 2021-09-07 14:53:14 · 122 阅读 · 0 评论 -
记录个人vscode的格式化配置
赶紧拿小本本记下这个没报错、警告的配置,????搞了好久eslint一生之敌!{ "workbench.startupEditor": "newUntitledFile", "editor.minimap.enabled": false, "files.associations": { "*.cjson": "jsonc", "*.wxss": "css", "*.wxs": "javascript", "*.原创 2021-08-25 17:27:16 · 558 阅读 · 0 评论 -
记uniapp框架h5项目的canvas2d手写板组件
<template> <view class="container"> <view class="overlay" @click="onCanvasHide"></view> <view class="wrapper"> <view ref="handCenter" class="handCenter"> <canvas class="handWriting"原创 2021-08-24 08:39:53 · 1106 阅读 · 0 评论 -
鼠标拖曳盒子案例(限定边界)
场景很多场景都需要拖曳盒子,如:一个弹窗,需要可以拖动。登录验证,滑动验证。原理思路:思路来源_1思路来源_2给需要滑动的盒子绑定鼠标按下事件绑定鼠标弹起事件,盒子得脱离文档流,给定位absolute等,需要获取鼠标的初始位置,在鼠标按下事件内定义外层包裹盒子的鼠标移动事件,根据鼠标位置计算出盒子的坐标(left, top),动态赋值盒子坐标,在鼠标弹起事件内取消鼠标移动事件源码<!DOCTYPE html><html lang="zh-CN"><原创 2021-08-23 17:22:53 · 368 阅读 · 0 评论 -
自制微信小程序popover菜单
效果平常我们在刷一些列表是会发现点击按钮会弹出类似菜单,小程序好像没看到有类型组件,所以打算自己实现。实现思路整个列表项要设置成相对布局position relative,popover菜单设置成绝对布局position absolute,正所谓子绝父相popover菜单的小三角是纯css画的,它是popover菜单的before伪类其实after也是一样的需要根据点击处的坐标来设置popover菜单的left,根据x坐标减去一部分的宽度style="left:{{x-(55*0.8)}}p原创 2021-07-02 15:41:25 · 1923 阅读 · 0 评论 -
牛客编程题(求和为S的连续正数序列)
思路连续正数序列什么意思?就是递增等差数列,像1,2,3,4,5,6,7,8,9这样的。输入sum查找的范围就在1~sum-1的正数序列里找,如输入9结果就在[1,2,3,4,5,6,7,8]。假如把sum值也放在查找范围会怎么样?如输入3,查找范围变成[1,2,3],1+2+3 = 6,2+3=5,那3=3就对了?错,至少包含两个数。结果是二维数组arr,那么每一组解法是一维数组_itemarr利用循环,将每一项进行求和得出值_sum,并将每一项放进解法数组_itema.原创 2021-04-22 17:31:57 · 87 阅读 · 0 评论 -
牛客网编程将字符串转换为驼峰格式
思路将字符串按''(空)分割成数组,判断数组第一个元素是不是'-',是则去除掉,然后循环遍历数组,如果元素是'-'则去除,'-'后面的元素就顶替了'-'的位置,将原来'-'这个位置上的元素即('-'下一个元素)转换为大写,最后再将数组合成字符串。(因为我不会正则)// css 中经常有类似 background-image 这种通过 - 连接的字符,通过 javascript 设置样式的时候需要将这种样式转换成 backgroundImage 驼峰格式,请完成此转换功能// 1. 以 - 为分隔符,将原创 2021-04-21 11:39:51 · 272 阅读 · 0 评论 -
牛客编程题字符串字符统计
思路将输入字符串的空格替换成空,创建一个对象,遍历字符串,如果字符串每一项不在对象中,初始化为1,如果已经在了就++// 统计字符串中每个字符的出现频率,返回一个 Object,key 为统计字符,value 为出现频率// 1. 不限制 key 的顺序// 2. 输入的字符串参数不会为空// 3. 忽略空白字符function count (str) { str = str.replace(' ', '') let obj = {} for (let i = 0; i原创 2021-04-21 10:49:52 · 159 阅读 · 0 评论 -
牛客编程题获取url参数
思路切割字符串,封装进行返回。// 获取 url 中的参数// 1. 指定参数名称,返回该参数的值 或者 空字符串// 2. 不指定参数名称,返回全部的参数对象 或者 {}// 3. 如果存在多个同名参数,则返回数组function getUrlParam (sUrl, sKey) { // 将参数变成二维数组 let keyvalArray = sUrl.split('#')[0].split('?')[1].split('&') for (let i = 0;原创 2021-04-21 10:34:43 · 147 阅读 · 0 评论 -
微信小程序用户拒绝授权地理位置信息再次调起授权窗口
目的注意chooseLocation() { let that = this wx.chooseLocation({ latitude: '', longitude: '', success(res) { console.log(res) that.setData({ 'query.dz': res.address, 'query.x': r原创 2021-04-21 09:07:06 · 1187 阅读 · 0 评论 -
笔试题“将版本号从大到小排列”
将版本号从大到小排列例如 [‘1.2.3’,‘2.2.1’,‘10.1.0’,‘9.99.9’,‘10.1.0’]输出 [‘1.2.3’,‘2.2.1’,‘9.99.9’,‘10.1.0’,‘10.1.0’]思路版本号怎么比较?版本号x.y.z,先比较x,如果x相等,再比较y,如果y也相等,最后比较z。我的想法是将每一个元素从字符串变成按照“.”分割的数组,形成二维数组,再用内置函数sort去比较。代码// 将版本号从大到小排列// 例如 ['1.2.3','2.2.1','10.1原创 2021-03-21 20:26:26 · 453 阅读 · 0 评论 -
js轮播图观后重做(较长的完整版,可运行)
特别鸣谢该UP主,观看后自己重新写了一个原文链接:https://blog.csdn.net/qq_43126471/article/details/101010356思路图标、图片、标记点全部先放上去。要播放哪一张就展示那一张图片和标记点样式,然后对应把其它图片、标记点样式清除。特别需要注意边界值问题。第5张的下一张是第1张,第1张的上一张是第5张。做好边界值处理。效果完整代码<!DOCTYPE html><html lang="en"><head&原创 2020-12-25 09:45:37 · 187 阅读 · 1 评论