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

CSS3过渡属性

CSS3过渡多年来,Web前端开发人员一直在寻求通过HTML和CSS实现一些动画交互效果,而不再使用JavaScript或Flash。现在他们的愿望实现了。CSS

CSS3 过渡
多年来, Web前端开发人员一直在寻求通过HTML和CSS实现一些动画交互效果, 而不再使用Javascript 或Flash。 现在他们的愿望实现了。 CSS3除了给我们带来前面介绍的一些 特殊功能模块之外, 还为Web设计师添加了 一些动画功能模块。 可以通过:hover、:focus、:active、:checked 或者Javascript 触发一个元素,这样,外观变化会显得更细腻,而不会让人感觉“ 一触即发”。例如悬浮修改链接色,在 CSS2.1中鼠标悬浮时, 立刻从一个颜色变成另一个颜色。 而在CSS3 中使用过渡功能, 鼠标悬浮时, 颜色在一定的时间内, 从一个颜色过渡到另一个 颜色,给用户更好、 更细腻的体验。
CSS3的过渡功能像是一种黄油, 通过一些CSS的简单动作触发样式平滑过渡。W3C标准中描述的transition功能很简单: CSS3的transition允许CSS的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并平滑地以动画效果改变CSS的属性值。
以往Web中的动画都是依赖于Javascript和Flash实现,但原生CSS过渡在客户端上需要处理的资源少得多,从而显得更加平滑。 CSS3过渡与元素上的常规样式一起声明。只要目标属性更改,浏览器 就会应用过渡。除了使用Javascript 触发动作外,在CSS中也可以通过一些伪类来触发, 如 :hover、:focus、:active、:target 和:checked等。 这很重要:无须在Javascript中编写动画,只需要更改一个属性值并依赖浏览器来执行所有重要工作。 以下 是使用CSS创建简单过渡的步骤:
http:/ /www.iis7.com/b/wzjk/
1). 在默认样式中声明元素的初始状态样式。
2). 声明过渡元素最终状态样式, 比如悬浮状态。
3). 在默认样式中通过添加过渡函数, 添加一些不同的样式。
transition属性是一个复合属性,出于简洁性和便于维护考虑,过渡语法通常以简化的形式表达。
transition属性主要包含四个属性值:
·transition-property: 指定过渡或动态模拟的CSS属性。
·transition-duration: 指定完成过渡所需的时间。
·transition-timing-function: 指定过渡函数。
·transition-delay: 指定过渡开始出现的延迟时间。
指定过渡函数 transition-timing-function,transition- timing- function属性指定某种指代过渡“ 缓动函数”的属性。此属性可指定浏览器的过渡速度, 以及过渡期间的操作进展情况, 可以将某个值指定为预定义函数、阶梯函数或者三次贝塞尔曲线。
到目前为止,看到的ease、linear、ease-in、ease-out和ease-in-out等曲线函数非常一般,用于过渡动画中也不是十分精确。而现在制作一些动画需求越来越精确,需要定义一些更精确的函数。
CSS3 的transition中, 定义三次贝塞尔曲线的语法如右所示: cubic-bezier( P0, P1, P2, P3)
一个三次贝塞尔曲线由四个点控制曲线形状。每个点由水平和垂直两个值来确定, 也就是常说的由X和Y值确定。
这些点的值是小数或者百分比, 不过很少看到使用百分比来设置一个三次贝塞尔曲线点。而且它们的值都是一个0~1的小数。 不过有一点需要特别注意, 三次贝塞尔曲线中的P0和P两个点是无法设置的, 因为它们总是存在HTML中, 也就是说它们总会是( 0,0)和( 1,1)。
注意,三次贝塞尔曲线中的每个点值只允许0~1的值。
step()函数,step()函数用于把整个操作领域划成同样大小的间隔, 每个间隔都是都是相等的。 该函数还指定发生在开始或结束的时间间隔是否另外输出百分比(换句话说,如果输出的百分比为0%表示输入变化的初始点)。
step() 函数非常独特,它允许在固定的间隔播放动画。例如, 在 step() 函数图上可以看出, 动画属性比在0%处开始,涨到50%,动画结束时, 属性值达到100%( 也就是结束状态属性)。 并且在各个step() 函数中每个步骤在过渡动画中不够平滑
step([,[ start| end]]?) step() 函数主要包括两个参数。
·第一个参数是一个数值, 主要用来指定step()函数间隔的数量, 此值必须是一个大于0的正整数。
·第二个参数是可选的, 是start或end, 如果第二个参数忽略, 则默认为end值。 其中step( 1, start)相当于step- start; step( 1, end)相当于step- end。
伪元素触发
使用transition 时, 常用鼠标悬浮(: hover) 来触发过渡。
为说明这与触发过渡的实际事件毫无关联, 也为强调状态变化的重要性, 下面提供了 一些触发过渡的其他方法。

  1. 使用:active “:active”伪类表示用户单击某个元素并按住鼠标按钮时显示的状态。
  2. 使用:focus“:focus”伪类通常会在元素接收键盘焦点时出现。文本输入框元素上将发生过渡, 且该元素得到焦点时会执行文本输入框元素宽度和背景色过渡。
    此处作为一个边点, 当对“: hover”伪类应用过渡时, 最好将“: focus”添加到选择器堆栈。 这样将能够丰富鼠标用户和键盘用户的体验。
  3. 使用:checked “:checked”伪类在发生以下状况时触发过渡。 文本框选中时,
  4. 媒体查询触发 触发元素状态变化的另一种方法是使用CSS3媒体查询( Media Queries)。
  5. Javascript 触发 如果可以基于CSS的状态更改触发过渡, 自然可以通过 Javascript做到这一点。
    隐式过渡 “隐式过渡”指的是当一个属性改变时引起另一个属性到一个属性的过渡。

推荐阅读
  • 本指南介绍了如何在ASP.NET Web应用程序中利用C#和JavaScript实现基于指纹识别的登录系统。通过集成指纹识别技术,用户无需输入传统的登录ID即可完成身份验证,从而提升用户体验和安全性。我们将详细探讨如何配置和部署这一功能,确保系统的稳定性和可靠性。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • Web开发框架概览:Java与JavaScript技术及框架综述
    Web开发涉及服务器端和客户端的协同工作。在服务器端,Java是一种优秀的编程语言,适用于构建各种功能模块,如通过Servlet实现特定服务。客户端则主要依赖HTML进行内容展示,同时借助JavaScript增强交互性和动态效果。此外,现代Web开发还广泛使用各种框架和库,如Spring Boot、React和Vue.js,以提高开发效率和应用性能。 ... [详细]
  • 全面解析JavaScript代码注释技巧与标准规范
    在Web前端开发中,JavaScript代码的可读性和维护性至关重要。本文将详细介绍如何有效地使用注释来提高代码的可读性,并探讨JavaScript代码注释的最佳实践和标准规范。通过合理的注释,开发者可以更好地理解和维护复杂的代码逻辑,提升团队协作效率。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • 在List和Set集合中存储Object类型的数据元素 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • 如何撰写初级和高级前端开发者的专业简历
    如何撰写初级和高级前端开发者的专业简历 ... [详细]
  • 在HTML和CSS中,可以通过多种方法将按钮设置为超级链接或实现超链接的按钮样式。一种常见方法是在按钮元素中嵌入``标签,利用CSS进行样式调整,使其外观和行为类似于按钮。另一种方法是使用JavaScript来实现点击按钮时跳转到指定链接的功能。通过这些技术,可以轻松地创建既美观又功能强大的交互式按钮。 ... [详细]
  • 提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射)
    提升视觉效果:Unity3D中的HDR与Bloom技术(高动态范围成像与光线散射) ... [详细]
  • 本文介绍了如何利用Shell脚本高效地部署MHA(MySQL High Availability)高可用集群。通过详细的脚本编写和配置示例,展示了自动化部署过程中的关键步骤和注意事项。该方法不仅简化了集群的部署流程,还提高了系统的稳定性和可用性。 ... [详细]
author-avatar
手机用户2602901861
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有