CSS——动画{旋转按钮}

前面我们一直在学习样式,学习布局,什么浮动啊,定位呀,还有弹性盒子,那么今天我们来看一点不一样的——动画!


前言

动画和过渡类似,都是可以实现⼀些动态效果,不同的是过渡需要在某个属性发⽣变化时才能触发, 例如hover,acitve时,动画可以⾃动触发动画


transform(元素变形)

可选值:

transform(x,y),平移 单位px或%(设置的是元素自身高度的%),一个值代表x轴;

scale(x,y)缩放 无单位,是相对于原图片的,一个值代表x,y同时缩放

rotate(deg);旋转,顺时针,rotateX 以X轴旋转,rotateY 同理,以Y轴旋转

skew(X,Y),倾斜,单位deg

过渡

transition:属性1,属性2 过渡时间(transition-duration) 过渡速度效果(transition-delay) 过渡开始时间(transition-timing-function)

              属性名(transition-property):当有多个的属性名是用,隔开

              过渡速度效果:linear 匀速

                           ease 慢-快-慢

                           ease-in 慢速开始

                           ease-out 慢速结束

                           ease-in-out 以慢开始与结束

                           cubic-bezier(n,n,n,n) 贝塞尔曲线  n 取值[0 1]

二、动画

1、使用步骤:

①运用关键帧创建一个动画@keyframes name {}

②animation调用关键帧

2、定义

animation:name(animation-name) 时间(animation-duration) 速度曲线(animation-timing-function) 延迟时间(animation-delay)

         播放次数(animation-iteration-count) 是否反方向播放动画(animation-direction)

                 name:与关键帧名字相同

                 速度曲线:linear 匀速

                          ease 慢-快-慢

                          ease-in 慢速开始

                          ease-out 慢速结束

                          ease-in-out 以慢开始与结束

                          cubic-bezier(n,n,n,n) 贝塞尔曲线  n 取值[0 1]

                          steps(n):数值,n代表动画完成要几步

                 播放次数:n 数值,

                          infinite 循环播放

                 播放方向:normal 默认值,正常播放

                          alternate 轮流反方向

                 执行状态: animation-play-state

                 可选值:  running 默认值  动画执行

                          paused  动画暂停              

                 填充模式: animation-fill-mode

                  可选值:

                          none默认值 动画执行完毕 元素回到原来的位置

                          forwards 动画执行完毕,会停止在动画结束的位置

                          ackwards 动画延时等待时,元素就会处于开始位置

                          both 结合了forwards和ackwards的特点*/

               运行的方向:animation-direction

                 可选值

                    normal  默认值: 从from向to运行,每次都是这样

                    reverse  从to到from运行,每次都是这样

                    alternate  从from向to运行,重复执行动画时反向执行

                    alternate-reverse  从to向from运行,重复执行动画时反向执行

1.旋转按钮

当鼠标hover的时候,按钮有一个旋转和放大的效果

 

 

 

代码如下(示例):

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>旋转按钮</title>
		<style>
			.button {
				width: 500px;
				height: 100px;
				margin: 50px auto;
			}

			.nav {
				width: 100px;
				height: 100px;
				background-repeat: no-repeat;
				display: inline block;
				float: left;
				
			}

			@keyframes move {
				from{ 
					transform: rotate(0deg);
				}

				t {
					transform: rotate(360deg);
				}
			}
			 img:hover {
			            transform: rotate(360deg) scale(2);
						transition:all 2s;
			        }
		</style>
	</head>
	<body>
		<div class="button">
			<div class="nav one"><img src="./images/delicious.png" alt=""></div>
			<div class="nav two"><img src="./images/facebook.png" alt=""></div>
			<div class="nav three"><img src="./images/rss.png" alt=""></div>
			<div class="nav four"><img src="./images/twitter.png" alt=""></div>
			<div class="nav five"><img src="./images/yahoo.png" alt=""></div>
		</div>

	</body>
</html>

2.侧边栏动画效果

 

 

代码如下(示例):

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>练习一</title>
    <style>
        *{
            padding: 0;
            margin: 0;
        }
        .box{
            margin: 0 auto;
            position: relative;
        }
    
        ul{
            position: fixed;
            right: 0;
            top: 40%;
            list-style: none;
        }
        li{
            position: relative;
            margin-bottom: 4px;
        }
        a{
            width: 36px;
            height: 36px;
            display: block;
            line-height: 36px;
            background: #414141;
            border-radius: 4px 0 0 4px;
        }
        span{
            position: absolute;
            top: 0;
            background: #414141;
            width: 50px;
            height: 36px;
            line-height: 36px;
            padding: 0 20px;
            font-size: 12px;
            color: #fff;
            border-radius: 4px 0 0 4px;
          	opacity: 0;
        }
            .a{
                background: #414141 url("./images/toolbar_05.png") center no-repeat;
            }
            .b{
                background: #414141 url("./images/toolbar_10.png") center no-repeat;
            }
            .c{
                background: #414141 url("./images/toolbar_15.png") center no-repeat;
            }
            .d{
                background: #414141 url("./images/toolbar_19.png") center no-repeat;
            }
            li:hover span{
                background: #C84D49;
                animation: move 0.2s linear both;
            }
            li:hover a{
                background-color: #bb1914;
                border-radius: 0;
            }
            @keyframes move{
                0% {
                	display: none;
                    left: 0;
                }
                100% {
                    opacity: 1;
                    left: -90px;
                }
            }
</style>
</head>
<body>
    <div class="box">
      
        <ul>
            <li>
                <a href="#" class="a"></a>
                <span>购物车</span>
            </li>
            <li>
                <a href="#" class="b"></a>
                <span>我的喜欢</span>
            </li>
            <li>
                <a href="#" class="c"></a>
                <span>我的收藏</span>
            </li>
            <li>
                <a href="#" class="d"></a>
                <span>我的钱包</span>
            </li>
        </ul>
    </div>
</body>
</html>


总结

注意:

1、帧的顺序可以更改,不关顺序问题。如果初始帧不写,默认是原始设置,如果结束帧不写, 默认也是原始设置

 transition-timingfunction 过渡变化曲线(缓动效 果)(选填)

*ease [i:z] 默认值, 慢速开始,先加速,然 后再减速

*linear 匀速运动 ease-in 先慢后快 加速运动 ease-out 先快后慢 减速运动 ease-in-out 以慢速开 始和结束的过渡效果

*steps()分布执⾏过渡 效果 cubic-bezier(n,n,n,n) ⽴⽅⻉塞尔曲线函数, 值是0-1之间的数值 4 transition-delay 过渡效果的延迟,等待 ⼀段时间后执⾏过渡 (选填) 时间的单位:s和ms 1s=1000ms 5 transition 同时设置过渡相关的所 有属性(选填) 只有⼀个要求,如果要 写延迟, 则两个时间中,第⼀ 个写过渡时间,第⼆个 写延迟时间 2、动画 2.1动画的理解 2、可以同时设置关键帧,⽤逗号(,)隔开就⾏

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要实现CSS动画的顺时针旋转效果,可以使用`transform`属性中的`rotate`函数来对元素进行旋转。通过设置不同的角度值,可以实现不同的旋转效果。在你提供的代码中,`.circel`类和`.unCircel`类分别定义了顺时针和逆时针旋转的效果。 具体实现的代码如下所示: ```css .circel { width: 100px; height: 100px; background: url(../../assets/images/circel.png) no-repeat; background-size: cover; animation: goCircel 2s linear infinite; } @keyframes goCircel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } ``` 在上面的代码中,`.circel`类的元素会在2秒钟内以线性的方式无限循环地顺时针旋转360度。 为了使动画生效,你需要在HTML文件中应用该类,可以通过给相应的元素添加`class="circel"`来实现。 希望这个解答能对你有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [css动画--使用图标进行顺时针与逆时针转圈](https://blog.csdn.net/weixin_44994731/article/details/104063015)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [CSS基础学习——动画](https://blog.csdn.net/qq_41890177/article/details/108246703)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

书棋06

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值