【转】HTML5中手势原理分析与数学知识的实践 在这触控屏的时代,人性化的手势操作已经深入了我们生活的每个部分。现代应用越来越重视与用户的交互及体验,手势是最直接且最为有效的交互方式,一个好的手势交互,能降低用户的使用成本和流程,大大提高了用户的体验。 拖动: drag 双指缩放: pinch 双指旋转: rotate 单指缩放: singlePinch 单指旋转: singleRotate 长按: tap 滑动: swipe 所有的手势都是基 canvas 友人a丶 2022-12-10 1085 热度 0评论
如何用JS实现在网页上通过鼠标移动批量选择元素的效果? 简单说就是类似电脑桌面,通过鼠标选择多个图标的那种效果。如下: 监测外部容器的mousedown、mousemove、mouseup事件来进行选择判断,大致dom结构如下: <div class="test"> <!--鼠标移动时显示的选择框--> <div class="move"></div> <!-- 待选项 --> <div JS笔记 友人a丶 2022-11-11 1510 热度 0评论
记录一些在此之前不知道的Web API 首先回顾一下以前了解过的Web API(强确实强,但很少用到...) Intersection Observer API 提供了一种异步检测目标元素与祖先元素或 viewport 相交情况变化的方法。 相关文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Intersection_Observer_API 全屏 API 为使用用户的整个屏幕展 前端笔记 友人a丶 2022-11-09 1020 热度 0评论
Canvas学习笔记,记录使用过程中遇到的一些问题 fill(),方法用于填充已有的闭合路径,假设有一个如下图的路径,默认情况下圆和方形都会被填充,最后的效果就是一个黑色的方形; 通过fillRule参数,可以指定填充的算法,决定点是在路径内还是在路径外。 允许的值: "nonzero": 非零环绕规则,默认的规则。 "evenodd": 奇偶环绕规则。 将填充规则设置为evenodd,绘制的结果会变为下面这样,通过这种方式可以实现反向裁剪。 通过 canvas 友人a丶 2022-11-07 1165 热度 0评论
PHP和JS的条件判断和循环有哪些不同的地方? 在PHP的代码内,空数组等同于false,一直以为同样作为c家族系列的javascript也是这样。 某次程序怎么运行都不对,排查了之后,最后发现js的空数组等于true; 之后思考了一下,js中的数组本质是Array对象,空数组本质就是对象;只要是实例化的对象,那就是true; <?php if(){ echo "true"; }else{ echo "false"; } //最终输出 问题记录 友人a丶 2022-08-20 1042 热度 0评论
Stylelint该如何配置?Stylelint使用以及相关配置说明 官方网站:https://stylelint.io/ stylelin本体:https://www.npmjs.com/package/stylelint stylelint-config-standard 拓展配置:https://www.npmjs.com/package/stylelint-config-standard npm install --save-dev stylelint st JS笔记 友人a丶 2022-07-31 1768 热度 0评论
Eslint该如何配置?Eslint使用以及相关配置说明 Eslint在过往接触过的很多开源项目内都有它的身影,习惯一个人写代码了,总觉得它可有可无,但是归根结底,好处还是很多的。 可强制规范团队编码规范,让新旧组员编码习惯得到一致提升 可灵活定制团队编码风格,让预设规则符合新旧组员心理预期 增加项目代码的可维护性和可接入性,让新组员能快速适应项目的架构与需求 保障项目整体质量,可减少无用代码、重复代码、错误代码和漏洞代码的产生几率 中文官网:https JS笔记 友人a丶 2022-07-30 1375 热度 0评论
网页元素相交监测:Intersection Observer API 参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Intersection_Observer_API Intersection Observer API 提供了一种异步检测目标元素与祖先元素或 viewport 相交情况变化的方法。 过去,要检测一个元素是否可见或者两个元素是否相交并不容易,很多解决办法不可靠或性能很差。然而,随着互联网的发 JS笔记 友人a丶 2022-07-27 1120 热度 0评论
重新理解:什么是页面生命周期API? 简而言之,在此之前,Web网页在浏览器内可以无限期地保持运行状态。随着大量网页的运行,内存、CPU、电池和网络等关键系统资源可能会被超额使用,然后就会出问题。 虽然 Web一直有和生命周期相关的事件(例如load、unload和visibilitychange),但这些事件只允许开发人员响应用户发起的生命周期状态变化。为了让Web页面能够更加稳定的运行,浏览器需要一种主动回收和重新分配系统资源的方 前端笔记 友人a丶 2022-07-27 1187 热度 0评论
Vue后台管理系统开发,相关代码的笔记。 从零开始开发后台管理系统,还是有很多值得记录的地方。构建工具Vite、使用Vue3。 /* * @author 友人a丶 * @date 2022-07-11 * @app Vue应用对象 * */ export default function (app) { /* * 指定要导入的文件目录 * 直接加载用{eager:true},懒加载用glob * */ const modules = im Vue学习 友人a丶 2022-07-22 1136 热度 0评论
Pinia状态管理器学习笔记,持续记录 足够轻量,Pinia 重约 1kb,甚至会忘记它的存在! 去除 Mutation ,Actions 支持同步和异步(Actions一个顶俩,写起来简洁); 无需手动注册 Store,Store 仅需要时才自动注册。如果从不使用,则永远不会“注册”(省心); 没有模块嵌套,只有 Store 的概念,Store 之间可以自由使用,更好的代码分割; Vue2 和 Vue3 都能支持; 支持大型项目迁移期 Vue学习 友人a丶 2022-06-19 1154 热度 0评论
Vue2.x中使用composition API,平滑过渡Vue3 Vuejs官方出品:https://github.com/vuejs/composition-api/blob/HEAD/README.zh-CN.md 基于组合式API的一组实用函数:https://vueuse.org/guide/ npm install @vue/composition-api -D import Vue from 'vue' import VueCompositionAP Vue学习 友人a丶 2022-06-19 1125 热度 0评论
Vue组件设计学习笔记,持续记录 组件化思想并不是前端独有的,但却是前端技术的延伸 任何软件开发过程,或多或少都有那么一些组件化的需求。 每个组件对应一个目录,组件所需的各种资源都在这个目录下就近维护;(最具软件工程价值) 页面上的每个独立的可视/可交互区域视为一个组件; 由于组件具有独立性,可以自由组合; 页面是组件的容器,负责组合组件形成功能完整的界面; 当不需要某个组件,或者想要替换组件时,可以整个目录删除/替换 分子是由原 Vue学习 友人a丶 2022-06-18 1098 热度 0评论
Vue-Cli该如何使用?Vue-Cli学习笔记,持续记录 修改.Env环境变量文件之后,需要重新运行server才会生效。环境变量通过process.ENV访问。可以在项目根目录中放置下列文件来指定环境变量: .env # 在所有的环境中被载入 .local # 在所有的环境中被载入,但会被 git 忽略 .env. # 只在指定的模式中被载入 .env..local # 只在指定的模式中被载入,但会被 git 忽略 以 VUE_ Vue学习 友人a丶 2022-06-15 1047 热度 0评论
JS实用函数收集,持续记录 function getBase64(file) { return new Promise((resolve, reject) => { const reader = new FileReader(); reader.readAsDataURL(file); reader.onload = () => resolve(reader.result); reader.onerror = e JS笔记 友人a丶 2022-05-12 1078 热度 0评论