【碎片笔记】2022年6月
为什么设置position:absolute后 后面的元素覆盖了前面的元素?
position:absolute;
会使内联的特性变为块属性;覆盖是因为span设置了position:absolute;
在前面没有设置position:relative;
的情况下是会默认以html的框架为参照点,都以html为参照,后面的span就会覆盖前面的span单行文本溢出显示省略号
1
2
3
4
5
6span {
white-space: nowrap; /* 不换行 */
overflow: hidden; /* 溢出隐藏 */
text-overflow: ellipsis; /* 文字溢出省略 */
width: 200px; /* 加宽度来兼容部分浏览器 */
}多行文本溢出显示省略号
1
2
3
4
5
6
7
8
9span {
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-box-pack: center;
-webkit-line-clamp: 4; /* 指定4行 */
text-overflow: ellipsis;
width: 200px; /* 加宽度来兼容部分浏览器 */
}-
1
2
3
4
5
6
7
8
9
10
11
12
13#p2{
width: 220px;
height: 58px;
overflow: hidden;
text-overflow:ellipsis;
background: greenyellow;
/*-webkit-line-clamp⽤来限制在⼀个块元素显⽰的⽂本的⾏数。为了实现该效果,它需要组合其他的WebKit属性。常见结合属性:
display: -webkit-box; 必须结合的属性,将对象作为弹性伸缩盒⼦模型显⽰。
-webkit-box-orient 必须结合的属性,设置或检索伸缩盒对象的⼦元素的排列⽅式。*/
-webkit-line-clamp: 3;
display: -webkit-box;
-webkit-box-orient: vertical;
} -
- 衍生问题:beforeDestroy 没有触发?
-
由于项目中难免会碰到需要实时刷新,无论是获取短信码,还是在支付完成后轮询获取当前最新支付状态,这时就需要用到定时器。但是,定时器如果不及时合理地清除,会造成业务逻辑混乱甚至应用卡死的情况,这个时就需要清除定时器。某个页面中启动定时器后,一定要在页面关闭时将定时器清除掉。即在页面卸载(关闭)的生命周期函数里,清除定时器。
Vue在created,mouted 中调用methods方法
切记加this,如:this.getTableData()
vue的method函数互引用
this.$options.methods.函数名字()
vue单页面组件export default的写法顺序
name
:只有作为组件选项时起作用。1)组件自身的递归调用,就是在当前组件中,调用组件自己。2)当我们使用vue.js官方提供的调试工具调试时,可以看到组件的名称,更好地定位。3)最后一种应该是使用比较多的情况,就是当我们使用 keep-alive时可以使用include和exclude指定需要缓存和不需要缓存的组件。指定的依据就是组件的name。components
:注册组件最上边有引入props
:接收父组件传递过来的参数data
:定义变量,为变量赋值等created
:模板渲染成html前调用,用于初始化属性值,然后再渲染成视图methods
:编写js函数mounted
:在模板渲染成html后调用,通常用于初始化页面完成后,再对html的dom节点进行一些需要的操作computed
:computed是计算属性,也就是依赖其它的属性计算所得出最后的值watch
:watch是去监听一个值的变化,然后执行相对应的函数
Vue中
this
在函数内部不起作用1
2
3
4
5
6if (!adShow) {
// this.adShow = true // 管用
setTimeout(function () {
this.adShow = true // 不管用
}, 2000)
}原因是this的范围变化了,去掉function并换成箭头函数就行了:
1
2
3
4
5
6if (!adShow) {
// this.adShow = true // 管用
setTimeout(() => {
this.adShow = true // 也管用
}, 2000)
}Vue中
v-if="show"
和v-show="show"
都能控制元素在页面是否显示,有什么区别?- v-if和v-show的区别
- v-show隐藏则是为该元素添加css–display:none,dom元素依旧还在
- v-if显示隐藏是将dom元素整个添加或删除
Vue中
v-model
是干什么的来着?【☆】vue2和vue3使用ref获取元素
通过id无法正常获取1
2
3
4// <div class="screen-ad" v-show="adShow" id="screen_ad">
const screen_ad = document.getElementById('screen_ad')
screen_ad.style.top = '-100px'
// 报错:Identifier 'screen_ad' is not in camel case可以通过ref进行获取
1
2
3// <div class="screen-ad" v-show="adShow" ref="screen_ad">
console.log(this.$refs.screen_ad)
this.$refs.screen_ad.style.top = '-100%'把上述语句放在methods函数中,在created可以调用这个函数(需加this)
-
1
2
3
4// 改成使用 this.$nextTick执行
this.$nextTick(() => {
this.$refs.input.focus();
});原因可能是由于元素使用了
v-if
,在动态设置显示之后,DOM还没来得及渲染出来,就使用this.$ref
来获取DOM,可能获取不到,使用this.$nextTick
相当于进行了延时,等到了DOM完全渲染成功之后就能获取到了。this.$nextTick
将回调延迟到下次DOM更新循环之后执行。在修改数据之后立即使用它,然后等待DOM更新。 如果上述方法获取到的元素是下面的Vue组件形式,而不是Dom节点,导致设置CSS失败,如何解决?
1
VueComponent {_uid: 20, _isVue: true, $options: {…}, _renderProxy: Proxy, _self: VueComponent, …}
页面滚动到顶部
1
2
3
4
5
6
7// 1. 瞬间滚动
document.documentElement.scrollTop = 0
// 2. 顺滑滚动
window.scrollTo({
top: 0,
behavior: 'smooth'
})-
1
2var h = document.documentElement.clientHeight || document.body.clientHeight
console.log(h) -
<div :style="'width:'+ (100 - num * 3.3) +'%;'"></div>
<div :style="'width:'+ height +'px;'"></div>
CSS动态炫彩背景颜色
1
2
3
4
5
6
7
8
9
10
11
12
13
14#footer {
background: linear-gradient(-45deg, #ee7752, #ce3e75, #23a6d5, #23d5ab);
background-size: 400% 400%;
/* -webkit-animation: Gradient 10s ease infinite; */
-moz-animation: Gradient 10s ease infinite;
/* animation: Gradient 10s ease infinite; */
-o-user-select: none;
-ms-user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
border-top-left-radius: 10px;
border-top-right-radius: 10px;
}消除Excel部分单元格复制粘贴后出现莫名其妙的双引号和Tab等空格字符
- 其实那叫做非打印字符,使用CLEAN函数即可
报错
1
2
3
4
5
6
7
8
9
10
1110272@DESKTOP-N3PNS7C MINGW64 /e/BarryFlynn/hexoBlog (hexo)
$ git push
ssh: connect to host github.com port 22: Connection refused
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
10272@DESKTOP-N3PNS7C MINGW64 /e/BarryFlynn/hexoBlog (hexo)
$ ssh git@github.com
ssh: connect to host github.com port 22: Connection refusedJAVA微信开发-如何保存包含特殊字符的微信昵称-51CTO博客
-
1
2
3
4
5
6var r=confirm('你确定吗?')
if (r==true) {
document.write('You pressed OK!')
} else {
document.write('You pressed Cancel!')
} CSS文字渐变色
1
2
3
4
5
6#title1 {
font-size: 99px;
background: linear-gradient(45deg,rgba(26,26,192,.8) 0,rgba(34,34,187,.7) 33%,#fa709a 66%,#fee140 100%);
-webkit-background-clip: text;
color: transparent;
}一套顺眼的暗黑模式配色
1
2
3
4
5
6
7
8#131a26 背景黑
#212937 卡片黑
#ffffff 文字白
#68d672 点缀绿
#df484a 点缀红
#ec902f 点缀橙
#687790 图标灰
#7d8188 文字灰全站变灰代码(适合哀悼日等场景,看得时间长了眼疼)
1
2
3
4
5
6
7
8
9
10
11<style type="text/css">
html {
filter: grayscale(100%);
-webkit-filter: grayscale(100%);
-moz-filter: grayscale(100%);
-ms-filter: grayscale(100%);
-o-filter: grayscale(100%);
filter: url("data:image/svg+xml;utf8,#grayscale");
filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(1);
}
</style>压缩版
1
2
3<style type="text/css">
html { filter: grayscale(100%); -webkit-filter: grayscale(100%); -moz-filter: grayscale(100%); -ms-filter: grayscale(100%); -o-filter: grayscale(100%); filter: url("data:image/svg+xml;utf8,#grayscale"); filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(1);}
</style>CSS抖动动画
1
2
3
4.doudong{
-webkit-animation: horizontal 2s ease infinite;
animation: horizontal 2s ease infinite;
}刀剑神域风格的登录动画:https://akilar.top/posts/1b4fa1dd/
星际穿越CSS动画:https://codepen.io/noahblon/pen/DpNRyR
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<div class="scene">
<div class="wrap">
<div class="wall wall-right"></div>
<div class="wall wall-left"></div>
<div class="wall wall-top"></div>
<div class="wall wall-bottom"></div>
<div class="wall wall-back"></div>
</div>
<div class="wrap">
<div class="wall wall-right"></div>
<div class="wall wall-left"></div>
<div class="wall wall-top"></div>
<div class="wall wall-bottom"></div>
<div class="wall wall-back"></div>
</div>
</div>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127.wall{
background: url(https://s3-us-west-2.amazonaws.com/s.cdpn.io/18515/PIA09959-1280x800_copy.jpg);
background-size: cover;
}
html, body{
height: 100%;
width: 100%;
overflow: hidden;
}
body{
background: #000;
text-align: center;
}
body:before{
content: '';
display: inline-block;
height: 100%;
vertical-align: middle;
}
.scene{
display: inline-block;
vertical-align: middle;
perspective: 5px;
perspective-origin: 50% 50%;
position: relative;
}
.wrap{
position: absolute;
width: 1000px;
height: 1000px;
left: -500px;
top: -500px;
transform-style: preserve-3d;
animation: move 12s infinite linear;
animation-fill-mode: forwards;
}
.wrap:nth-child(2){
animation: move 12s infinite linear;
animation-delay: 6s;
}
.wall {
width: 100%;
height: 100%;
position: absolute;
opacity: 0;
animation: fade 12s infinite linear;
animation-delay: 0;
}
.wrap:nth-child(2) .wall {
animation-delay: 6s;
}
.wall-right {
transform: rotateY(90deg) translateZ(500px);
}
.wall-left {
transform: rotateY(-90deg) translateZ(500px);
}
.wall-top {
transform: rotateX(90deg) translateZ(500px);
}
.wall-bottom {
transform: rotateX(-90deg) translateZ(500px);
}
.wall-back {
transform: rotateX(180deg) translateZ(500px);
}
@keyframes move {
0%{
transform: translateZ(-500px) rotate(0deg);
}
100%{
transform: translateZ(500px) rotate(0deg);
}
}
@keyframes fade {
0%{
opacity: 0;
}
25% {
opacity: 1;
}
75% {
opacity: 1;
}
100%{
opacity: 0;
}
}
/*
.scene {
animation: 🤫 300s infinite linear;
}
@keyframes 🤫 {
0%{
filter: hue-rotate(0)
}
50% {
filter: hue-rotate(180deg) saturation(5);
transform: scaleX(4000);
perspective: 50px;
}
100%{
filter: hue-rotate(360deg);
}
}
*/神奇宝贝球CSS动画:https://codepen.io/internette/pen/LZBxQw
1
2
3
4
5
6
7
8
9
10
11<div id="header">
<h3>Pokéball Loader</h3>
<p>in pure CSS</p>
</div>
<div id="loading">
<div class="pokeball" id="normal"></div>
<div class="pokeball" id="great"></div>
<div class="pokeball" id="ultra"></div>
<div class="pokeball" id="master"></div>
<div class="pokeball" id="safari"></div>
</div>CSS/SCSS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212@import 'https://fonts.googleapis.com/css?family=Reem+Kufi';
$red: #e20f07;
$blu: #278de1;
$ylw: #ffff00;
$ppl: #481a66;
$pnk: #eb23aa;
$brw: #9a4a01;
$mos: #606700;
$grn: #5fa300;
$blk: #000;
$wht: #FFF;
$gry: #a5a5a5;
@keyframes rotateBall {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
@-webkit-keyframes rotateBall {
0% {
transform: rotate(0deg);
}
50% {
transform: rotate(50deg);
}
0% {
transform: rotate(360deg);
}
}
html, body {
margin: 0;
height: 100%;
width: 100%;
}
body {
background: mix(lighten($blu, 23%), lighten($ylw, 30%), 30%);
color: $mos;
}
#header {
font-family: 'Reem Kufi', sans-serif;
position: absolute;
top: 2em;
text-align: center;
width: 100%;
* {
margin: 0;
}
}
#loading {
height: 48px;
width: 264px;
position: absolute;
top: 50%;
left: 50%;
transform: translateX(-50%) translateY(-50%);
}
.pokeball {
width: 4px;
height: 4px;
transform-origin: 24px 24px;
animation: rotateBall 1.5s infinite forwards;
&#normal {
box-shadow:
//Row: 1
16px 0 0 $blk, 20px 0 0 $blk, 24px 0 0 $blk, 28px 0 0 $blk,
//Row: 2
8px 4px 0 $blk, 12px 4px 0 $blk, 16px 4px 0 $red, 20px 4px 0 $red, 24px 4px 0 $red, 28px 4px 0 $red, 32px 4px 0 $blk, 36px 4px 0 $blk,
//Row: 3
4px 8px 0 $blk, 8px 8px 0 $red, 12px 8px 0 $red, 16px 8px 0 $wht, 20px 8px 0 $red, 24px 8px 0 $red, 28px 8px 0 $red, 32px 8px 0 $red, 36px 8px 0 $red, 40px 8px 0 $blk,
//Row: 4
4px 12px 0 $blk, 8px 12px 0 $red, 12px 12px 0 $wht, 16px 12px 0 $wht, 20px 12px 0 $wht, 24px 12px 0 $red, 28px 12px 0 $red, 32px 12px 0 $red, 36px 12px 0 $red, 40px 12px 0 $blk,
//Row: 5
0px 16px 0 $blk, 4px 16px 0 $red, 8px 16px 0 $red, 12px 16px 0 $red, 16px 16px 0 $wht, 20px 16px 0 $red, 24px 16px 0 $red, 28px 16px 0 $red, 32px 16px 0 $red, 36px 16px 0 $red, 40px 16px 0 $red, 44px 16px 0 $blk,
//Row: 6
0px 20px 0 $blk, 4px 20px 0 $red, 8px 20px 0 $red, 12px 20px 0 $red, 16px 20px 0 $red, 20px 20px 0 $blk, 24px 20px 0 $blk, 28px 20px 0 $red, 32px 20px 0 $red, 36px 20px 0 $red, 40px 20px 0 $red, 44px 20px 0 $blk,
//Row: 7
0px 24px 0 $blk, 4px 24px 0 $blk, 8px 24px 0 $red, 12px 24px 0 $red, 16px 24px 0 $blk, 20px 24px 0 $wht, 24px 24px 0 $gry, 28px 24px 0 $blk, 32px 24px 0 $red, 36px 24px 0 $red, 40px 24px 0 $blk, 44px 24px 0 $blk,
//Row: 8
0px 28px 0 $blk, 4px 28px 0 $wht, 8px 28px 0 $blk, 12px 28px 0 $blk, 16px 28px 0 $blk, 20px 28px 0 $gry, 24px 28px 0 $gry, 28px 28px 0 $blk, 32px 28px 0 $blk, 36px 28px 0 $blk, 40px 28px 0 $gry, 44px 28px 0 $blk,
//Row: 9
4px 32px 0 $blk, 8px 32px 0 $wht, 12px 32px 0 $wht, 16px 32px 0 $wht, 20px 32px 0 $blk, 24px 32px 0 $blk, 28px 32px 0 $gry, 32px 32px 0 $gry, 36px 32px 0 $gry, 40px 32px 0 $blk,
//Row: 10
4px 36px 0 $blk, 8px 36px 0 $gry, 12px 36px 0 $wht, 16px 36px 0 $wht, 20px 36px 0 $wht, 24px 36px 0 $gry, 28px 36px 0 $gry, 32px 36px 0 $gry, 36px 36px 0 $gry, 40px 36px 0 $blk,
//Row: 11
8px 40px 0 $blk, 12px 40px 0 $blk, 16px 40px 0 $gry, 20px 40px 0 $gry, 24px 40px 0 $gry, 28px 40px 0 $gry, 32px 40px 0 $blk, 36px 40px 0 $blk,
//Row: 12
16px 44px 0 $blk, 20px 44px 0 $blk, 24px 44px 0 $blk, 28px 44px 0 $blk
;
}
&#great {
animation-delay: 0.25s;
margin: -4px 0 0 54px;
box-shadow:
//Row: 1
16px 0 0 $blk, 20px 0 0 $blk, 24px 0 0 $blk, 28px 0 0 $blk,
//Row: 2
8px 4px 0 $blk, 12px 4px 0 $blk, 16px 4px 0 $blu, 20px 4px 0 $blu, 24px 4px 0 $blu, 28px 4px 0 $blu, 32px 4px 0 $blk, 36px 4px 0 $blk,
//Row: 3
4px 8px 0 $blk, 8px 8px 0 $red, 12px 8px 0 $red, 16px 8px 0 $blu, 20px 8px 0 $blu, 24px 8px 0 $blu, 28px 8px 0 $blu, 32px 8px 0 $red, 36px 8px 0 $red, 40px 8px 0 $blk,
//Row: 4
4px 12px 0 $blk, 8px 12px 0 $red, 12px 12px 0 $red, 16px 12px 0 $red, 20px 12px 0 $blu, 24px 12px 0 $blu, 28px 12px 0 $red, 32px 12px 0 $red, 36px 12px 0 $red, 40px 12px 0 $blk,
//Row: 5
0px 16px 0 $blk, 4px 16px 0 $blu, 8px 16px 0 $blu, 12px 16px 0 $red, 16px 16px 0 $red, 20px 16px 0 $blu, 24px 16px 0 $blu, 28px 16px 0 $red, 32px 16px 0 $red, 36px 16px 0 $blu, 40px 16px 0 $blu, 44px 16px 0 $blk,
//Row: 6
0px 20px 0 $blk, 4px 20px 0 $blu, 8px 20px 0 $blu, 12px 20px 0 $blu, 16px 20px 0 $blu, 20px 20px 0 $blk, 24px 20px 0 $blk, 28px 20px 0 $blu, 32px 20px 0 $blu, 36px 20px 0 $blu, 40px 20px 0 $blu, 44px 20px 0 $blk,
//Row: 7
0px 24px 0 $blk, 4px 24px 0 $blk, 8px 24px 0 $blu, 12px 24px 0 $blu, 16px 24px 0 $blk, 20px 24px 0 $wht, 24px 24px 0 $gry, 28px 24px 0 $blk, 32px 24px 0 $blu, 36px 24px 0 $blu, 40px 24px 0 $blk, 44px 24px 0 $blk,
//Row: 8
0px 28px 0 $blk, 4px 28px 0 $wht, 8px 28px 0 $blk, 12px 28px 0 $blk, 16px 28px 0 $blk, 20px 28px 0 $gry, 24px 28px 0 $gry, 28px 28px 0 $blk, 32px 28px 0 $blk, 36px 28px 0 $blk, 40px 28px 0 $gry, 44px 28px 0 $blk,
//Row: 9
4px 32px 0 $blk, 8px 32px 0 $wht, 12px 32px 0 $wht, 16px 32px 0 $wht, 20px 32px 0 $blk, 24px 32px 0 $blk, 28px 32px 0 $gry, 32px 32px 0 $gry, 36px 32px 0 $gry, 40px 32px 0 $blk,
//Row: 10
4px 36px 0 $blk, 8px 36px 0 $gry, 12px 36px 0 $wht, 16px 36px 0 $wht, 20px 36px 0 $wht, 24px 36px 0 $gry, 28px 36px 0 $gry, 32px 36px 0 $gry, 36px 36px 0 $gry, 40px 36px 0 $blk,
//Row: 11
8px 40px 0 $blk, 12px 40px 0 $blk, 16px 40px 0 $gry, 20px 40px 0 $gry, 24px 40px 0 $gry, 28px 40px 0 $gry, 32px 40px 0 $blk, 36px 40px 0 $blk,
//Row: 12
16px 44px 0 $blk, 20px 44px 0 $blk, 24px 44px 0 $blk, 28px 44px 0 $blk
;
}
&#ultra {
animation-delay: 0.5s;
margin: -4px 0 0 108px;
box-shadow:
//Row: 1
16px 0 0 $blk, 20px 0 0 $blk, 24px 0 0 $blk, 28px 0 0 $blk,
//Row: 2
8px 4px 0 $blk, 12px 4px 0 $blk, 16px 4px 0 $ylw, 20px 4px 0 $ylw, 24px 4px 0 $ylw, 28px 4px 0 $ylw, 32px 4px 0 $blk, 36px 4px 0 $blk,
//Row: 3
4px 8px 0 $blk, 8px 8px 0 $ylw, 12px 8px 0 $ylw, 16px 8px 0 $ylw, 20px 8px 0 $ylw, 24px 8px 0 $ylw, 28px 8px 0 $ylw, 32px 8px 0 $ylw, 36px 8px 0 $ylw, 40px 8px 0 $blk,
//Row: 4
4px 12px 0 $blk, 8px 12px 0 $ylw, 12px 12px 0 $ylw, 16px 12px 0 $blk, 20px 12px 0 $blk, 24px 12px 0 $blk, 28px 12px 0 $blk, 32px 12px 0 $ylw, 36px 12px 0 $ylw, 40px 12px 0 $blk,
//Row: 5
0px 16px 0 $blk, 4px 16px 0 $blk, 8px 16px 0 $ylw, 12px 16px 0 $ylw, 16px 16px 0 $blk, 20px 16px 0 $blk, 24px 16px 0 $blk, 28px 16px 0 $blk, 32px 16px 0 $ylw, 36px 16px 0 $ylw, 40px 16px 0 $blk, 44px 16px 0 $blk,
//Row: 6
0px 20px 0 $blk, 4px 20px 0 $blk, 8px 20px 0 $blk, 12px 20px 0 $blk, 16px 20px 0 $blk, 20px 20px 0 $blk, 24px 20px 0 $blk, 28px 20px 0 $blk, 32px 20px 0 $blk, 36px 20px 0 $blk, 40px 20px 0 $blk, 44px 20px 0 $blk,
//Row: 7
0px 24px 0 $blk, 4px 24px 0 $blk, 8px 24px 0 $blk, 12px 24px 0 $blk, 16px 24px 0 $blk, 20px 24px 0 $wht, 24px 24px 0 $gry, 28px 24px 0 $blk, 32px 24px 0 $blk, 36px 24px 0 $blk, 40px 24px 0 $blk, 44px 24px 0 $blk,
//Row: 8
0px 28px 0 $blk, 4px 28px 0 $wht, 8px 28px 0 $blk, 12px 28px 0 $blk, 16px 28px 0 $blk, 20px 28px 0 $gry, 24px 28px 0 $gry, 28px 28px 0 $blk, 32px 28px 0 $blk, 36px 28px 0 $blk, 40px 28px 0 $gry, 44px 28px 0 $blk,
//Row: 9
4px 32px 0 $blk, 8px 32px 0 $wht, 12px 32px 0 $wht, 16px 32px 0 $wht, 20px 32px 0 $blk, 24px 32px 0 $blk, 28px 32px 0 $gry, 32px 32px 0 $gry, 36px 32px 0 $gry, 40px 32px 0 $blk,
//Row: 10
4px 36px 0 $blk, 8px 36px 0 $gry, 12px 36px 0 $wht, 16px 36px 0 $wht, 20px 36px 0 $wht, 24px 36px 0 $gry, 28px 36px 0 $gry, 32px 36px 0 $gry, 36px 36px 0 $gry, 40px 36px 0 $blk,
//Row: 11
8px 40px 0 $blk, 12px 40px 0 $blk, 16px 40px 0 $gry, 20px 40px 0 $gry, 24px 40px 0 $gry, 28px 40px 0 $gry, 32px 40px 0 $blk, 36px 40px 0 $blk,
//Row: 12
16px 44px 0 $blk, 20px 44px 0 $blk, 24px 44px 0 $blk, 28px 44px 0 $blk
;
}
&#master {
animation-delay: 0.75s;
margin: -4px 0 0 162px;
box-shadow:
//Row: 1
16px 0 0 $blk, 20px 0 0 $blk, 24px 0 0 $blk, 28px 0 0 $blk,
//Row: 2
8px 4px 0 $blk, 12px 4px 0 $blk, 16px 4px 0 $ppl, 20px 4px 0 $ppl, 24px 4px 0 $ppl, 28px 4px 0 $ppl, 32px 4px 0 $blk, 36px 4px 0 $blk,
//Row: 3
4px 8px 0 $blk, 8px 8px 0 $pnk, 12px 8px 0 $pnk, 16px 8px 0 $ppl, 20px 8px 0 $ppl, 24px 8px 0 $ppl, 28px 8px 0 $ppl, 32px 8px 0 $pnk, 36px 8px 0 $pnk, 40px 8px 0 $blk,
//Row: 4
4px 12px 0 $blk, 8px 12px 0 $pnk, 12px 12px 0 $wht, 16px 12px 0 $wht, 20px 12px 0 $ppl, 24px 12px 0 $ppl, 28px 12px 0 $wht, 32px 12px 0 $wht, 36px 12px 0 $pnk, 40px 12px 0 $blk,
//Row: 5
0px 16px 0 $blk, 4px 16px 0 $ppl, 8px 16px 0 $ppl, 12px 16px 0 $wht, 16px 16px 0 $ppl, 20px 16px 0 $wht, 24px 16px 0 $wht, 28px 16px 0 $ppl, 32px 16px 0 $wht, 36px 16px 0 $ppl, 40px 16px 0 $ppl, 44px 16px 0 $blk,
//Row: 6
0px 20px 0 $blk, 4px 20px 0 $ppl, 8px 20px 0 $ppl, 12px 20px 0 $ppl, 16px 20px 0 $ppl, 20px 20px 0 $blk, 24px 20px 0 $blk, 28px 20px 0 $ppl, 32px 20px 0 $ppl, 36px 20px 0 $ppl, 40px 20px 0 $ppl, 44px 20px 0 $blk,
//Row: 7
0px 24px 0 $blk, 4px 24px 0 $blk, 8px 24px 0 $ppl, 12px 24px 0 $ppl, 16px 24px 0 $blk, 20px 24px 0 $wht, 24px 24px 0 $gry, 28px 24px 0 $blk, 32px 24px 0 $ppl, 36px 24px 0 $ppl, 40px 24px 0 $blk, 44px 24px 0 $blk,
//Row: 8
0px 28px 0 $blk, 4px 28px 0 $wht, 8px 28px 0 $blk, 12px 28px 0 $blk, 16px 28px 0 $blk, 20px 28px 0 $gry, 24px 28px 0 $gry, 28px 28px 0 $blk, 32px 28px 0 $blk, 36px 28px 0 $blk, 40px 28px 0 $gry, 44px 28px 0 $blk,
//Row: 9
4px 32px 0 $blk, 8px 32px 0 $wht, 12px 32px 0 $wht, 16px 32px 0 $wht, 20px 32px 0 $blk, 24px 32px 0 $blk, 28px 32px 0 $gry, 32px 32px 0 $gry, 36px 32px 0 $gry, 40px 32px 0 $blk,
//Row: 10
4px 36px 0 $blk, 8px 36px 0 $gry, 12px 36px 0 $wht, 16px 36px 0 $wht, 20px 36px 0 $wht, 24px 36px 0 $gry, 28px 36px 0 $gry, 32px 36px 0 $gry, 36px 36px 0 $gry, 40px 36px 0 $blk,
//Row: 11
8px 40px 0 $blk, 12px 40px 0 $blk, 16px 40px 0 $gry, 20px 40px 0 $gry, 24px 40px 0 $gry, 28px 40px 0 $gry, 32px 40px 0 $blk, 36px 40px 0 $blk,
//Row: 12
16px 44px 0 $blk, 20px 44px 0 $blk, 24px 44px 0 $blk, 28px 44px 0 $blk
;
}
&#safari {
animation-delay: 1s;
margin: -4px 0 0 216px;
box-shadow:
//Row: 1
16px 0 0 $blk, 20px 0 0 $blk, 24px 0 0 $blk, 28px 0 0 $blk,
//Row: 2
8px 4px 0 $blk, 12px 4px 0 $blk, 16px 4px 0 $brw, 20px 4px 0 $brw, 24px 4px 0 $mos, 28px 4px 0 $grn, 32px 4px 0 $blk, 36px 4px 0 $blk,
//Row: 3
4px 8px 0 $blk, 8px 8px 0 $mos, 12px 8px 0 $mos, 16px 8px 0 $mos, 20px 8px 0 $brw, 24px 8px 0 $brw, 28px 8px 0 $grn, 32px 8px 0 $mos, 36px 8px 0 $brw, 40px 8px 0 $blk,
//Row: 4
4px 12px 0 $blk, 8px 12px 0 $brw, 12px 12px 0 $brw, 16px 12px 0 $brw, 20px 12px 0 $brw, 24px 12px 0 $brw, 28px 12px 0 $grn, 32px 12px 0 $mos, 36px 12px 0 $mos, 40px 12px 0 $blk,
//Row: 5
0px 16px 0 $blk, 4px 16px 0 $grn, 8px 16px 0 $mos, 12px 16px 0 $grn, 16px 16px 0 $grn, 20px 16px 0 $mos, 24px 16px 0 $mos, 28px 16px 0 $mos, 32px 16px 0 $grn, 36px 16px 0 $brw, 40px 16px 0 $brw, 44px 16px 0 $blk,
//Row: 6
0px 20px 0 $blk, 4px 20px 0 $grn, 8px 20px 0 $mos, 12px 20px 0 $grn, 16px 20px 0 $mos, 20px 20px 0 $blk, 24px 20px 0 $blk, 28px 20px 0 $mos, 32px 20px 0 $mos, 36px 20px 0 $grn, 40px 20px 0 $grn, 44px 20px 0 $blk,
//Row: 7
0px 24px 0 $blk, 4px 24px 0 $blk, 8px 24px 0 $mos, 12px 24px 0 $mos, 16px 24px 0 $blk, 20px 24px 0 $wht, 24px 24px 0 $gry, 28px 24px 0 $blk, 32px 24px 0 $brw, 36px 24px 0 $brw, 40px 24px 0 $blk, 44px 24px 0 $blk,
//Row: 8
0px 28px 0 $blk, 4px 28px 0 $wht, 8px 28px 0 $blk, 12px 28px 0 $blk, 16px 28px 0 $blk, 20px 28px 0 $gry, 24px 28px 0 $gry, 28px 28px 0 $blk, 32px 28px 0 $blk, 36px 28px 0 $blk, 40px 28px 0 $gry, 44px 28px 0 $blk,
//Row: 9
4px 32px 0 $blk, 8px 32px 0 $wht, 12px 32px 0 $wht, 16px 32px 0 $wht, 20px 32px 0 $blk, 24px 32px 0 $blk, 28px 32px 0 $gry, 32px 32px 0 $gry, 36px 32px 0 $gry, 40px 32px 0 $blk,
//Row: 10
4px 36px 0 $blk, 8px 36px 0 $gry, 12px 36px 0 $wht, 16px 36px 0 $wht, 20px 36px 0 $wht, 24px 36px 0 $gry, 28px 36px 0 $gry, 32px 36px 0 $gry, 36px 36px 0 $gry, 40px 36px 0 $blk,
//Row: 11
8px 40px 0 $blk, 12px 40px 0 $blk, 16px 40px 0 $gry, 20px 40px 0 $gry, 24px 40px 0 $gry, 28px 40px 0 $gry, 32px 40px 0 $blk, 36px 40px 0 $blk,
//Row: 12
16px 44px 0 $blk, 20px 44px 0 $blk, 24px 44px 0 $blk, 28px 44px 0 $blk
;
}
}彩绘心型CSS动画:https://codepen.io/yuanchuan/pen/wZJqNK
此项目用到了doodle依赖,这个依赖js文件大概52KB左右,不算太大。可以接受。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50<style>
css-doodle {
--color: @p(#51eaea, #fffde1, #ff9d76, #FB3569);
--rule: (
:doodle {
@grid: 30x1 / 18vmin;
--deg: @p(-180deg, 180deg);
}
:container {
perspective: 30vmin;
}
:after, :before {
content: '';
background: var(--color);
@place-cell: @r(100%) @r(100%);
@size: @r(6px);
@shape: heart;
}
@place-cell: center;
@size: 100%;
box-shadow: @m2(0 0 50px var(--color));
background: @m100(
radial-gradient(var(--color) 50%, transparent 0)
@r(-20%, 120%) @r(-20%, 100%) / 1px 1px
no-repeat
);
will-change: transform, opacity;
animation: scale-up 12s linear infinite;
animation-delay: calc(-12s / @I * @i);
@keyframes scale-up {
0%, 95.01%, 100% {
transform: translateZ(0) rotate(0);
opacity: 0;
}
10% {
opacity: 1;
}
95% {
transform:
translateZ(35vmin) rotateZ(@var(--deg));
}
}
)
}
</style>
<css-doodle use="var(--rule)"></css-doodle>1
2
3
4
5
6
7
8
9
10
11
12html, body {
width: 100%;
height: 100%;
margin: 0;
background: #270F34;
overflow: hidden;
display: flex;
align-items: center;
justify-content: center;
contain: content;
overflow: clip;
}自定义网页滚动条颜色样式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20/* 滚动条 */
::-webkit-scrollbar {
width: 10px;
height: 8px;
background-color: #f5f5f5;
}
::-webkit-scrollbar-thumb {
background-color: #2ab1ff;
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, .4) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .4) 50%, rgba(255, 255, 255, .4) 75%, transparent 75%, transparent);
border-radius: 3em;
}
::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 6px rgb(0 0 0 / 30%);
box-shadow: inset 0 0 6px rgb(0 0 0 / 30%);
background-color: #f5f5f5;
border-radius: 5px;
}
::-webkit-scrollbar-track {
background-color: transparent;
}jQuery AJAX 方法:https://www.runoob.com/jquery/jquery-ref-ajax.html
AJAX请求常用的几种写法:https://blog.csdn.net/weixin_45083154/article/details/106766057
css 几个重要的格式样式
1
2
3
4
5
6
7
8
9
10
11
12/* css保留空格和换行符 */
white-space: pre-wrap;
/* css保留换行符 */
white-space: pre-line;
word-wrap:break-word
解释:使用break-word时,是将强制换行。
/************************/
normal 只在允许的断字点换行(浏览器保持默认处理)。
break-word 在长单词或 URL 地址内部进行换行。
/************************/
兼容各版本IE浏览器,兼容谷歌浏览器。前段反调试 禁止调试代码
有的网站是:1
2
3
4(function anonymous(
) {
debugger
})一行代码搞定:
1
setInterval(function () { debugger }, 100);
下面没有用:
1
2
3
4
5
6setTimeout(function () {
const element = document.getElementsByTagName( 'html' )
element[0].remove();
alert('你触发了自毁装置!')
//window.location.href = 'https://meta-code.top'
debugger }, 100);-
- LeetCode 题解:20. 有效的括号,while 循环 replace,JavaScript,详细注释
进行 while 循环,每循环一次替换一对括号。
如果发现替换之后,替换前后的字符串相等,表示有无效括号。
如果替换到字符串为空,表示所有括号都有效。
- LeetCode 题解:20. 有效的括号,while 循环 replace,JavaScript,详细注释
html两页面通过超链接地址传递参数
页面1,发送参数并跳转1
2
3
4
5
6function pass_score(){
var score_num = score.value; //使用id来获取input输入框的值
var nexturl = "2.html" + "?" + "id=" + score_num;
console.log(nexturl)
window.location.href = nexturl;
}页面2,接收参数
1
2
3
4
5
6
7
8
9
10var url = document.location.toString();
console.log(url)
if(url.indexOf("?") != -1){
// 获得了超连接成绩参数
str = url.split("?id=")[1];
console.log(str)
}else{
// 超链接没有成绩参数
window.location.href = "1.html";
}-
1
2
3
4转为url格式 转为汉字
escape(key) unescape(key)
encodeURI(key) decodeURI(key)
encodeURIComponent(key) decodeURIComponent(key) jquery修改style属性:
$('.fill').attr({"style":"display:block;"});
jquery中可利用
attr()
方法来修改style属性,该方法设置被选元素的属性值
语法$(selector).attr("style","行内样式代码")
或$(selector).attr({"style":"样式代码"})
把某个字段的值全部改为某个固定值
UPDATE 表名 SET 字段名='固定值'
如何使用history返回上一个页面时强制刷新页面
1
2
3
4
5
6
7//e.persisted判断是否后退进入,从缓存冲获取时为true否则为false
window.addEventListener('pageshow', (e) => {
if (e.persisted || (window.performance &&
window.performance.navigation.type == 2)) {
location.reload()
}
}, false)-
请查看thinkphp的官方文档第8章模板引擎第9节Volist标签,其中提到volist的属性中有一个key属性,原文:key(可选):循环的key变量,默认值为i这个就是你的自增序号,而且默认变量就是$i,也就是说在你的volist标签之内,可以直接使用
{$i}
渲染到前端页面 -
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24<h3 class="textCetent">报名表单</h3>
<table class="qgg-table">
<thead>
<tr>
<th width="33%">姓名</th>
<th width="25%">电话</th>
<th width="25%">时间</th>
</tr>
</thead>
<tbody>
<tr>
<td>测试</td><td>13888888888</td><td>2020-05-16 13:04</td>
</tr>
<tr>
<td>测试</td><td>13877777777</td><td>2020-05-16 13:03</td>
</tr>
<tr>
<td>测试</td><td>13866666666</td><td>2020-05-16 13:02</td>
</tr>
<tr>
<td>测试</td><td>13855555555</td><td>2020-05-16 13:01</td>
</tr>
</tbody>
</table>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33/** Table 表格样式 **/
.qgg-table{
border-collapse: collapse;
width:100%;
border:1px solid #c6c6c6 ;
margin-bottom:20px;
}
.qgg-table th{
border-collapse: collapse;
border-right:1px solid #c6c6c6 ;
border-bottom:1px solid #c6c6c6 ;
background-color:#ddeeff ;
padding:5px 9px;
font-size:14px;
font-weight:normal;
text-align:center;
}
.qgg-table td{
border-collapse: collapse;
border-right:1px solid #c6c6c6 ;
border-bottom:1px solid #c6c6c6 ;
padding:5px 9px;
font-size:12px;
font-weight:normal;
text-align:center;
word-break: break-all;
}
.qgg-table tr:nth-child(odd){
background-color:#fff ;
}
.qgg-table tr:nth-child(even){
background-color: #f8f8f8 ;
} -
- 分享8个非常实用的Vue自定义指令
- 最终实现代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16<div id="BF_WaterMark" style="width:100%;height:100%;position:absolute;top:0;left:0;z-index:999;pointer-events:none;"></div>
<script>
var can = document.createElement('canvas');
var BF_WaterMark = document.getElementById("BF_WaterMark");
BF_WaterMark.appendChild(can);
can.width=200;
can.height=150;
can.style.display='none';
var cans = can.getContext('2d');
cans.translate(-40, 0); //移动坐标原点
cans.rotate(-20*Math.PI/180);
cans.font = "16px Microsoft JhengHei";
cans.fillStyle = "rgba(167, 167, 167, 0.5)";
cans.fillText("百里飞洋",can.width/3,can.height/2);
BF_WaterMark.style.backgroundImage="url("+can.toDataURL("image/png")+")";
</script>position:absolute;
:水印随页面滚动position:fixed;
:水印固定不滚动
-
- parentNode 属性可返回某节点的父节点,如果指定的节点没有父节点则返回 null 。