我想为我的网站做一个特定的背景,包括9列,其中有一个动画,改变他们的背景颜色,并暂停悬停为动画。
是否有可能保持悬停效果发生时,我将悬停在背景中的一个?
另外,css3动画很难显示给客户端吗?如果我想拥有比这个背景更多的东西,比如在svg上运行一些动画,我应该已经开始“保存”内存了吗?
谢谢你的帮助
参见这里的示例jsfiddle:https://jsfiddle.net/gxzhry0x/
html --
<div class="pillars-container">
<div class="pillar" id="pillar1"></div>
...
<div class="pillar" id="pillar9"></div>
</div>
css --
.pillars-container {
position:fixed;
top:0;
left:0;
z-index:-9000;
}
.pillars-container * {
display:inline-block;
}
.pillar {
opacity:0.8;
margin:0 -4px -2px 0;
padding:0;
width:11vw;
height:100vh;
animation-name: pillars;
animation-duration: 170s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
.pillar:hover {
opacity:0.7;
animation-play-state: paused;
}
.pillar#pillar9{
width:12vw;
}
@keyframes pillars {
0% {background-color:#8F70FF;}
2.5% {background-color:#63C7E8;}
... etc }发布于 2017-03-15 18:57:58
您要寻找的是属性pointer-events: none,它允许所有鼠标事件通过一个元素。
然而,pointer-events: none的问题是,您希望事件“通过”发生的元素需要一个绝对位置。虽然这是一个很好的解决方案,但看看这是否能为您提供一个解决方案:
body {
}
h1 {
background-color:#FFFFFF;
position: absolute;
pointer-events: none;
width: 90%;
}
.pillars-container {
position:fixed;
top:0;
left:0;
z-index: 0;
}
.pillars-container * {
display:inline-block;
}
.pillar {
opacity:0.8;
margin:0 -4px -2px 0;
padding:0;
width:11vw;
height:100vh;
animation-name: pillars;
animation-duration: 170s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
.pillar:hover {
opacity:0.7;
animation-play-state: paused;
}
.pillar#pillar9{
width:12vw;
}
@keyframes pillars {
0% {background-color:#8F70FF;}
2.5% {background-color:#63C7E8;}
5% {background-color:#78FF96;}
7.5% {background-color:#E8E759;}
10% {background-color:#FFC360;}
12.5% {background-color:#E8C26A;}
15% {background-color:#E3FF8A;}
17.5% {background-color:#74E8A5;}
20% {background-color:#75C2FF;}
22.5% {background-color:#53E85B;}
25% {background-color:#E8A149;}
27.5% {background-color:#FFF567;}
30% {background-color:#E8BD42;}
32.5% {background-color:#C0FF5F;}
35% {background-color:#4CE8A3;}
37.5% {background-color:#4A9AFF;}
40% {background-color:#9875FF;}
42.5% {background-color:#74C9E8;}
45% {background-color:#8BFFA7;}
47.5% {background-color:#E6E86A;}
50% {background-color:#FFCB72;}
52.5% {background-color:#FFDE5B;}
55% {background-color:#91E855;}
57.5% {background-color:#74FFD7;}
60% {background-color:#5F87E8;}
62.5% {background-color:#CF5FFF;}
65% {background-color:#FF4DEA;}
67.5% {background-color:#584FE8;}
70% {background-color:#62F2FF;}
72.5% {background-color:#45E84C;}
75% {background-color:#FFF34A;}
77.5% {background-color:#6FFF49;}
80% {background-color:#44E8D3;}
82.5% {background-color:#6178FF;}
85% {background-color:#D24EE8;}
87.5% {background-color:#FF6A4C;}
90% {background-color:#FFAA35;}
92.5% {background-color:#E84139;}
95% {background-color:#B94BFF;}
97.5% {background-color:#3076E8;}
100% {background-color:#32FFB1;}
}
@-webkit-keyframes pillars {
0% {background-color:#8F70FF;}
2.5% {background-color:#63C7E8;}
5% {background-color:#78FF96;}
7.5% {background-color:#E8E759;}
10% {background-color:#FFC360;}
12.5% {background-color:#E8C26A;}
15% {background-color:#E3FF8A;}
17.5% {background-color:#74E8A5;}
20% {background-color:#75C2FF;}
22.5% {background-color:#53E85B;}
25% {background-color:#E8A149;}
27.5% {background-color:#FFF567;}
30% {background-color:#E8BD42;}
32.5% {background-color:#C0FF5F;}
35% {background-color:#4CE8A3;}
37.5% {background-color:#4A9AFF;}
40% {background-color:#9875FF;}
42.5% {background-color:#74C9E8;}
45% {background-color:#8BFFA7;}
47.5% {background-color:#E6E86A;}
50% {background-color:#FFCB72;}
52.5% {background-color:#FFDE5B;}
55% {background-color:#91E855;}
57.5% {background-color:#74FFD7;}
60% {background-color:#5F87E8;}
62.5% {background-color:#CF5FFF;}
65% {background-color:#FF4DEA;}
67.5% {background-color:#584FE8;}
70% {background-color:#62F2FF;}
72.5% {background-color:#45E84C;}
75% {background-color:#FFF34A;}
77.5% {background-color:#6FFF49;}
80% {background-color:#44E8D3;}
82.5% {background-color:#6178FF;}
85% {background-color:#D24EE8;}
87.5% {background-color:#FF6A4C;}
90% {background-color:#FFAA35;}
92.5% {background-color:#E84139;}
95% {background-color:#B94BFF;}
97.5% {background-color:#3076E8;}
100% {background-color:#32FFB1;}
}<body>
<div class="pillars-container">
<div class="pillar" id="pillar1"></div>
<div class="pillar" id="pillar2"></div>
<div class="pillar" id="pillar3"></div>
<div class="pillar" id="pillar4"></div>
<div class="pillar" id="pillar5"></div>
<div class="pillar" id="pillar6"></div>
<div class="pillar" id="pillar7"></div>
<div class="pillar" id="pillar8"></div>
<div class="pillar" id="pillar9"></div>
</div>
<div>
<h1 class="title" style="background-color: white;">hello ervyone</h1>
</div>
</body>
发布于 2017-03-15 18:58:32
是否有可能保持悬停效果发生时,我将悬停在背景中的一个?
是的,如果div位于柱子外面。
下面的片段:
h1 {
background-color: #FFFFFF;
}
.pillars-container {
position: fixed;
top: 0;
left: 0;
z-index: -9000;
}
.pillars-container * {
display: inline-block;
}
.pillar {
opacity: 0.8;
margin: 0 -4px -2px 0;
padding: 0;
width: 11vw;
height: 100vh;
animation-name: pillars;
animation-duration: 170s;
animation-timing-function: linear;
animation-iteration-count: infinite;
}
.pillar:hover {
opacity: 0.7;
animation-play-state: paused;
}
.above {
border: 1px solid gray;
background: white;
padding: 10px;
}
.above:hover {
background: lightgray;
}
.pillar#pillar9 {
width: 12vw;
}
@keyframes pillars {
0% {
background-color: #8F70FF;
}
2.5% {
background-color: #63C7E8;
}
5% {
background-color: #78FF96;
}
7.5% {
background-color: #E8E759;
}
10% {
background-color: #FFC360;
}
12.5% {
background-color: #E8C26A;
}
15% {
background-color: #E3FF8A;
}
17.5% {
background-color: #74E8A5;
}
20% {
background-color: #75C2FF;
}
22.5% {
background-color: #53E85B;
}
25% {
background-color: #E8A149;
}
27.5% {
background-color: #FFF567;
}
30% {
background-color: #E8BD42;
}
32.5% {
background-color: #C0FF5F;
}
35% {
background-color: #4CE8A3;
}
37.5% {
background-color: #4A9AFF;
}
40% {
background-color: #9875FF;
}
42.5% {
background-color: #74C9E8;
}
45% {
background-color: #8BFFA7;
}
47.5% {
background-color: #E6E86A;
}
50% {
background-color: #FFCB72;
}
52.5% {
background-color: #FFDE5B;
}
55% {
background-color: #91E855;
}
57.5% {
background-color: #74FFD7;
}
60% {
background-color: #5F87E8;
}
62.5% {
background-color: #CF5FFF;
}
65% {
background-color: #FF4DEA;
}
67.5% {
background-color: #584FE8;
}
70% {
background-color: #62F2FF;
}
72.5% {
background-color: #45E84C;
}
75% {
background-color: #FFF34A;
}
77.5% {
background-color: #6FFF49;
}
80% {
background-color: #44E8D3;
}
82.5% {
background-color: #6178FF;
}
85% {
background-color: #D24EE8;
}
87.5% {
background-color: #FF6A4C;
}
90% {
background-color: #FFAA35;
}
92.5% {
background-color: #E84139;
}
95% {
background-color: #B94BFF;
}
97.5% {
background-color: #3076E8;
}
100% {
background-color: #32FFB1;
}
}
@-webkit-keyframes pillars {
0% {
background-color: #8F70FF;
}
2.5% {
background-color: #63C7E8;
}
5% {
background-color: #78FF96;
}
7.5% {
background-color: #E8E759;
}
10% {
background-color: #FFC360;
}
12.5% {
background-color: #E8C26A;
}
15% {
background-color: #E3FF8A;
}
17.5% {
background-color: #74E8A5;
}
20% {
background-color: #75C2FF;
}
22.5% {
background-color: #53E85B;
}
25% {
background-color: #E8A149;
}
27.5% {
background-color: #FFF567;
}
30% {
background-color: #E8BD42;
}
32.5% {
background-color: #C0FF5F;
}
35% {
background-color: #4CE8A3;
}
37.5% {
background-color: #4A9AFF;
}
40% {
background-color: #9875FF;
}
42.5% {
background-color: #74C9E8;
}
45% {
background-color: #8BFFA7;
}
47.5% {
background-color: #E6E86A;
}
50% {
background-color: #FFCB72;
}
52.5% {
background-color: #FFDE5B;
}
55% {
background-color: #91E855;
}
57.5% {
background-color: #74FFD7;
}
60% {
background-color: #5F87E8;
}
62.5% {
background-color: #CF5FFF;
}
65% {
background-color: #FF4DEA;
}
67.5% {
background-color: #584FE8;
}
70% {
background-color: #62F2FF;
}
72.5% {
background-color: #45E84C;
}
75% {
background-color: #FFF34A;
}
77.5% {
background-color: #6FFF49;
}
80% {
background-color: #44E8D3;
}
82.5% {
background-color: #6178FF;
}
85% {
background-color: #D24EE8;
}
87.5% {
background-color: #FF6A4C;
}
90% {
background-color: #FFAA35;
}
92.5% {
background-color: #E84139;
}
95% {
background-color: #B94BFF;
}
97.5% {
background-color: #3076E8;
}
100% {
background-color: #32FFB1;
}
}<body>
<div class="pillars-container">
<div class="pillar" id="pillar1"></div>
<div class="pillar" id="pillar2"></div>
<div class="pillar" id="pillar3"></div>
<div class="pillar" id="pillar4"></div>
<div class="pillar" id="pillar5"></div>
<div class="pillar" id="pillar6"></div>
<div class="pillar" id="pillar7"></div>
<div class="pillar" id="pillar8"></div>
<div class="pillar" id="pillar9"></div>
</div>
<div>
<h1 class="title" style="background-color: white;">hello ervyone</h1>
</div>
<div class="above">div above</div>
</body>
另外,css3动画很难显示给客户端吗?如果我想拥有比这个背景更多的东西,比如在svg上运行一些动画,我应该已经开始“保存”内存了吗?
它确实取决于所需的动画和项目优先级,但是的,有些动画可能会成为内存和CPU的霸主,并且可能会因所使用的浏览器而滞后。理想情况下,您应该在尽可能多的浏览器中测试它们,以确保所有浏览器的性能。添加的效果越多,消耗的资源越多,受滞后影响的几率就越高。
您还可以稍微研究一下变换性质,尽管它仅限于诸如旋转、缩放、移动、倾斜、平移、透视等属性,但您可能感兴趣的是,您可以显著减少CPU的使用,因为在大多数情况下,可以利用GPU加速,从而减轻CPU的负担。
https://stackoverflow.com/questions/42817879
复制相似问题