美文网首页
CSS3中transition的触发方式

CSS3中transition的触发方式

作者: 突击手平头哥 | 来源:发表于2019-10-25 08:51 被阅读0次

CSS3中transition的触发方式

最近在工作中需要用到transition, 但是发现其触发方式很复杂

transition

  transition是CSS3最简单的动画, 当元素的属性发生改变能够以渐变的方式呈现出来; 如下代码是w3c上的一个示例, 加上了transition的结果就是在hover时, 长度会逐步增加到300px.

<!DOCTYPE html>
<html>
<head>
<style> 
div
{
width:100px;
height:100px;
background:blue;
transition:width 2s;
-moz-transition:width 2s; /* Firefox 4 */
-webkit-transition:width 2s; /* Safari and Chrome */
-o-transition:width 2s; /* Opera */
}

div:hover
{
width:300px;
}
</style>
</head>
<body>

<div></div>

<p>请把鼠标指针移动到蓝色的 div 元素上,就可以看到过渡效果。</p>

<p><b>注释:</b>本例在 Internet Explorer 中无效。</p>

</body>
</html>

transition的触发方式

  第一种方式如上, 使用伪类的方式触发, 包括hover,focus,checked等方式; 但是实际使用当中我们更多的是使用JS或者Jquery直接修改属性, 但是工作中发现这样不行.

  JS触发: 如果使用JS或者Jquery直接修改CSS属性并不会触发渐变, JS的触发方式是toggleClass; 我的理解是必须元素发生什么改变使得它有了一些不同从而获取到一些新的属性, 对于伪类触发是这样, 对于JS触发方式应当是它的class发生改变以至于能够得到新的样式.

  我使用的方式:对于p先有一个样式, 然后同时有一个div.newclass p的样式; 我们通过给div添加newclass的类使得p发生改变获取到该类, 能够触发transition的渐变.

<div><p></p></div>

总结

  • 1 样式不应当直接使用JS设置, 这样不会发生渐变
  • 2 应当是已经有了两个样式, 在最开始仅能获取到一个样式; 但是元素发生了某种改变, 使得其获取到该样式, 就会触发渐变特效

相关文章

网友评论

      本文标题:CSS3中transition的触发方式

      本文链接:https://www.haomeiwen.com/subject/oazdvctx.html