自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(175)
  • 资源 (3)
  • 收藏
  • 关注

原创 实现 <el-cascader> 组件的回显功能

vue A页面,用户填写了el-cascader多层级数据,层级list数据从接口获取;vue B页面,多层级数据要进行回显,接口给到的数据是value值;

2024-04-26 16:52:30 214

原创 JS中reduce的详细用法

reduce() 方法对数组中的每个元素执行一个由您提供的reduce函数(升序执行),将其结果汇总为单个返回值。reduce方法可做的事情特别多,就是循环遍历能做的,reduce都可以做,比如数组求和、数组求积、数组中元素出现的次数、等等。参数:参数:prev 必需。累计器累计回调的返回值;表示上一次调用回调时的返回值,或者初始值 init;cur 必需。表示当前正在处理的数组元素;index 可选。

2024-04-24 14:50:25 310

原创 前端JS算法--插入排序

插入排序的时间复杂度是 O(n^2),在数据规模较小或部分数据已经有序的情况下效率较高。对于大型数据集,插入排序通常不如更高级的排序算法,如快速排序、归并排序或堆排序。不过,插入排序是稳定的排序算法,且在某些情况下,如数据已经部分有序,它的实际性能可能比理论时间复杂度要好。插入排序(Insertion Sort)是一种简单直观的排序算法,它的工作原理是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。

2024-04-24 11:52:31 261

原创 前端JS算法--快速排序

它采用了分治策略来把一个序列分为较小和较大的两个子序列,然后递归地排序两个子序列。选择数组中的一个值作为基准,将数组中小于该值的数置于该数之前,大于该值的数置于该数之后,接着对该数前后的两个数组进行重复操作直至排序完成。:重新排列数组,所有比基准小的元素摆放在基准前面,所有比基准大的元素摆在基准后面。在这个分区退出之后,该基准就处于数组的中间位置。:从数组中选择一个元素作为“基准”(pivot)。:递归地将小于基准的子数组和大于基准的子数组排序。

2024-04-24 11:50:58 202

原创 前端JS算法-冒泡排序

原理:相邻的数据进行两两比较,小数放在前面,大数放在后面,这样一趟下来,最小的数就被排在了第一位,第二趟也是如此,如此类推,直到所有的数据排序完成。冒泡排序的基本思想是从第一个元素开始,依次比较相邻的两个元素,如果顺序不对则交换它们,一轮比较下来,最大的元素会沉到最后一个位置。<2>对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;<1>比较相邻的元素。<3>针对所有的元素重复以上的步骤,除了最后一个;/然后,对剩余的元素重复以上步骤,直到整个数组排序完成。

2024-04-24 11:48:58 279

原创 前端JS算法--归并排序

归并排序的时间复杂度是 O(n log n),这使得它在处理大型数据集时非常有效。然而,由于它需要额外的空间来存储合并后的数组,因此在空间复杂度上可能不如原地排序算法(如快速排序)高效。归并排序是一种分治算法,它将数组分成多个子数组,然后对这些子数组进行排序,最后将排序后的子数组合并成一个有序数组。整体思路如上图,需用递归实现,递归实现最重要的是写出递归公式、终止条件。:将数组分成两半,如果数组只有一个元素或为空,则不需要排序。:将排序后的两半合并成一个有序数组。:递归地对数组的两半进行归并排序。

2024-04-24 11:45:15 353

原创 VUE el-table列表搜索功能-纯前端实现

对el-table数据进行搜索筛选,但是不想调取接口,纯前端实现。

2024-04-22 11:36:40 175

原创 VUE 弹框的实现

AnBanDialog.vue(项目上封装好的弹框,主要是样式问题)项目中常用且比较基础的功能。

2024-04-22 11:21:00 190

原创 vue实现blob文档流下载文件

zip文件,图片等。

2024-04-19 14:15:07 235

原创 VUE 页码分页封装

VUE 页码封装组件。

2024-04-18 10:54:42 320 1

原创 VUE 弹框内容懒加载-真实项目

背景:VUE 页面,点击按钮,弹框,内容从接口获取,数据量比较大,鼠标滑到页面最底部,调取一次接口,分批加载;

2024-04-18 10:45:36 286

原创 vue2实现wangEditor富文本便捷器的封装使用--真实项目

vue实现wangEditor富文本便捷器的封装使用--真实项目

2024-04-09 14:36:10 290

原创 document.documentElement.clientHeight与document.body.clientHeight的区别

scrollHeight: 当元素的子元素高度大于父元素,父元素出现滚动条,此时父元素的clientHeight表示可视的高度,父元素的scrollHeight 表示页面的高度,包括溢出页面被挡住的部分,即其实就是子元素的高度。单位px,只读元素。clientHeight: 表示可视区域高度, 包括padding但不包括border、水平滚动条、margin的元素的高度。offsetHeight:表示可视区域高度,包括padding、border、水平滚动条,但不包括margin的元素的高度。

2024-03-25 14:10:34 170

原创 面试-简单算法题

对于上一步得到的数组 [‘h’, ‘e’, ‘l’, ‘l’, ‘o’],通过 reverse() 方法得到的数组为 [‘o’, ‘l’, ‘l’, ‘e’, ‘h’]。例如,对于输入字符串 “hello”,拆分后的数组为 [‘h’, ‘e’, ‘l’, ‘l’, ‘o’]。对于上一步得到的数组 [‘o’, ‘l’, ‘l’, ‘e’, ‘h’],通过 join(‘’) 方法得到的字符串为 “olleh”。7.数组求和:编写一个函数,接受一个数字数组作为参数,返回数组中所有数字的和。返回反转后的字符串。

2024-03-13 15:59:46 817

原创 2024 前端javaScript+ES6

2024 前端javaScript+ES6

2024-03-13 11:49:24 944

原创 vue使用swiper(轮播图)-真实项目使用

vue使用swiper(轮播图)-真实项目使用

2024-03-01 16:46:29 789

原创 Vue <component/> 特殊的内置组件使用

将is的值绑定为一个变量,is就变成了v-bind:is=“变量名”,即 :is=“变量名”。当变量名赋值为哪个自定义组件名时,拥有:is=“变量名”属性的元素就会渲染为响应的组件。在 Vue 中, 是一个特殊的内置组件,它可以根据提供的数据动态地渲染不同的子组件。这个功能非常有用,因为它可以让你在不同的情况下动态地切换和渲染不同的组件。

2024-02-29 18:17:47 372

原创 vue用户输入了访问地址,前端校验该地址是否可访问

el-form中,用户输入了访问地址,前端校验该地址是否可访问

2024-02-28 11:20:21 484

原创 vue socket_demo即时通讯

vue socket_demo即时通讯

2024-02-05 14:42:13 147

原创 无头浏览器 Puppeteer-案例demo

我们日常使用浏览器的步骤为:启动浏览器、打开一个网页、进行交互。而无头浏览器指的是我们使用脚本来执行以上过程的浏览器,能模拟真实的浏览器使用场景。对网页进行截图保存为图片或 pdf抓取单页应用(SPA)执行并渲染(解决传统 HTTP 爬虫抓取单页应用难以处理异步请求的问题)做表单的自动提交、UI的自动化测试、模拟键盘输入等用浏览器自带的一些调试工具和性能分析工具帮助我们分析问题在最新的无头浏览器环境里做测试、使用最新浏览器特性写爬虫做你想做的事情~

2024-02-05 11:46:08 1261

原创 vue前端+nodejs后端通信-简单demo

vue前端+nodejs后端通信-简单demo

2024-02-04 14:27:45 760

原创 npm---设置淘宝镜像时报“certificate has expired“的错误

npm---设置淘宝镜像时报“certificate has expired“的错误

2024-02-04 11:05:30 1151

原创 Relation-graph关系图/流程图,VUE项目基础使用

Relation-graph关系图/流程图,VUE项目基础使用

2024-02-03 16:28:06 1117

原创 html2canvas 截图功能使用 VUE

html2canvas 截图功能使用 VUE

2024-02-01 13:54:53 637

原创 Git一个仓库包含多个不同的项目VUE(老项目的基础上,新建分支放新项目)

Git一个仓库包含多个不同的项目VUE(老项目的基础上,新建分支放新项目)

2023-12-25 17:15:15 402 1

原创 vue proxy代理 和 Nginx 配置跨域

vue proxy代理 和 Nginx 配置跨域

2023-12-20 17:01:27 338

原创 Mac安装Nginx

Mac安装Nginx

2023-12-19 16:04:28 535

原创 VUE 安装和卸载插件

VUE 安装和卸载插件

2023-12-19 13:53:02 339

原创 Mac如何搭建本地服务器

Mac如何搭建本地服务器

2023-12-19 13:42:53 434

原创 vue 多项目接入跨域问题

vue 多项目接入跨域问题

2023-12-17 15:10:13 113

原创 postMessage解决跨域、消息传递(平台嵌入其他项目,需要相互发送接受消息)

postMessage解决跨域、消息传递(平台嵌入其他项目,需要相互发送接受消息)

2023-12-17 15:02:11 452

原创 多接口同时调用 propmise.all

多接口同时调用 propmise.all

2023-12-13 17:11:44 106

原创 第一次提交代码到git仓库

第一次提交代码到git仓库

2023-12-12 18:19:50 88

原创 单行和多行文本超出省略号

单行和多行文本超出省略号

2023-05-18 14:53:47 117

原创 Element el-table表格高度根据浏览器窗口大小动态改变

Element el-table表格高度根据浏览器窗口大小动态改变

2023-05-04 16:31:50 3218 1

原创 Vue 使用 Export2Excel.js 导出多 sheet 的 excel

Vue 使用 Export2Excel.js 导出多 sheet 的 excel

2023-03-07 13:52:07 1621 1

原创 前端Docker部署方案

前端Docker部署方案

2023-02-21 15:14:32 3586

原创 git rebase 和 git merge,实际工作使用

git rebase 和 git merge,实际工作使用

2023-02-16 16:00:38 680

原创 vue封装使用 svg-icon组件

vue封装使用 svg-icon组件

2023-02-06 16:46:37 1448

原创 request接口封装Vue

request接口封装Vue

2023-02-02 15:54:47 218

vscode安装包保存--mac

vscode安装包

2022-11-17

chrome--devtools Mac

chrome--devtools Mac

2022-08-03

实现情人节动态爱心效果(附代码h5+css+js)

3daixin body{ background:black; } .heart3d{ position:relative; width: 100px; height: 160px; margin:50px auto; animation: rot 20s linear infinite;/*自定义旋转旋转名称 20s 匀速旋转 无限重复*/ transform-style:preserve-3d; } /*关键帧:定义改变的值*/ @keyframes rot{ form{transform: rotateY(0deg)} to{transform:rotateY(360deg)} } .heart3d div{ position: absolute; left:0; top:0; width: 100px; height: 160px; border: 2px solid red; border-left:0; border-bottom: 0; /*margin:50px auto;*/ border-radius:50% 50% 0/40% 50% 0;/*斜杠前面是水平方向 斜杠后面是竖直方向 顺序是顺时针*/ transform: rotate(45deg); } var heart3d=//定义一个变量来保存 //获取元素 //在文档里面get获取元素 document.getElementsByClassName("heart3d")[0]; //在控制台里面的输出 console.log(heart3d) for (var i=0;i<36;i++) //for循环 循环变量 定义一个i变量 初始值0 循环36次 自己循环一次 { var oDiv =document.createElement("div");//在文档里面创建元素 oDiv.style.transform = "rotateY("+i*10+"deg) rotateZ(45deg) translateX(30px)"; heart3d.appendChild(oDiv);//往它里面添加子元素

2020-05-20

Shy-3D立体动态相册实现代码(源代码)

纯CSS实现鼠标经过3D立体动态展示图片特效代码 @charset "utf-8"; *{ margin:0; padding:0; } body{ max-width: 100%; min-width: 100%; height: 100%; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; background-size:100% 100%; position: absolute; margin-left: auto; margin-right: auto; } li{ list-style: none; } .box{ width:200px; height:200px; background-size: cover; background-repeat: no-repeat; background-attachment: fixed; background-size:100% 100%; position: absolute; margin-left: 42%; margin-top: 22%; -webkit-transform-style:preserve-3d; -webkit-transform:rotateX(13deg); -webkit-animation:move 5s linear infinite; } .minbox{ width:100px; height:100px; position: absolute; left:50px; top:30px; -webkit-transform-style:preserve-3d; } .minbox li{ width:100px; height:100px; position: absolute; left:0; top:0; } .minbox li:nth-child(1){ background: url(img/01.png) no-repeat 0 0; -webkit-transform:translateZ(50px); } .minbox li:nth-child(2){ background: url(img/02.png) no-repeat 0 0; -webkit-transform:rotateX(180deg) translateZ(50px); } .minbox li:nth-child(3){ background: url(img/03.png) no-repeat 0 0; -webkit-transform:rotateX(-90deg) translateZ(50px); } .minbox li:nth-child(4){ background: url(img/04.png) no-repeat 0 0; -webkit-transform:rotateX(90deg) translateZ(50px); } .minbox li:nth-child(5){ background: url(img/05.png) no-repeat 0 0; -webkit-transform:rotateY(-90deg) translateZ(50px); } .minbox li:nth-child(6){ background: url(img/06.png) no-repeat 0 0; -webkit-transform:rotateY(90deg) translateZ(50px); } .maxbox li:nth-child(1){ background: url(img/1.png) no-repeat 0 0; -webkit-transform:translateZ(50px); } .maxbox li:nth-child(2){ background: url(img/2.png) no-repeat 0 0; -webkit-transform:translateZ(50px); } .maxbox li:nth-child(3){ background: url(img/3.png) no-repeat 0 0; -webkit-transform:rotateX(-90deg) translateZ(50px); } .maxbox li:nth-child(4){ background: url(img/4.png) no-repeat 0 0; -webkit-transform:rotateX(90deg) translateZ(50px); } .maxbox li:nth-child(5){ background: url(img/5.png) no-repeat 0 0; -webkit-transform:rotateY(-90deg) translateZ(50px); } .maxbox li:nth-child(6){ background: url(img/6.png) no-repeat 0 0; -webkit-transform:rotateY(90deg) translateZ(50px); } .maxbox{ width: 800px; height: 400px; position: absolute; left: 0; top: -20px; -webkit-transform-style: preserve-3d; } .maxbox li{ width: 200px; height: 200px; background: #fff; border:1px solid #ccc; position: absolute; left: 0; top: 0; opacity: 0.2; -webkit-transition:all 1s ease; } .maxbox li:nth-child(1){ -webkit-transform:translateZ(100px); } .maxbox li:nth-child(2){ -webkit-transform:rotateX(180deg) translateZ(100px); } .maxbox li:nth-child(3){ -webkit-transform:rotateX(-90deg) translateZ(100px); } .maxbox li:nth-child(4){ -webkit-transform:rotateX(90deg) translateZ(100px); } .maxbox li:nth-child(5){ -webkit-transform:rotateY(-90deg) translateZ(100px); } .maxbox li:nth-child(6){ -webkit-transform:rotateY(90deg) translateZ(100px); } .box:hover ol li:nth-child(1){ -webkit-transform:translateZ(300px); width: 400px; height: 400px; opacity: 0.8; left: -100px; top: -100px; } .box:hover ol li:nth-child(2){ -webkit-transform:rotateX(180deg) translateZ(300px); width: 400px; height: 400px; opacity: 0.8; left: -100px; top: -100px; } .box:hover ol li:nth-child(3){ -webkit-transform:rotateX(-90deg) translateZ(300px); width: 400px; height: 400px; opacity: 0.8; left: -100px; top: -100px; } .box:hover ol li:nth-child(4){ -webkit-transform:rotateX(90deg) translateZ(300px); width: 400px; height: 400px; opacity: 0.8; left: -100px; top: -100px; } .box:hover ol li:nth-child(5){ -webkit-transform:rotateY(-90deg) translateZ(300px); width: 400px; height: 400px; opacity: 0

2020-05-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除