dav*_*all 4 html css css-transitions
我正在尝试使用 CSS3 渐变并尝试在鼠标悬停时将其移入。正如您从这个jsFiddle中看到的,CSS 渐变出现在:hover; 然而,它似乎闪烁了几次。
仅供参考,到目前为止,这已经在 // 上进行了Chrome v30测试。Firefox v24Safari v5.1
单独来看,两者都被证明是有效的解决方案,但结合起来,我得到了闪烁的效果。
nav li {
width: 90px;
padding-right: 15px;
padding-left: 15px;
height: 30px;
border: 1px solid #000;
float: left;
list-style-type: none;
background-position: -200px -200px;
-webkit-transition: background 1s ease-out;
-moz-transition: background 1s ease-out;
-o-transition: background 1s ease-out;
transition: background 1s ease-out;
}
nav li:hover {
background-position: 200px 0;
background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ZmZmZmZiIgc3RvcC1vcGFjaXR5PSIwLjIiLz4KICAgIDxzdG9wIG9mZnNldD0iMTAwJSIgc3RvcC1jb2xvcj0iIzYwNjA2MCIgc3RvcC1vcGFjaXR5PSIwLjIiLz4KICA8L2xpbmVhckdyYWRpZW50PgogIDxyZWN0IHg9IjAiIHk9IjAiIHdpZHRoPSIxIiBoZWlnaHQ9IjEiIGZpbGw9InVybCgjZ3JhZC11Y2dnLWdlbmVyYXRlZCkiIC8+Cjwvc3ZnPg==);
background: -moz-linear-gradient(top, rgba(255,255,255,0.2) 0%, rgba(96,96,96,0.2) 100%);
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(255,255,255,0.2)), color-stop(100%,rgba(96,96,96,0.2)));
background: -webkit-linear-gradient(top, rgba(255,255,255,0.2) 0%,rgba(96,96,96,0.2) 100%);
background: -o-linear-gradient(top, rgba(255,255,255,0.2) 0%,rgba(96,96,96,0.2) 100%);
background: -ms-linear-gradient(top, rgba(255,255,255,0.2) 0%,rgba(96,96,96,0.2) 100%);
background: linear-gradient(to bottom, rgba(255,255,255,0.2) 0%,rgba(96,96,96,0.2) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#33ffffff', endColorstr='#33606060',GradientType=0 );
}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用 来限制动画animation-iteration-count,但正如我所发现的,这似乎只适用于动画和@keyframes。我还阅读了一些
@keyframes尚不支持 CSS 渐变动画的不同网站。
30px闪烁效果是由于元素高度 ( ) 和为背景指定的偏移量 ( -200px-> )之间的差异造成的0px。
基本上,它在一秒的过渡中滚动经过视图六次(因为 30 变成 200 六次),这就是给你闪烁效果的原因。如果稍微增加过渡时间,例如 5 秒,您可以更容易地看到效果;这将使发生的事情变得更加明显。(显然你可以在完成测试后将其设置回来)
如果将 inital 更改background-position为-30px而不是-200px,则它只会滚动到视图中一次,因此不会闪烁。
希望有帮助。
| 归档时间: |
|
| 查看次数: |
3032 次 |
| 最近记录: |