我是通过这个网站来的。当用户点击时Log in
,页面上的徽标开始动画。如何实现这样的动画。我正在寻找有用的链接。我尝试谷歌搜索但没有成功,因为我不确定它是什么叫?
2 回答
是的,这应该很简单。假设这两个是兄弟姐妹,你甚至可以用 CSS 做到这一点。
CSS 方法
#site-logo {
background-image: url(path/to/non-animated-image);
}
.login-button {
/* Login default CSS here */
}
.login-button:active ~ #site-logo {
background-image: url(path/to/animated-image.gif);
}
.login-button:active ~ .site-logo
然后在块中使用动画 gif 。
否则,您可以使用 jQuery 或类似的东西
jQuery 方法
.login-button.on('click', function(){
$('#site-logo').css('background-image', 'url(path/to/animated-image.gif)');
});
您发布的链接使用 CSS3 动画/过渡和画布。而且它使用了太多的绒毛来实现对那个标志的如此简单的效果。这不是很有效,正如 Josh Burgess 指出的那样,您可以轻松地对 .gif 图像执行相同的操作。但是,我只是想强调您在此徽标中看到的一些事情。(它使用了一个画布,它可能只包含一个 gif 图像,但徽标的意义远不止这些)。
我将从您看到的圆圈的基础知识开始,这些不是图像。您可以使用 .gif 图像来实现类似的效果。但在这种情况下,标志的静态部分全是 CSS 和 HTML。
圆圈的一个例子
CSS:
.myCircles li, .myCircles li:after {
position: absolute;
top: 25px;
left: 25px;
list-style: none;/* hide the list style */
text-indent: -9001em;/* hide the text content */
width: 50px;
height: 50px;
border-radius: 100% 100% 100% 100%;
border-top: 5px solid #000;
border-right: 5px solid #000;
border-bottom: 5px solid #000;
border-left: 5px solid transparent;
transform: rotate(45deg);
/* The transition effect */
transition: all 2s;
-moz-transition: all 2s; /* Firefox 4 */
-webkit-transition: all 2s; /* Safari and Chrome */
-o-transition: all 2s; /* Opera */
}
.myCircles li:after {
content: ''; /* important to add this, without a content propperty set :before / :after psuedo elements will not show */
left: 25px;
}
.myCircles li:hover {
transform: rotate(190deg);
opacity: 0.5;
}
HTML:
<ul class="myCircles">
<li id="circle"> circle </li>
</ul>
在网站上,多个圆圈是使用 :before 和 :after 选择器创建的。如上例所示。单击网站上的按钮后动画开始时,它将淡入包含该动画的画布中。为了演示;您可以添加一个简单的 :hover 来查看这种褪色效果。(在此示例中淡出而不是淡入。)
您可以在某些其他事件上使用这些过渡和动画,而不仅仅是 :hover (或 :focus :active 等),但您需要 JS 才能这样做。例如 onclick 或 load 事件。
HTML/JS (jQuery):
<button id="test">login</button>
<script>
$(document).ready(function(){
$('#test').click(function() {
$('#circle').css( 'left', '100px' );
$('#circle').css( 'opacity', '0.5' );
});
});
</script>
这些是您在徽标中看到的效果的基础知识。但是,我不建议在两者之间使用画布的麻烦。但是在使用画布时,您可以更自由地渲染内容,因此对于复杂的动画,画布可以派上用场。使用画布时,您应该准备手动创建大量动画,或者搜索库以利用画布元素的真正力量。
至于有关动画和您想了解更多效果的链接:(由于这是我在 SO 上的第一篇文章,看来我只能为您提供 2 个链接,我建议您查看 css 转换和关键帧动画语法以及 CSS 技巧以了解有关动画可能性的更多信息)