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

关于CSS3属性transition的触发

关于怎么触发transition的效果,前面有篇文章说过一次,《关于transition和animation》,而且在实际的项目生产中,也是一直这么使用的,因为明明知道直接添加class是无法触发tr

关于怎么触发transition的效果,前面有篇文章说过一次,《关于transition和animation》,而且在实际的项目生产中,也是一直这么使用的,因为明明知道直接添加class是无法触发transition效果的,那何必再做这些无用功呢?而且很确定的是,之前也做过各种测试的。

然而,事实真的这样吗?

今天突然想到是不是应该再看看transition这个属性。

其中的属性不做一一介绍,我自己也没有那么透彻的理解每一个属性值的每一小点,我们这里依然聚焦于怎么触发transition这个变形的效果。



  比较简单的html结构,看看css

.btn-transiton {
line-height: 2;
padding: 0.5rem;
}

.transition {
width: 2rem;
height: 2rem;
background: #ccc;
opacity: 1;
transition: height 1s ease-in;
}

  刚开始的时候,肯定是通过js设置css属性,让其达到触发transition动画效果的目的。

 var height = $(".transition").height();
$(".btn-transiton").on("click", "a:first-child", function () {
$(".transition").css("height", 0);
}).on("click", "a:last-child", function () {
$(".transition").css("height", height);
});

  看到这样的代码,当然就会想到利用height()函数替代:

var height = $(".transition").height()
$(".btn-transiton").on("click", "a:first-child", function () {
$(".transition").height(0);
}).on("click", "a:last-child", function () {
$(".transition").height(height);
});

  当走到这一步的时候,如果不试验一下使用添加删除class触发这个transition效果,能死心吗?

为css添加:

.transition.active-height {
height: 0;
}

 js改造:

var height = $(".transition").height()
$(".btn-transiton").on("click", "a:first-child", function () {
$(".transition").addClass("active-height");
}).on("click", "a:last-child", function () {
$(".transition").removeClass("active-height");
});

  此时,令人意想不到的事情发生了,添加删除class,居然也可以触发transition的动画效果了,究竟什么时候可以的?或者哪一版本浏览器开始支持这一特性的?并不仅仅是chrome浏览器支持,firefox,safari也都可以支持。

当前电脑上安装的chrome版本为:

firefox版本为:

Safari版本:

为了避免出现仅仅是height属性才有这种情况发生,使用opacity、transform属性,也能够触发相同效果,甚至同时触发width、height、all都能够实现。

这样就可以减少很多,不必要的js写css的过程!

 

 

 

 


推荐阅读
  • 前端提高篇(七十):SVG基本使用、基本样式、路径path
    SVG是使用XML来描述二维图形和绘图程序的语言。SVG遵循的是xml的规范,与html5的使用有所区别SVG绘制出来的是矢量图,放大之后不会失真官方文 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 深入理解CSS中的margin属性及其应用场景
    本文主要介绍了CSS中的margin属性及其应用场景,包括垂直外边距合并、padding的使用时机、行内替换元素与费替换元素的区别、margin的基线、盒子的物理大小、显示大小、逻辑大小等知识点。通过深入理解这些概念,读者可以更好地掌握margin的用法和原理。同时,文中提供了一些相关的文档和规范供读者参考。 ... [详细]
  • 本文介绍了响应式页面的概念和实现方式,包括针对不同终端制作特定页面和制作一个页面适应不同终端的显示。分析了两种实现方式的优缺点,提出了选择方案的建议。同时,对于响应式页面的需求和背景进行了讨论,解释了为什么需要响应式页面。 ... [详细]
  • ECMA262规定typeof操作符的返回值和instanceof的使用方法
    本文介绍了ECMA262规定的typeof操作符对不同类型的变量的返回值,以及instanceof操作符的使用方法。同时还提到了在不同浏览器中对正则表达式应用typeof操作符的返回值的差异。 ... [详细]
  • 如何压缩网站页面以减少页面加载时间
    本文介绍了影响网站打开时间的两个因素,即网页加载速度和网站页面大小。重点讲解了如何通过压缩网站页面来减少页面加载时间。具体包括图片压缩、Javascript压缩、CSS压缩和HTML压缩等方法,并推荐了相应的压缩工具。此外,还提到了一款Google Chrome插件——网页加载速度分析工具Speed Tracer。 ... [详细]
  • 这个问题发生在重新安装系统后,丢失了之前的privatekey等。所以解决方法就是提示的revokeandrequest。到developercenter中找到certificat ... [详细]
  • 目录爬虫06scrapy框架1.scrapy概述安装2.基本使用3.全栈数据的爬取4.五大核心组件对象5.适当提升scrapy爬取数据的效率6.请求传参爬虫06scrapy框架1. ... [详细]
  • background:-webkit-gradient(linear,10%10%,100%100%, ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • Html5-Canvas实现简易的抽奖转盘效果
    本文介绍了如何使用Html5和Canvas标签来实现简易的抽奖转盘效果,同时使用了jQueryRotate.js旋转插件。文章中给出了主要的html和css代码,并展示了实现的基本效果。 ... [详细]
  • 使用chrome编辑器实现网页截图功能的方法
    本文介绍了在chrome浏览器中使用编辑器实现网页截图功能的方法。通过在地址栏中输入特定命令,打开控制台并调用命令面板,用户可以方便地进行网页截图操作。 ... [详细]
  • 前端每日实战 2018年10月至2019年6月项目汇总(共 20 个项目)
    过往项目2018年9月份项目汇总(共26个项目)2018年8月份项目汇总(共29个项目)2018年7月份项目汇总(共29个项目)2018年6月份项目汇总(共27个项目)2018年5 ... [详细]
  • 1.CSS3透明度渐变(从左到右)#grad{background:-webkit-linear-gradient(left,rgba(198,226,255,1),rgba(19 ... [详细]
  • http:js.alixixi.coma2014021292298.shtmlhttp:w3cshare.comexample?pid134http:w3cshare.comc ... [详细]
author-avatar
宅妈每日贴_889
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有