自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 收藏
  • 关注

原创 js保留字符串的前几位、后几位,中间省略号显示

这个方法接受三个参数:字符串省略号前保留几位字符(默认4)省略号后保留几位字符(默认4)

2025-06-11 14:48:57 76

原创 css设置动态数值:clamp函数

CSS 的 clamp() 函数是一个强大的工具,用于创建响应式且范围可控的动态值。它结合了min() 和max() 的逻辑,允许你定义一个值在最小值和最大值之间动态调整。

2025-05-28 10:42:57 524

原创 Decimal.js 的常用方法

​Decimal.js是一个用于高精度计算的JavaScript库,特别适用于需要避免浮点数精度问题的场景,比如金融计算。1. 安装与引入# 通过 npm 安装npm install decimal.js// 浏览器环境<script src="decimal.js"></script> // Node.js 环境const Decimal = require('decimal.js');2. 基本用法创建实例const a = new Decimal(123.456);

2025-05-12 13:08:20 327

原创 JS判断用户使用的是什么浏览器

// 获取浏览器类型const getSysType = () => { var Sys: any = {}; var ua = navigator.userAgent.toLowerCase(); var s; (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : (s = ua.match(/firefox\/([\d.]+)/)) ? Sys.firefox = s[1] : (s = ua.match(/chrome\/([\d.]+

2025-04-17 11:56:22 124

原创 vue所有的内置指令及修饰符说明

1. v-text功能:更新元素的 textContent,直接渲染纯文本内容。修饰符:无。2. v-html功能:渲染原始 HTML 内容(需注意防范 XSS 攻击)。修饰符:无。3. v-show功能:通过 CSS 的 display 属性控制元素显示/隐藏,适合频繁切换的场景。修饰符:无。4. v-if / v-else-if / v-else功能:条件渲染,直接添加或移除 DOM 元素。v-if 为真时渲染,v-else-if 提供多条件分支,v-else 作为默认分支。

2025-04-17 11:55:58 492

原创 JS一元减号运算符(-)的使用方法及注意事项

​在 JavaScript 中,一元减号运算符(-)用于对操作数的值取反。1. 数字类型 - 直接取反:2.字符串类型 - 若字符串是有效数字,转换为数字后取反:3.布尔类型 - true 转为 1,false 转为 0:4.对象类型 - 调用 valueOf() → toString() 转换为原始值,再取反:5.null 和 undefined - null 转为 0,undefined 转为 NaN:6.BigInt 类型 - 支持直接取反:注意事项NaN 结果:若操作数无法转换为有

2025-04-03 09:45:19 468

原创 JS一元加号运算符(+)的使用方法及注意事项

一元加号运算符(unary plus operator)在JavaScript中主要用于将其操作数转换为数字类型(如果操作数本身不是数字的话)。这个运算符只有一个加号(+),并且它前面没有任何其他操作数。

2025-03-28 10:16:22 368

原创 vue3中用v-for循环出三个元素,绑定元素的ref并拿到这三个元素的ref属性

这种情况多在动态循环三个form表单的情况出现,以element UI为例:简单来说就是用的ref的函数用法::ref="el => (formRefs[index] = el)"

2025-03-18 11:08:45 664

原创 vue上传文件的请求头携带token校验、和携带另外的参数请求

拿element plus UI库举例:,(不使用element plus的话js方法通用):// 自定义上传文件(携带token和id)const myUploadHttp = (options: any) => { console.log(options); if (!options) return; let Authorization = localStorage.getItem("Authorization");//请求头添加token权限

2025-03-12 11:40:49 583

原创 使用vue的路由打开新标签页跳转

vue的路由只支持在本标签页跳转,要用vue的路由打开新标签页需要做处理再用window.open方法打开router.push: 这是 Vue Router 提供的用于在当前标签页中进行路由跳转的方法。router.resolve: 这个方法会返回一个包含 href 等属性的对象,href 是解析后的完整 URL。window.open: 这是原生的 JavaScript 方法,用于在新标签页中打开指定的 URL。'_blank' 参数表示在新标签页中打开

2025-03-12 11:29:58 440

原创 js获取html标签中的纯文本

 用到js的DOMParser Api// 从html中获取纯文本const getTextFromHtml = (htmlString) => { const parser = new DOMParser(); const doc = parser.parseFromString(htmlString, 'text/html'); // 获取所有文本内容,包括子节点的文本 const textContent = doc.body.textContent || "";

2025-03-07 10:12:40 180

原创 js对字符串不足位数的补字符

【代码】js对字符串不足位数的补字符。

2025-03-05 13:57:26 101

原创 前端带样式导出excel表格,html表格生成带样式的excel表格

众所周知,前端生成表格通常是用xlsx、excel.js等js库,但这些库想要生成时增加excel样式会很麻烦。有这么一个js库把html表格连样式带数据一并导出为excel表格

2025-02-17 11:21:42 427

原创 python实现打开电脑上的任意软件;打开某个视频并全屏、循环播放;并定时启动该程序

python实现打开电脑上的任意软件;打开某个视频并全屏、循环播放;并定时启动该程序

2025-02-12 10:30:02 419

原创 用html、css、js 200行代码实现的todolist功能,可以持久存储,有添加、删除、待办、已办、创建时间等功能,并自适应屏幕大小

用html、css、js 200行代码实现的todolist功能,可以持久存储,有添加、删除、待办、已办、创建时间等功能,并自适应屏幕大小

2025-01-16 16:36:06 151

原创 js根据两个经纬度点计算文字显示角度

用于计算两点之间的罗盘方位角(也称为恒向线角或罗盘角)。这种方法假设地球是一个球体,并且沿着最短路径(即大圆路径)测量两点之间的距离和方位角,但在计算方位角时采用了一种简化的方法,即假设沿恒向线(罗盘线)航行。rhumbBearing(start, end)方法需要两个参数,一个开始经纬度数组,一个结束经纬度数组。

2024-12-17 14:54:22 277

原创 js把数据导出excel表格并给表格设置样式

// 整理表格const formatExcel = (data, name) => { // 创建一个新的工作簿 const workbook = XLSXS.utils.book_new(); // 创建数据 const worksheetData = data; // 将数据转换为工作表 const worksheet = XLSXS.utils.aoa_to_sheet(worksheetData); // 设置样式 cons

2024-10-08 11:19:12 608

原创 js判断一个对象里有没有某个属性

使用in操作符时,它会检查对象自身及其原型链上是否有该属性。hasOwnProperty()只检查对象自身是否有该属性,不检查原型链。Object.keys()会返回一个由对象自身所有可枚举属性键组成的数组,然后通过includes()检查数组是否包含该属性键。propertyIsEnumerable()检查对象自身是否包含该属性,并且该属性是否可枚举。

2024-09-25 11:15:35 970

原创 vue实现从粘贴板获取图片

const pastPic = async (e) => { let items = (e.clipboardData || e.originalEvent.clipboardData).items; for (var i = 0; i < items.length; i++) { if (items[i].type.indexOf('image') !== -1) { //只过滤出粘贴的图片 formList.loading

2024-09-14 13:15:39 307

原创 js使用网络请求下载文件

// 网络请求下载文件export const donwloadFileByUrl = async (item) => { axios.get(item.filePath, { responseType: 'blob' // 拿到文件的blob数据 }).then(async (blob) => { console.log(blob); const url = URL.createObjectURL(blob.data); const a = document.cr

2024-09-10 16:06:49 596

原创 vue使用全局指令实现左右拖拽调整元素宽度

app.directive('draggable', draggableObj)const draggableObj = { mounted(el, binding, vnode) { let xOffset = 0; let yOffset = 0; el.style.width = binding.value + 'px'; const handleMouseDown = (event) => { xOffset = event.clientX;

2024-08-28 09:52:46 482

原创 vue3 el-table手动选中某一行、设置默认选中某一行

选中某一行用的是el-table的toggleRowSelection方法,用来切换某一行的选中状态

2024-06-25 11:24:40 3676

原创 用vue把iconfont阿里巴巴的图标封装成组件(可该颜色、大小、增加css动画等样式)

一般来说iconfont图标库是下载图片作为icon,这样对编码来说就有些局限性,比如不能图片的颜色,css动画等等,我们来把iconfont的图标库封装成组件就可以实现:1. 在components文件夹下创建个空的myIcon.vue文件:2. 在iconfont-阿里巴巴矢量图标库中找到适合自己项目的icon,我随便找了一个,然后不下载图片,点击复制svg代码:......... 以上是更改颜色,除此之外还可以把myIcon完全当做组件来用,比如增加css的animation动画:

2024-05-30 11:18:57 745 4

原创 解决css使用@keyframes/animation属性失效的问题

导致该属性失效的原因可能有很多种,这里记录我遇到的一种:以下代码阴影不生效:以下代码阴影生效:

2024-05-13 15:14:44 1326 1

原创 uniapp解决后端传来的id太长导致精度丢失(超过16位的数字会变成0000)的问题

办法一:让后端把id传成字符串类型;办法二:用jsonBig转换为bigInt数字类型:1.在项目根目录打开命令行输入命令安装jsonBig插件:2.在封装的请求中使用插件,核心是在uni.request的配置项添加{dataType: 'String'}配置(因为默认会使用JSON.parse()解析从后端的来的数据),再用json-bigint插件把长类型数字解析成字符串,解析失败就代表没有长数字可解析,使用JSON.parse()解析

2024-05-11 16:23:55 1484

原创 axios解决后端传来的id太长导致精度丢失(超过16位的数字会变成0000)的问题

办法一:让后端把id传成字符串类型;办法二:用jsonBig转换为bigInt数字类型:1.在项目根目录打开命令行输入命令安装jsonBig插件:2.在封装的请求中使用插件,核心是在创建sxios实例的时候假如transformResponse这个配置项,可以拦截接口返回的内容进行处理(因为默认会使用JSON.parse()解析从后端的来的数据),再用json-bigint插件把长类型数字解析成字符串,解析失败就代表没有长数字可解析,使用JSON.parse()解析

2024-05-11 16:23:04 2170

原创 微信开发者工具预览和真机调试的时候显示游客appid无法使用此功能的解决办法

并扫码选择登录你的账号,没有账号要点二维码下边小程序注册。这里有你的小程序appid,复制。打开微信开发者工具,点详情 - 基本信息 - 修改appid。微信开发者工具的appid和uniapp的appid无关。把再微信公众平台复制的appid粘贴进来再确定就行了。

2024-03-29 11:41:37 5080

原创 css设置选中文字和选中图片字的颜色

要改变页面中选中文字的颜色,可以使用 CSS 的 ::selection 伪元素来实现

2024-03-14 16:41:09 775

原创 鸿蒙开发运行“Hello World“ 项目时报错:Can not find @ohos/hvigor Please check @ohos/hvigor configuration and sync

当我新创建一个项目想预览时提示报这个错:Can not find @ohos/hvigor Please check @ohos/hvigor configuration and sync

2024-01-09 17:29:40 9127 6

原创 uniapp app端路由跳转时设置跳转过渡时间

其中,animationType和animationDuration属性只在app端生效,而且只有uni.navigateTo可以使用uni.reLaunch无法使用 uni.navigateTo({ url: this.nextUrl, animationType: "slide-in-left", animationDuration: 15000 });

2023-11-22 15:42:57 864

原创 javaScript解决手机浏览器下载为图片之后,图片漆黑无法保存的问题

pc端能正常下载图片并查看手机移动端下载的图片全是黑色的并且无法保存,这个问题可能与移动浏览器的安全策略有关解决办法:使用Blob对象和createObjectURL方法来创建一个临时URL,然后将其赋给链接的href属性下载:

2023-11-22 15:34:18 1153

原创 解决uniapp的video标签和transition属性使用时出现错位的问题

视频错位了 ,因为视频消失又出现的时候transition过渡还没结束,所以错位了,这时候在点击按钮向上滚动的时候给控制视频消失/显示的样式延后0.3秒就行了,如(v-if)

2023-11-02 11:08:34 1488

原创 vue3中使用vue-i18n

1.先在项目中下载vue-i18n2.1 .为了结构清晰,在src目录下创建一个lang文件夹2.2 . 在lang文件夹分别下创建两个文件:en.js / zh.js代表两种语言2.3 . 接着在lang文件夹下创建一个index.js文件:3. 在main.js中引入并use刚才创建的index.js文件:4. 到此基本配置已经完成了,接下来使用:在项目中任意一个.vue文件中:5.修改语言

2023-10-30 17:35:59 1079

原创 uniapp把文件中的内复制到另一个文件中

使用的是Html 5+的plus.io.resolveLocalFileSystemURL方法切记:要操作一个目录必须就要plus.io.resolveLocalFileSystemURL一次,像我示例里边有三个操作目录的动作,1.读取目录2. 删除老目录3. 把读取到的目录内容移动到目标目录所以就嵌套了三层plus.io.resolveLocalFileSystemURL;

2023-10-24 17:37:49 1900 1

原创 uniapp退出微信小程序的代码

uni.exitMiniProgram()是UniApp提供的方法之一,用于在小程序平台中退出当前小程序应用该方法还可以接受一个配置项,配置项包含成功和失败的回调函数:

2023-09-04 15:10:43 3842

原创 npm v10.0.0 is known not to run on Node.js v12.8.0. This version of npm supports the following node

​执行命令时报错:ERROR: npm vxxx is known not to run on Node.js vxxx. This version of npm supports the following node versions: `^18.17.0 || >=20.5.0`. You can find the latest version at https://nodejs.org/.报错说你现在的npm版本是vxxx 不支持你现在Node的版本vxxx,需要把node版本改成npm支持的

2023-09-04 10:38:01 4535

原创 Refused to execute script from ‘‘ because its MIME type (‘text/html‘) is not executable, and strict

Refused to execute script from 'http://localhost:8080/style.js?v=1.1' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.造成这个报错的情况有很多,比如服务器配置错误、缓存问题、代码错误、应用部署问题等等这篇文章是在前端项目运行时产生的问题,原因就是我在vue.config.js中设置了静态资源

2023-08-22 11:58:56 9316

原创 Vue3如何像在prototype(原型)上挂载数据

1. 首先,由于Vue团队对原型链的封装和改进,Vue3无法像Vue2一样直接在原型上放置数据,2. 在Vue原型上挂载数据的作用是为了所有组件都可以通过 this. 获取到挂载的这个数据,如果Vue3想要达到同样的效果,即(所有组件都可以通过this.myName获取到张三),需要用到vue3的mixin方法:这样,在其他组件使用this.myName的时候就可以获取到'张三',达到与在Vue.prototype上挂载数据同样的作用

2023-08-08 11:41:49 4899 1

原创 vue全局状态管理工具 Pinia 的使用

与vuex的作用一样,用于全局共享数据。其实Pinia就是起源于vuex的一次更新,Pinia 于 2019 年 11 月左右的一次实验,其目的是设计一个拥有组合式api的 vue 状态管理库,就是说在vuex中可以写vue3的代码。,即“菠萝”,菠萝花是一组各自独立的花朵,它们结合在一起,形成一个多重的水果。Pinia确实比vuex方便了很多,它不需要受到action和mutation的限制,可以直接对仓库中的数据进行读写我感觉Pinia与Vuex的关系就像是Vue3和Vue2的关系。

2023-07-25 15:54:52 1016

原创 创建一个vue3 + vite项目,一个命令创建

1. 在一个文件夹下打开cmd命令窗口并输入命令:2. 接着询问你是否需要安装以下这些包,这些都是需要的,输入y回车3.接着起一个项目名称,默认是vue-project4.接着是否使用TypeScript,根据个人需求选择,如果你不知道TypeScript是什么就选No5.接着JSX同理,不知道是什么就选No6. 接着是否添加路由(Router),根据需要选择,这个我一般选择yes7.接着是否添加Pinia,Pinia的作用于vuex相同,用于全局共享数据,根据需要添加8. 接着是否添加单元

2023-07-25 14:28:52 518

空空如也

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

TA关注的人

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