相关文章推荐
近视的口罩  ·  解决Missing artifact ...·  1 年前    · 
从未表白的墨镜  ·  Oracle ...·  1 年前    · 

无效原因:

我们使用CSS3的gradient渐变属性是被当成背景图片(background-img)来看的。emmm以前我们是通过加载图片来实现渐变色的效果,现在是通过CSS3的gradient渐变属性就能来实现,也就是说让浏览器自己去绘制出渐变图片而减少一次图片的请求了。

而背景图片并不能使用transition过渡啊...那既然是图片不就能跟平时一样通过opacity透明度来实现过渡效果吗

1:两个设置了渐变色的元素层叠后,通过过渡一个透明度的0到1的元素来实现渐变色渐入渐出

<style>
    .div1 {
            margin: 100px auto 0;
            width: 200px;
            height: 200px;
    	    background-color: #6633ff;
    .div2 {
	    width: 200px;
	    height: 200px;
	    background: linear-gradient(to bottom, #f2f2f2,#fdfdfd);
	    opacity: 0;
	    transition: opacity linear .33s;
    .div1:hover .div2{
	    opacity: 1;
</style>
    <div class="div1">
	<div class="div2"></div>
</body>

复制代码去试试吧。

2:设置了渐变色的元素后的background-color是默认的初始值,所以可以通过这个来过渡来实现平滑的渐出效果

<style>
	body {
		background-color: #ccccff;
	.div1 {
		margin: 100px auto 0;
		width: 100px;
		height: 100px;
		background-color: #fbfbfb;
		transition: background ease-in-out .33s;
	.div1:hover {		
		background: linear-gradient(to bottom, #f0f0f0,#fdfdfd);
		background-color: #f0f0f0;
  </style>
	<div class="div1"></div>
  </body>
原理是当鼠标移到div1时,背景图片的被设置成渐变色,背景颜色为#f2f2f2(背景图片在背景颜色上),当两样发生变化时transition过渡开始生效,在0.33s内背景颜色从#fbfbfb过渡到#f2f2f2,但因为有渐变图的覆盖,所以没有渐入效果,但鼠标移出时,背景图片失效,背景颜色从#f2f2f2过渡到#fbfbfb(ease-in-out是相对于linear的匀速,慢速过渡),达到淡出效果
注意背景图和背景颜色的书写顺序不能改变,不然background的复合写法会覆盖上面的background-color,当鼠标移出时,就会从初始值(rgba(0,0,0,0))颜色到本身的#fbfbfb过渡
无效原因:    我们使用CSS3的gradient渐变属性是被当成背景图片(background-img)来看的。emmm以前我们是通过加载图片来实现渐变色的效果,现在是通过CSS3的gradient渐变属性就能来实现,也就是说让浏览器自己去绘制出渐变图片而减少一次图片的请求了。而背景图片并不能使用transition过渡啊...那既然是图片不就能跟平时一样通过opacity透明度来实现过渡效果... XTTransitionAnimations可以让您仅用一行代码即可实现自定义 过渡 动画。 仅需一行代码即可实现自定义 过渡 动画,它与iOS系统的当前和推入 transiton api非常相似。 学习成本低; 支持配置动画参数,如时长,阻尼比,计时功能等; 过渡 动画的交互性是可配置的; 低侵入性,不干扰用户界面; 默认情况下,有用于解散/弹出的匹配 过渡 动画,也可以单独配置; 对于交互式动画,将自动切换弹性动画和线性动画。 只需实现一个动画对象即可自定义自己的 过渡 动画 XTTransitionAnimations支持扩展动画类型。 主要过程如下: 创建一个实现所需效果并符合UIViewControllerAnimatedTransitioning(例如Animations文件夹中的类)的动画对象; (可选)如果由手势滑动距离控制过 CSS 3 Gradient分为linear-gradient(线性 渐变 )和radial-gradient(径向 渐变 ) CSS 3 渐变 (gradients)可以让你在两个或多个指定的颜色之间显示平稳的 过渡 。 以前,你必须使用图像来实现这些效果。但是,通过使用 CSS 3 渐变 (gradients),你可以减少下载的事件和宽带的使用。此外, 渐变 效果的元素在放大时看起来效果更好,因为 渐变 (gradient)是由浏览器生成的。 CSS 3 定义了两种类型的 渐变 (gradie Popmotion: //popmotion.io/pure/ https://popmotion.io/api/react/ 姿势:用于HTML,SVG,React和React Native的声明性运动系统https://popmotion.io/pose/ React Motion https://github.com/chenglou/react-motion http://chenglou.github.io/react-motion/demos/demo3-todomvc-list-transition/ http://chenglou.github.io/react -motion / demos / demo0-simple-tr 1.-ms- -ms-box-shadow IE浏览器专属的 CSS 属性需添加-ms-前缀 2.-moz- -moz-box-shadow 所有基于Gecko引擎的浏览器(如Firefox)专属的 CSS 属性需添加-moz-前缀 3.-o- -o-box-shadow Opera浏览器专属的 CSS 属性需添加-o-前缀 4.-webkit- -webkit-box-shadow 所有基于Webkit引擎的浏览器(如Chrome、Safari)专属的... transition 属性名 持续时间 过渡 方法 transition-property 属性名|all 对哪个属性进行变化 transition-duration 持续时间,单位 s(秒) 毫秒 transition-timing-function 过渡 使用的 方法 (函数) transition-delay 过渡 transition 作用:将元素的某个属性从“一个值”,在指定的时间内 过渡 到“另一个值”。 transiton -time-function属性值 linear 匀速 ease 慢快慢 ease-in 慢快 ease-out 快慢 ease-in-out 慢快慢 height: 30px; width: 100px; line-height: 30px; border-radius: 5px; color: #000; background-color: silver; transition: all 1s linear; div:hover{ color: white; background-color: #45b823;
display: none 和display: block之间的切换也会出现 过渡 效果失效的情况。 原因 :display: none是销毁当前dom节点,再次切换为display: block时会再创建节点,此时 css 选择器会重新赋予上去。所以不存在 渐变 动画。 解决 方法 : 用opacity(透明度)去替代。 用visibility : hidden和visibility: visible进行替换 self.machine = QtCore.QStateMachine() self.off_state = self.OffState() self.on_state = self.OnState() self.off_state.addTransition(self.off_state. transitOn ) self.on_state.addTransition(self.on_state.transitOff) self.machine.addState(self.off_state) self.machine.addState(self.on_state) self.machine.setInitialState(self.off_state) self.machine.start() def turnOn(self): self.machine.postEvent(self.on_state. transitOn ) def turnOff(self): self.machine.postEvent(self.off_state.transitOff) 在这个示例代码中,我们定义了两个状态:打开状态和关闭状态。每个状态都是一个 `QState` 的子类,并实现了 `onEntry` 方法 ,在进入状态时触发。我们还定义了两个事件:` transitOn ` 和 `transitOff`,它们用于触发状态转换。 在 `__init__` 方法 中,我们创建了一个状态机,并将两个状态添加到状态机中。我们还将关闭状态设置为初始状态,并启动状态机。 最后,我们定义了两个 方法 `turnOn` 和 `turnOff`,用于触发状态转换。它们会将相应的事件发送到状态机中。 通过这个状态机分组示例代码,我们可以控制一个灯的开关状态,并在状态转换时输出一些信息。