【转】HTML5中手势原理分析与数学知识的实践

在这触控屏的时代,人性化的手势操作已经深入了我们生活的每个部分。现代应用越来越重视与用户的交互及体验,手势是最直接且最为有效的交互方式,一个好的手势交互,能降低用户的使用成本和流程,大大提高了用户的体验。 拖动: drag 双指缩放: pinch 双指旋转: rotate 单指缩放: singlePinch 单指旋转: singleRotate 长按: tap 滑动: swipe 所有的手势都是基
【转】HTML5中手势原理分析与数学知识的实践

记录一些在此之前不知道的Web API

首先回顾一下以前了解过的Web API(强确实强,但很少用到...) Intersection Observer API 提供了一种异步检测目标元素与祖先元素或 viewport 相交情况变化的方法。 相关文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Intersection_Observer_API  全屏 API 为使用用户的整个屏幕展
记录一些在此之前不知道的Web API

Canvas学习笔记,记录使用过程中遇到的一些问题

fill(),方法用于填充已有的闭合路径,假设有一个如下图的路径,默认情况下圆和方形都会被填充,最后的效果就是一个黑色的方形; 通过fillRule参数,可以指定填充的算法,决定点是在路径内还是在路径外。 允许的值: "nonzero": 非零环绕规则,默认的规则。 "evenodd": 奇偶环绕规则。 将填充规则设置为evenodd,绘制的结果会变为下面这样,通过这种方式可以实现反向裁剪。 通过
Canvas学习笔记,记录使用过程中遇到的一些问题

PHP和JS的条件判断和循环有哪些不同的地方?

在PHP的代码内,空数组等同于false,一直以为同样作为c家族系列的javascript也是这样。 某次程序怎么运行都不对,排查了之后,最后发现js的空数组等于true; 之后思考了一下,js中的数组本质是Array对象,空数组本质就是对象;只要是实例化的对象,那就是true; <?php if(){ echo "true"; }else{ echo "false"; } //最终输出
PHP和JS的条件判断和循环有哪些不同的地方?

Eslint该如何配置?Eslint使用以及相关配置说明

Eslint在过往接触过的很多开源项目内都有它的身影,习惯一个人写代码了,总觉得它可有可无,但是归根结底,好处还是很多的。 可强制规范团队编码规范,让新旧组员编码习惯得到一致提升 可灵活定制团队编码风格,让预设规则符合新旧组员心理预期 增加项目代码的可维护性和可接入性,让新组员能快速适应项目的架构与需求 保障项目整体质量,可减少无用代码、重复代码、错误代码和漏洞代码的产生几率 中文官网:https
Eslint该如何配置?Eslint使用以及相关配置说明

网页元素相交监测:Intersection Observer API

参考文档:https://developer.mozilla.org/zh-CN/docs/Web/API/Intersection_Observer_API Intersection Observer API 提供了一种异步检测目标元素与祖先元素或 viewport 相交情况变化的方法。 过去,要检测一个元素是否可见或者两个元素是否相交并不容易,很多解决办法不可靠或性能很差。然而,随着互联网的发
网页元素相交监测:Intersection Observer API

重新理解:什么是页面生命周期API?

简而言之,在此之前,Web网页在浏览器内可以无限期地保持运行状态。随着大量网页的运行,内存、CPU、电池和网络等关键系统资源可能会被超额使用,然后就会出问题。 虽然 Web一直有和生命周期相关的事件(例如load、unload和visibilitychange),但这些事件只允许开发人员响应用户发起的生命周期状态变化。为了让Web页面能够更加稳定的运行,浏览器需要一种主动回收和重新分配系统资源的方
重新理解:什么是页面生命周期API?

Vue后台管理系统开发,相关代码的笔记。

从零开始开发后台管理系统,还是有很多值得记录的地方。构建工具Vite、使用Vue3。 /* * @author 友人a丶 * @date 2022-07-11 * @app Vue应用对象 * */ export default function (app) { /* * 指定要导入的文件目录 * 直接加载用{eager:true},懒加载用glob * */ const modules = im
Vue后台管理系统开发,相关代码的笔记。

Pinia状态管理器学习笔记,持续记录

足够轻量,Pinia 重约 1kb,甚至会忘记它的存在! 去除 Mutation ,Actions 支持同步和异步(Actions一个顶俩,写起来简洁); 无需手动注册 Store,Store 仅需要时才自动注册。如果从不使用,则永远不会“注册”(省心); 没有模块嵌套,只有 Store 的概念,Store 之间可以自由使用,更好的代码分割; Vue2 和 Vue3 都能支持; 支持大型项目迁移期
Pinia状态管理器学习笔记,持续记录

Vue组件设计学习笔记,持续记录

组件化思想并不是前端独有的,但却是前端技术的延伸 任何软件开发过程,或多或少都有那么一些组件化的需求。 每个组件对应一个目录,组件所需的各种资源都在这个目录下就近维护;(最具软件工程价值) 页面上的每个独立的可视/可交互区域视为一个组件; 由于组件具有独立性,可以自由组合; 页面是组件的容器,负责组合组件形成功能完整的界面; 当不需要某个组件,或者想要替换组件时,可以整个目录删除/替换 分子是由原
Vue组件设计学习笔记,持续记录

Vue-Cli该如何使用?Vue-Cli学习笔记,持续记录

修改.Env环境变量文件之后,需要重新运行server才会生效。环境变量通过process.ENV访问。可以在项目根目录中放置下列文件来指定环境变量: .env # 在所有的环境中被载入 .local # 在所有的环境中被载入,但会被 git 忽略 .env. # 只在指定的模式中被载入 .env..local # 只在指定的模式中被载入,但会被 git 忽略 以 VUE_
Vue-Cli该如何使用?Vue-Cli学习笔记,持续记录

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实用函数收集,持续记录