Delete `␍` prettier/prettier

代码格式化不一致,换行符冲突。UNIX/Linux 使用的是 0x0A(LF), DOS/Windows 一直使用 0x0D0A(CRLF) 作为换行符,git 默认配置了 autocrlf 为true,默认所有代码都会被提交成了crlf,或者开发者自己配置的autocrlf配置不一致。

修改git全局配置,禁止git自动将lf转换成crlf(提交检出均不转换)

git config --global core.autocrlf false

或者

git提交的时候,文件中的换行符必须是LF,如果不是不能提交。

# 提交时转换为LF,检出时不转换
git config --global core.autocrlf input # 拒绝提交包含混合换行符的文件
git config --global core.safecrlf true

删除对象属性(比delete强,不会改变引用地址)

Object.keys(state).forEach((key) => {
Reflect.deleteProperty(state, key);
});

将 stylus 转换成 scss

安装插件,插件github地址

npm install -g stylus-converter

文件目录处执行,指定输入输出文件名称

stylus-conver -i source.styl -o target.scss

文件目录父级执行,指定输入输出文件夹名称

stylus-conver -d yes -i source-path -o target-path

滚动时控制 CSS渐变

可人为控制 :屏幕慢慢滚动并在此过程中任意停留,在任意停留点中你可以看到当前渐变程度和效果,并且在你停留的这个点,渐变效果不会发生改变,当再次滚动时渐变程度才会有所变化。

原理:通过监听滚动的 scrollTop 值,在不同的 scrollTop值范围中,给元素对应设置不同的 opacity。opacity会导致子元素也不可见,可以定位两个同级的元素,下面的当背景显示渐变效果,上面的显示文字或 其他同事配合渐变效果。

不可控的:当页面滚动到某个值时就触发样式变化,就算停下滚动,也会自动渐变完整个效果。

原理:当页面滚动到某个值,就设置新的样式,并且通过transition做过度处理。

// 控制opacity z-index
const boxScroll = (e) => {
const top = e.target.scrollTop;
if (top === 0) {
targetEl.value.style["z-index"] = 0;
targetEl.value.style["opacity"] = 0;
}
if (top > 0 && top < 360) {
targetEl.value.style["z-index"] = 20;
targetEl.value.style["opacity"] = Number(top / 360).toFixed(2);
boxLive.value.style["opacity"] = 1 - Number(top / 360).toFixed(2);
}
if (top >= 360) {
targetEl.value.style["opacity"] = 1;
}
};

onscroll 事件无作用

height: 100vh;
overflow: auto;

可移动悬浮按钮

<template>
<div
class="fixed right-0 bottom-0 w-[3rem] h-[2rem]"
v-show="state.float"
@click="floatClick"
@touchstart="touchstart"
@touchmove.prevent="touchmove"
@touchend="touchend"
ref="floatBtn"
>
<img class="w-full h-full" src="../../../assets/images/search.png" alt="" />
</div>
</template> <script setup>
import { reactive, ref } from "vue"; const floatBtn = ref(null);
const state = reactive({
float: true,
flags: false,
position: {
x: 0,
y: 0,
},
nx: "",
ny: "",
dx: "",
dy: "",
xPum: "",
yPum: "",
}); const touchstart = (event) => {
console.log("移动中", event);
// floatBtn.value.style.transition = "none";
state.flags = true;
let touch;
if (event.touches) touch = event.touches[0];
else touch = event;
state.position.x = touch.clientX;
state.position.y = touch.clientY;
state.dx = floatBtn.value.offsetLeft;
state.dy = floatBtn.value.offsetTop;
};
const touchmove = (event) => {
console.log("移动中", event);
if (state.flags) {
let touch;
if (event.touches) touch = event.touches[0];
else touch = event;
state.nx = touch.clientX - state.position.x;
state.ny = touch.clientY - state.position.y;
state.xPum = state.dx + state.nx;
state.yPum = state.dy + state.ny;
//屏幕宽度减去⾃⾝控件宽度
let width = window.innerWidth - floatBtn.value.offsetWidth;
//屏幕⾼度减去⾃⾝控件⾼度
let height = window.innerHeight - floatBtn.value.offsetHeight;
state.xPum < 0 && (state.xPum = 0);
state.yPum < 0 && (state.yPum = 0);
state.xPum > width && (state.xPum = width);
state.yPum > height && (state.yPum = height);
floatBtn.value.style.left = state.xPum + "px";
floatBtn.value.style.top = state.yPum + "px";
}
};
const touchend = (event) => {
state.flags = false;
// floatBtn.value.style.transition = "all 0.3s";
};
</script>

最新文章

  1. 读书笔记--SQL必知必会12--联结表
  2. 第四篇 Entity Framework Plus 之 Batch Operations
  3. ASP.NET Web API中的Controller
  4. Bulk_Collect 调用方式集锦
  5. Android循环滑动寻找元素,直接代码
  6. 关于JQ的$.deferred函数。参考网络文档
  7. Android核心分析之二十四Android GDI之显示缓冲管理
  8. 【JavsScript】JavaScript MVC框架PK:Angular、Backbone、CanJS与Ember
  9. python 从SocketServer到 WSGIServer 源码分析、
  10. Xcode7工程改名
  11. javascript 常用函数
  12. Hibernate给表和字段设置前后缀及分隔符
  13. EF Code First关系规则及配置
  14. CentOS7离线安装mysql5.7
  15. java 动态代理模式(jdk和cglib)
  16. python-while else
  17. PEP 530 -- 异步推导式
  18. CF448C Painting Fence (贪心分治)
  19. the-implementation-of-epoll
  20. 善用 CSS 中的 table-layout 屬性加快 Table 的顯示速度

热门文章

  1. vm虚拟机进入boot manager解决
  2. [数据结构]普里姆(Prim)算法生成最小生成树
  3. 红客突击队&amp;突击队分队
  4. angular建立服务打印日志创建全局变量方法有两种,手工创建,依赖注入
  5. docker配置阿里云加速
  6. 【随笔记】MFC 解决按下 ESC、Enter 键会自动退出的问题
  7. C++练习9 函数的重载
  8. ctfshow_web入门 xss
  9. JZOJ 2020.07.28【NOIP提高组】模拟
  10. 这些 JavaScript 笔试题你能答对几道?