热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS3animation动画+动画如何切换

之前做转盘的时候,用的就是animation,然后加@keyframes。当时时间挺紧张的,就在网上搜了下怎么用,就直接用了。现在有时间了,好好看了一下具体的用法。—《图解CSS3》

之前做转盘的时候,用的就是animation,然后加@keyframes。当时时间挺紧张的,就在网上搜了下怎么用,就直接用了。现在有时间了,好好看了一下具体的用法。

—《图解CSS3》
        CSS3的animation属性可以像Flash制作动画一样,通过关键帧控制动画的每一步,实现复杂的动画效果。

属性:

animation-name:指定@keyframes关键帧的名字
animation-duration:设置动画播放所需时间,一般以秒为单位
animation-timing-function:设置动画的播放方式
ease|linear|ease-in|ease-out|ease-in-out
animation-delay:动画开始播放的时间,即开始动画前等待的时间
ainimation-iteration-count:动画播放次数,默认为1,如果取值为infinite,则无限循环
animation-direction:动画播放方向 animation-play-state:控制播放状态,running|paused
animation-fill-mode:动画开始前和结束后发生的操作。none|forwards(应用最后关键帧的样式)|backwards(初始帧)|both

今天用到了一个效果,就是页面上要有一个转动的元素,单击这个元素元素停止转动,再次单击,元素重新旋转。

我之前写的代码如下:


<html>
<head>
<title>动画切换title>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="css/style.css">
head>
<body>
<div class="container">
<div id="top">
div>
div>
<script type="text/Javascript">

//获取相关CSS属性
var getCss = function(o,key){
return o.currentStyle? o.currentStyle[key] : document.defaultView.getComputedStyle(o,false)[key];
};

var musicIcon = document.getElementById("top"); //获取到元素
musicIcon.addEventListener("click",function(){//为元素添加事件
var rotate = getCss(musicIcon,"animation");//获取到CSS中animation属性
if (rotate) { //如果有值设置为空,否则赋值
musicIcon.style.animation = " ";
}else{
musicIcon.style.animation = "200s one infinite linear";
}
,false);
script>

body>
html>

CSS代码:

#top{
width: 86px;
height: 86px;
border-radius: 43px;
border: 1px solid red;
background: url(../images/icon.png) no-repeat;
animation: 200s one infinite linear;
}

@keyframes one {
100% {transform: rotate(36000deg);}
}

但是这样写不管用,原因 “”空字符串可能是不识别。更好的方法是,重新设置一个样式,让它转就给它加上这个样式,否则就去掉这个样式

js代码如下:

    <script type="text/Javascript">

//获取相关CSS属性
var getCss = function(o,key){
return o.currentStyle? o.currentStyle[key] : document.defaultView.getComputedStyle(o,false)[key];
};

var musicIcon = document.getElementById("top");
musicIcon.addEventListener("click",function(){
if (musicIcon.className.indexOf("rotate") >= 0) {
musicIcon.className = "";
}
else {
musicIcon.className = "rotate";
}// 更好的方法,重新设置一个样式,让它转就给它加上这个样式,否则就去掉这个样式
},false);
script>

推荐阅读
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 开机自启动的几种方式
    0x01快速自启动目录快速启动目录自启动方式源于Windows中的一个目录,这个目录一般叫启动或者Startup。位于该目录下的PE文件会在开机后进行自启动 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • 本地存储组件实现对IE低版本浏览器的兼容性支持 ... [详细]
  • 利用REM实现移动端布局的高效适配技巧
    在移动设备上实现高效布局适配时,使用rem单位已成为一种流行且有效的技术。本文将分享过去一年中使用rem进行布局适配的经验和心得。rem作为一种相对单位,能够根据根元素的字体大小动态调整,从而确保不同屏幕尺寸下的布局一致性。通过合理设置根元素的字体大小,开发者可以轻松实现响应式设计,提高用户体验。此外,文章还将探讨一些常见的问题和解决方案,帮助开发者更好地掌握这一技术。 ... [详细]
  • 本文介绍了在 Java 编程中遇到的一个常见错误:对象无法转换为 long 类型,并提供了详细的解决方案。 ... [详细]
  • 本文介绍了一种使用 JavaScript 计算两个日期之间时间差的方法。该方法支持多种时间格式,并能返回秒、分钟、小时和天数等不同精度的时间差。 ... [详细]
  • 单片微机原理P3:80C51外部拓展系统
      外部拓展其实是个相对来说很好玩的章节,可以真正开始用单片机写程序了,比较重要的是外部存储器拓展,81C55拓展,矩阵键盘,动态显示,DAC和ADC。0.IO接口电路概念与存 ... [详细]
  • 检查在所有可能的“?”替换中,给定的二进制字符串中是否出现子字符串“10”带 1 或 0 ... [详细]
  • 本文介绍了如何利用 `matplotlib` 库中的 `FuncAnimation` 类将 Python 中的动态图像保存为视频文件。通过详细解释 `FuncAnimation` 类的参数和方法,文章提供了多种实用技巧,帮助用户高效地生成高质量的动态图像视频。此外,还探讨了不同视频编码器的选择及其对输出文件质量的影响,为读者提供了全面的技术指导。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
author-avatar
手机用户2502911617_428
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有