HTML5-CSS3-JavaScript(4)

CSS3中 变形与动画相关属性

  CSS3在原来的基础上新增了变形和动画相关属性,通过这些属性可以实现以前需要大段JavaScript才能实现的功能。CSS3的变形功能可以对HTML组件执行位移、旋转、缩放、倾斜4种几何变换,这样的变换可以控制HTML组件呈现出更丰富的外观。

  借助于位移、旋转、缩放、倾斜这4种几何变换,CSS3提供了Transition动画。Transition动画比较简单,只要指定HTML组件的哪些CSS属性需要使用动画效果来执行变化,并指定动画的持续时间,就可保证HTML组件按指定规则播放动画。

  比Transition动画功能更强大的是Animation动画,Animation动画同样可以与位移、旋转、缩放、倾斜4种几何变换结合,但它可以指定多个关键帧,从而允许定义功能更丰富的自定义动画。

  1. CSS3提供的变形支持

  CSS3提供的变形支持可以对HTML组件进行常见的几何变换,包括旋转、缩放、倾斜、位移4中变换,也可以使用变换矩阵进行变形。

  CSS3为变形支持提供了如下两个属性值。

  transform : 该属性用于设置变形。该属性支持一个或多个变形函数。CSS3提供了如下变形函数。

    translate(tx [,ty]) : 该函数设置HTML组件横向上移动tx距离,纵向上移动ty距离。其中ty参数可以省略,如果省略ty参数,则ty默认为0,表明纵向上没有位移。

    translateX(tx) , translateY(ty)

    scale(sx, sy) : 该函数设置HTML组件横向上缩放比为sx,纵向上缩放比为sy。sy参数可以省略,如果省略该参数,sy默认等于sx,也就是保持横纵比缩放。

    scaleX(sx) = scale(sx,1) , scaleY(sy) = scale(1,sy)

    rotate(angle) : 该函数设置HTML组件顺时针转过angle角度。

    skew(sx [, sy]) : 该函数设置HTML组件沿着X轴倾斜sx角度,沿着Y轴倾斜sy角度。其中sy参数可以省略,如果省略sy参数,则sy默认为0。

    skewX(sx),skewY(sy)

    matrix(m11,m12,m21,m22,dx,dy) : 这是一个基于矩阵变换的函数。其中前4个参数将组成变形矩阵;dx、dy将负责对坐标系统进行平移。

  transform-origin : 该属性设置变形的中心点。该属性值应该指定为xCenter yCenter,其中xCenter、yCenter支持如下几种属性值。

    left : 指定旋转中心点位于HTML组件的左边界。该属性值只能指定给xCenter。

    top : 指定旋转中心点位于HTML组件的上边界。该属性值只能指定给yCenter。

    right : 指定旋转中心点位于HTML组件的右边界。该属性值只能给xCenter。

    bottom : 指定旋转中心点位于HTML组件的下边界。该属性值只能给yCenter。

    center : 指定旋转中心点位于HTML组件的中间。如果将xCenter、yCenter都指定为center,则旋转中心点位于HTML元素的中心。

    长度值 : 指定旋转中心点距离左边界、右边界的长度。

    百分比 : 指定旋转中心点位于横向、纵向上的百分比位置。

  例子:

  -moz-transform:rotate(30deg);

  -webkit-transform:rotate(30deg);

  -o-transform:rotate(30deg);

  2. CSS3提供的Transition动画

  CSS3提供了Transition动画支持,Transition动画可以控制HTML组件的某个属性发生改变时会经历一段时间、以平滑渐变的方式发生改变,这就产生了动画效果。

  Transition动画通过transition属性来指定。transition属性的值包括如下4个部分。

  transition-property : 指定对HTML元素的哪个CSS属性进行平滑渐变处理。该属性可以指定background-color、width、height各种标准的CSS属性。 all指所有属性都执行transition动画处理。

  transtion-duration : 指定属性平滑渐变的持续时间。

  transtion-timing-function : 指定渐变的速度。该部分支持如下几个值。

    ease : 动画开始时较慢,然后速度加快,到达最大速度后再减慢速度。

    linear : 线性速度。动画开始时的速度到结束时的速度保持不变。

    ease-in : 动画开始时速度较慢,然后速度加快。

    ease-out : 动画开始时速度很快,然后速度减慢。

    ease-in-out : 动画开始时速度较慢,然后速度加快,到达最大速度后再减慢速度。

    cubic-bezier(x1,y1,x2,y2) : 通过贝济埃曲线来控制动画的速度。该属性值完全可以代替ease、linear、ease-in、ease-out、ease-in-out等属性值。

  transition-delay : 指定延迟时间,也就是指定经过多长时间的延迟才会开始执行平滑渐变。

  例子:

  -moz-transition : background-color 4s linear;

  -webkit-tansition : background-color 4s linear;

  -o-transtion : background-color 4s linear;

  3. CSS3提供的Animation动画

  CSS3提供了强大的Tween动画支持 : Animation动画,这种动画允许开发者定义多个关键帧,浏览器将会负责计算,插入关键帧之间的虚拟动画帧。

  CSS3为Animation动画提供了如下几个属性。

  animation-name : 指定动画名称。该属性指定一个已有的关键帧定义。

  animation-duration : 指定动画的持续时间。

  animation-timing-function : 指定动画的变化速度。

  animation-delay : 指定动画延迟多长时间才开始执行。

  animation-iteration-count : 指定动画的循环执行次数。无限次循环 infinite

  animation : 这是一个复合属性。该属性的格式为 : animation-name animation-duration animation-timing-function animation-delay animation-iteration-count,使用该属性可以同时指定animation-name、animation-duration、animation-timing-function、animation-delay和animation-iteration-count等属性。

  需要指出的是,目前暂时只有Chrome、Safari浏览器支持该属性,而且使用该属性时还需要在该属性的前面添加-webkit-前缀。

  上面属性中animation-name的属性值应该是一个关键帧定义,这个关键帧定义满足如下格式:

  keyframes 关键帧名称 {

    from | to | 百分比 {

      属性1 : 属性值1;

      属性2 : 属性值2;

      属性3 : 属性值3;

      ...

    }

    ...

  }

  上面语法格式中,from | to | 百分比用于定义关键帧的位置。其中from代表开始处;to代表动画结束帧;百分比则指定关键帧的出现位置。例如,10%代表关键帧出现在动画进行1/10时间处。一个关键帧定义可以包含多个关键帧。

  例子 :

  /* 定义一个关键帧 */

  @-webkit-keyframes ‘fisheye‘ {

    /* 定义动画开始处的关键帧 */

    0% {

      -webkit-transform : scale(1);

      background-color : #eee;

      border-radius : 10px;

    }

    /* 定义动画进行40%时的关键帧 */

    40% {

      -webkit-transform : scale(1.5);

      background-color : #bbb;

      border-radius : 10px;

    }

    /* 定义动画进行100%时的关键帧 */

    100% {

      -webkit-transform : scale(1);

      background-color : #eee;

      border-radius : 10px;

    }

  }

  div>a:hover {

    /* 指定执行fisheye动画 */

    -webkit-animation-name : ‘fisheye‘;

    /* 指定动画的执行时间 */

    -webkit-animation-duration : 3s;

    /* 指定动画的循环无限次 */

    -webkit-animation-iteration-count : infinite;

  }

时间: 2024-10-22 08:18:34

HTML5-CSS3-JavaScript(4)的相关文章

HTMl5/CSS3/Javascript 学习推荐资源

HTMl5/CSS3/Javascript 学习推荐资源 前端的定义应该是数据内容的展示,在国内大家都觉得前端只是HTML+CSS+Javascript,但是实际上与展示有关的都是前端,所以Ruby/Python/Nodejs/Java/ASP .NET只要和展示有关的部分都可以称之为前端.在这里由于篇幅的限制,我们只推荐与HTML+CSS+Javascript三者有关的前端技术 入门 w3school html5 简单HTML5的入门教程 w3school css3 简单的CSS3入门教程 J

检测 HTML5\CSS3\JAVASCRIPT 在浏览器的适应情况

CSS3 Selectors Test : 这是CSS3.INFO网站提供的css选择器测试页面,它能够详细显示当前浏览器对所有CSS3选择器的支持情况.启动测试,浏览器会自动测验,并已列表的方式显示当前浏览器对所有css3选择器的支持情况     http://tools.CSS3.info/selectors-test/test.html When can I use :这是一个专业的测试网站,为广大网页设计师提供CSS3\HTML5\SVG\JAVAScript api 技术的浏览器支持情

web前端全部课件(html5+CSS3+javascript+dom+bom+jquery+jqm+bootstrap+angular+ext+weixin+less)

一.HTML5 BASIC课件 Unit01:Web基础知识.HTML快速入门.文本 Unit02:图像和链接.表格.结构标记 Unit03:列表.表单.其他常用标记 二.CSS3 BASIC课件 Unit01:CSS 概述.CSS 语法\尺寸与边框 Unit02:框模型.背景.渐变\文本格式化-1 Unit03:文本格式化-2.表格.浮动.显示 Unit04:列表.定位 三.京东首页实战(无PPT) 四.WEB UI课件 Unit01:Photoshop基本操作.网页切图.图像优化 Unit0

移动网页设计与开发 HTML5+CSS3+JavaScript

第1章 网络平台1.1 对术语的简短说明1.2 你是谁,你需要知道些什么1.3 了解什么是HTML51.4 真正的HTML51.5 CSS3及其他1.6 浏览器支持1.7 测试,再测试,进行更多的测试总结 第2章 结构和语义2.1 HTML5的新元素2.2 网页易读性倡议的无障碍的富因特网应用程序组件(WAI-ARIA)2.3 语义标记的重要性2.4 微格式2.5 RDFa2.6 微数据2.7 数据属性2.8 Web组件:标记的未来?总结 第3章 设置响应性CSS3.1 媒体查询3.2 Java

2019前端面试经典(html5+css3+JavaScript)

前端目录 HTML相关 CSS相关 JAVASCRIPT相关 DOM相关 HTTP相关 VUE相关 算法相关 网络安全相关 webpack相关 其他 Html相关 1 html语义化 意义:根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析.注意: 1.尽可能少的使用无语义的标签div和span: 2.在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利: 3.不要使用

html5+css3+javascript 自定义弹出窗口

效果图: 源码: 1.demo.jsp 1 <%@ page contentType="text/html;charset=UTF-8" language="java" %> 2 <html> 3 <head> 4 <title>demo12.jsp</title> 5 <script type="text/javascript" src="js/myLayer.js&q

HTML5/CSS3/JavaScript

基本元素 元素名 属性名 属性说明 作用备注 <!--...-->     代码备注 <html>     根元素 <head>     页面头部 <title>     页面标题 <body>     页面主体 <h1>~<h6>     定义标题(字体大小区别) <p>     定义段落 <br>     插入一个换行 <hr>     定义水平线 <div>     定

学习HTML5+CSS3+Javascript的第一周

Javascript是一种轻量级.解释型的Web开发语言.JS代码需要写在<script></script>标签中,作为脚本语言的标识符来分隔其他源代码.避免与html标签和css样式混淆. js代码严格区分大小写.javascript暂不支持constant关键字,不允许用户自定义常量.javascript使用var关键字声明变量,先声明后使用:声明变量之后,在没有初始化之前,它的初始值为undefined(未定义的值).变量命名规则:1.首字符必须是大写或小写字母.下划线.或美

面向Web Cloud的HTML5 App开发实战:Browser&amp;HTML5&amp;CSS3&amp;PhoneGap&amp;jQuery Mobile&amp; WebSocket&amp;Node.js(3天)

课程简介: 王家林老师(联系邮箱[email protected] 电话:18610086859 QQ:1740415547 微信号:18610086859) 22个HTML5主题一次性贯穿HTML5的一切技术: 一网打尽HTML5时代Device.(设备端).Browser(浏览器)和Cloud(浏览器)的所有技术: 以浏览器定制技术为基础,通晓HTML5+CSS3+PhoneGap+Web Socket +jQuery Mobile +Node.js等HTML5的六大核心技术: 最新研发的H

[IOS_HTML5]各种JS框架介绍--用HTML5/CSS3/JS开发Android/IOS应用

现在人人都想成为安卓/IOS应用开发工程师.其实,安卓/IOS应用可以用很多种语言来实现.由于我们前端开发工程师,对HTML5/CSS/JavaScript的网络编程已经相当熟悉了.所以,今天大家将会认识到一些利用前端语言来开发安卓/IOS应用的工具. 在文章的末尾,也介绍了使用JAVA.C#.Lua以及AS3来开发安卓应用的工具. 希望大家都能找到适合自己的开发工具!祝大家开发安卓/IOS应用一切顺利! PhoneGap 开发语言: HTML, CSS, JavaScript 开发工具: Ph