编程随笔
编程随笔
omiHTML
根据设备宽度加载不同图片
<picture> |
图片热力区域
点击tab触发
<img src="workplace.jpg" alt="Workplace" usemap="#workmap" width="400" height="379"> |
模拟textarea可编辑拉伸
<div style="resize: both;min-height:200px;border: 1px solid #ccc;overflow:auto;" contenteditable="true"></div> |
meta
<head> |
a标签图片下载
<!-- 如果存在跨域问题需要解决跨域,否则会变为跳转 --> |
浏览器
调试js控制样式
- 切到控制台Sources
- f8 -> ctrl+\
调试video标签隐藏元素
DOM&BOM
screenX,pageX,clientX,offsetX区别
节点克隆
const container = document.querySelector('.container') |
获取图片原始宽高
const loadImg = url => { |
拖动图片到指定区域
<img class="img" src="https://gw.alicdn.com/i4/710600684/O1CN01BSkFT41GvJe0mLJBv_!!710600684.jpg_Q75.jpg_.webp" draggable="true" /> |
文字转语音与语音识别
<textarea id="area" rows="10" cols="100"></textarea> |
页面刷新
location.reload // 方法1 |
获取当前经纬度
navigator.geolocation.getCurrentPosition((position) => console.log(position)) |
获取剪切板内容
// 包括读写操作 |
唤醒电话/发送邮件/发送短信/唤醒app
<a href="tel:183xxxxxxxx">一键拨打号码</a> |
全屏api
<script> |
网络状态
navigator.onLine // 是否在线 |
DOM增删改查
// 创建新节点 |
CSS
box-shadow实现多边框
background: black; |
条纹颜色
background: linear-gradient(red 33.3%, green 33.3%, green 66.6%, blue 66.6%); |
border-radius实现半圆
div { |
色轮创建
background: conic-gradient(red, yellow, lime, aqua, blue, fuchsia, red); |
方块背景
background-size: 50px 50px; |
table边框重叠问题
table { |
flex图示
地图暗黑(通过css)
/* 高德与百度测试效果还可以 */ |
css前缀
-webkit-(Chrome/Safari更新版本的Opera和Edge,几乎所有iOS浏览器,包括Firefox for iOS;基本上,任何基于WebKit或Chromium 的浏览器) |
美化chrome滚动条
::-webkit-scrollbar { |
伪元素实现浮动清除
selector::after { |
hover时暂停动画
selector:hover { |
修改选中文本颜色
selector::selection { |
段落分割
p { |
transition先后执行
transition: 2s; // 不指定名称,默认all |
自定义radio样式
// checkbox等修改同理 |
超出省略号显示
/* 单行超出 */ |
去除select标签箭头
select { |
背景铺满元素
elem { |
grid命名布局
.grid-wrapper { |
图片镜像
.img { |
css属性使用html
<style> |
变量
:root { |
css遮罩
/* 点击外部关闭直接mask添加事件即可 */ |
垂直居中方案
/* 太古早的方案就不写了(如table布局) */ |
Tailwind CSS
1像素底部border
<!-- tailwindcss border-b-1不会生效(2像素就会生效🙂) --> |
JavaScript
unicode表情
console.log('\u{01F61F}') // 😟 (该符号unicode为U+1F61F) |
判断是否为数组
Object.prototype.toString.call(obj).slice(8,-1) === 'Array' |
字符串反转
'hello'.split('').reverse().join('') // olleh |
Proxy&Reflect
const target = {} |
Promise
// Promise.all |
Math对象
Math.floor() // 向下取整 |
Date对象
// 也可以调用toLocalDateString&toLocalTimeString获取日期&时间字符串 |
WeakMap与Map
const map = new Map() |
UUID
// 🥶不要再用uuid包了 |
数组乱序
const arr = [1, 2, 3, 4, 5] |
判断数据类型
Object.prototype.toString.call(data).slice(8, -1).toLowerCase() |
bind
const module = { |
大小写互换
const str = 'HeLl0wOrLd' |
保留三位小数(小数为0则不保留)
Math.round(float * 1000) / 1000 |
三元表达式执行
const a = () => 'a' |
低频方法
const str = 'hello ' |
删除dom元素的另类思路
// dom结构为ul>li>content+<button class="delete">删除</button> |
document.form
// 获取id为user-form的form表单 |
createElement&踩坑
[...document.querySelectorAll('li')].forEach(li => { |
classList操作
const btn = document.querySelector('btn') |
dataset
// <div id="user" data-id="1234567890" data-date-of-birth>John Doe</div> |
window.onload与DOMContentLoaded
// DOMContentLoaded |
颜色随机
el.style.color = `#${Math.random().toString().slice(2,8)}` |
class常见方法
// 1. extends继承 |
类数组转数组
Array.prototype.slice.call(arrayLike) |
Reflect
// apply |
NodeJs
使用es模块
# 方式1:package.json修改type为module |
SQL
SQL语言集
SQL功能 | 动词 |
---|---|
数据查询 | SELECT |
数据定义 | CREATE,DROP,ALTER |
数据操纵 | INSERT,UPDATE,DELETE |
数据控制 | GRANT,REVOTE |
数据定义
操作对象 | 创建 | 删除 | 修改 |
---|---|---|---|
表 | CREATE TABLE | DROP TABLE | ALTER TABLE |
视图 | CREATE VIEW | DROP VIEW | |
索引 | CREATE INDEX | DROP INDEX |
NPM
normalize.css
抹除浏览器样式差异
postcss-px-to-viewport
pc/app分辨率适配方案
turf
可用于判断点位是否在区域内(地图推荐使用)
fullpage.js
全屏滚动
serve
本地HTTP服务器
全局升级指定包
$ npm update -g pnpm |
git
按时间倒序列出commit
# 查看3.0.0之前commit,限定一个 |
全局配置用户信息
git config --global user.name "sineava" |
nginx
设置默认跳转https
server { |
代理
server { |
其他
vim常用命令
# 文本输入 |
vscode ctrl+v换行问题
# settings>Format On Paste勾选上 |
快速框选截图
win+shift+s |
评论
匿名评论隐私政策