第八篇【传奇开心果短博文系列】鸿蒙开发技术点案例示例:酷炫简单的ArkUI 动画和过渡效果_arkuilineargradient

先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7

深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新HarmonyOS鸿蒙全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
img

img
img
htt

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上鸿蒙开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以添加V获取:vip204888 (备注鸿蒙)
img

正文

width: 200px;
height: 200px;
background: linear-gradient(to right, #ff0000, #00ff00); /* 使用线性渐变,从红色到绿色 */
border-radius: 50%; /* 设置圆形边框 */
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); /* 添加阴影效果 */
animation: rotate 2s linear infinite; /* 添加旋转动画效果 */
}

@keyframes rotate {
0% { transform: rotate(0deg); } /* 动画起始状态为不旋转 */
100% { transform: rotate(360deg); } /* 动画结束状态为旋转360度 */
}

在上面的示例中,我们使用了一个包含文本内容的<div>元素,并为其添加了一个名为mixed-effect的类。通过设置一系列样式,我们实现了混合效果:

a.width: 200px;height: 200px;`设置了元素的宽度和高度为200像素,使其呈现为一个正方形。

b.background: linear-gradient(to right, #ff0000, #00ff00);`使用了线性渐变,从红色(#ff0000)到绿色(#00ff00),作为元素的背景。

c.border-radius: 50%;`设置圆形边框,使元素呈现为一个圆形。

d.box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);添加了一个黑色的阴影效果,使元素在视觉上凸显出来。

e.animation: rotate 2s linear infinite;添加了一个名为rotate的旋转动画效果,使元素以线性的方式在2秒内旋转一周,并且无限循环播放。

您可以将上述HTML和CSS代码添加到您的网页中,根据需要进行调整和修改,以实现适合您的混合效果。
在这里插入图片描述
8.抖动效果示例代码
以下是一个使用CSS实现抖动效果的示例代码:

HTML代码:

这是一个文本内容

CSS代码:

.shake-effect {
animation: shake 0.5s infinite;
}

@keyframes shake {
0% { transform: translateX(0); } /* 动画起始状态为不偏移 */
25% { transform: translateX(-5px); } /* 动画中间状态为向左偏移5像素 */
75% { transform: translateX(5px); } /* 动画中间状态为向右偏移5像素 */
100% { transform: translateX(0); } /* 动画结束状态为不偏移 */
}

在上面的示例中,我们使用了一个包含文本内容的<div>元素,并为其添加了一个名为shake-effect的类。通过定义一个名为shake的动画序列,使元素在0.5秒内进行一次抖动动画。在动画序列中,我们设置了四个关键帧:起始状态、两个中间状态和结束状态。在中间状态时,元素先向左偏移5像素,然后再向右偏移5像素,模拟抖动效果。使用infinite参数可以让动画无限循环。

您可以将上述HTML和CSS代码添加到您的网页中,根据需要进行调整和修改,以实现适合您的抖动效果。
9.闪烁效果示例代码
以下是一个使用CSS实现闪烁效果的示例代码:

HTML代码:

CSS代码:

@keyframes blink {
0% { opacity: 1; } /* 动画起始状态为完全不透明 */
50% { opacity: 0; } /* 动画中间状态为完全透明 */
100% { opacity: 1; } /* 动画结束状态为完全不透明 */
}

.blink-effect {
animation: blink 1s infinite;
}

在上面的示例中,我们使用了一个包含文本内容的<div>元素,并为其添加了一个名为blink-effect的类。通过定义一个名为blink的动画序列,使元素在1秒内进行一次闪烁动画。在动画序列中,我们设置了三个关键帧:起始状态、中间状态和结束状态。在中间状态时,元素的透明度为0,即完全透明。使用infinite参数可以让动画无限循环。

您可以将上述HTML和CSS代码添加到您的网页中,根据需要进行调整和修改,以实现适合您的闪烁效果。
10.模糊效果示例代码
以下是一个使用CSS实现模糊效果的示例代码:

HTML代码:

这是一个文本内容

CSS代码:

.blur-effect {
filter: blur(5px); /* 设置模糊效果,模糊半径为5像素 */
}

在上面的示例中,我们使用了一个包含文本内容的<div>元素,并为其添加了一个名为blur-effect的类。通过设置filter属性为blur(5px),我们给元素添加了一个模糊效果,模糊半径为5像素。您可以根据需要调整模糊半径的数值。

请注意,模糊效果使用的是CSS的filter属性,该属性在某些旧版本的浏览器中可能不被支持。建议在使用时进行兼容性测试。

您可以将上述HTML和CSS代码添加到您的网页中,根据需要进行调整和修改,以实现适合您的模糊效果。

11.滚动效果示例代码
以下是一个使用CSS实现滚动效果的示例代码:

HTML代码:

这是一个文本内容

CSS代码:

.scroll-effect {
overflow: auto; /* 设置元素内容溢出时显示滚动条 */
height: 200px; /* 设置元素的高度为200像素,限制内容的显示区域 */
}

在上面的示例中,我们使用了一个包含文本内容的<div>元素,并为其添加了一个名为scroll-effect的类。通过设置overflow属性为auto,我们使元素在内容溢出时显示滚动条。并且通过设置height属性为200px,限制了内容的显示区域高度为200像素。

您可以将上述HTML和CSS代码添加到您的网页中,根据需要进行调整和修改,以实现适合您的滚动效果。

需要注意的是,滚动效果的实现可能涉及到父元素的高度、溢出属性和内容的大小等因素。请根据实际需求进行调整。
12.渐显渐隐效果示例代码
以下是一个使用CSS实现渐显渐隐效果的示例代码:

HTML代码:

这是一个文本内容

CSS代码:

.fade-effect {
animation: fade 2s infinite alternate;
}

@keyframes fade {
0% { opacity: 0; } /* 动画起始状态为完全透明 */
100% { opacity: 1; } /* 动画结束状态为完全不透明 */
}

在上面的示例中,我们使用了一个包含文本内容的<div>元素,并为其添加了一个名为fade-effect的类。通过定义一个名为fade的动画序列,使元素在2秒内进行一次渐显渐隐动画。在动画序列中,我们设置了两个关键帧:起始状态和结束状态。起始状态时,元素的透明度为0,即完全透明;结束状态时,元素的透明度为1,即完全不透明。使用infinite alternate参数可以让动画无限循环并且来回切换。

您可以将上述HTML和CSS代码添加到您的网页中,根据需要进行调整和修改,以实现适合您的渐显渐隐效果。
13.轮播效果示例代码
以下是一个使用CSS和JavaScript实现轮播效果的示例代码:

HTML代码:

图片1 图片2 图片3

CSS代码:

.slideshow {
width: 500px; /* 设置轮播容器的宽度 */
height: 300px; /* 设置轮播容器的高度 */
overflow: hidden; /* 隐藏溢出内容 */
}

.slideshow img {
width: 100%; /* 设置轮播图片的宽度为容器的宽度 */
height: 100%; /* 设置轮播图片的高度为容器的高度 */
object-fit: cover; /* 控制图片的缩放和裁剪方式,保持填充整个容器 */
}

JavaScript代码:

var slideshow = document.querySelector(‘.slideshow’);
var images = slideshow.getElementsByTagName(‘img’);
var currentImageIndex = 0;

function slide() {
// 隐藏当前图片
images[currentImageIndex].style.display = ‘none’;

// 计算下一张图片的索引
currentImageIndex = (currentImageIndex + 1) % images.length;

// 显示下一张图片
images[currentImageIndex].style.display = ‘block’;
}

// 每隔3秒切换图片
setInterval(slide, 3000);

在上面的示例中,我们使用了一个包含多张图片的<div>元素,并为其添加了一个名为slideshow的类。通过设置容器的宽度和高度,并隐藏溢出内容,实现了一个轮播容器。每张图片都被设置为容器的宽度和高度,并使用object-fit: cover属性来控制图片的缩放和裁剪方式,保持填充整个容器。

通过JavaScript代码,我们获取了轮播容器和其中的图片元素,并使用setInterval()函数每隔3秒调用一次slide()函数来切换图片。在slide()函数中,我们隐藏当前显示的图片,计算下一张图片的索引,并显示下一张图片。

您可以将上述HTML、CSS和JavaScript代码添加到您的网页中,根据需要进行调整和修改,以实现适合您的轮播效果。
14.翻页效果示例代码
以下是一个使用CSS和JavaScript实现翻页效果的示例代码:

HTML代码:

第一页

第二页

第三页

上一页 下一页

CSS代码:

.page-container {
width: 500px; /* 设置翻页容器的宽度 */
height: 300px; /* 设置翻页容器的高度 */
position: relative; /* 设置相对定位,用于容器内子元素的绝对定位 */
overflow: hidden; /* 隐藏溢出内容 */
}

.page {
width: 100%; /* 设置翻页页面的宽度为容器的宽度 */
height: 100%; /* 设置翻页页面的高度为容器的高度 */
position: absolute; /* 设置绝对定位,相对于容器进行定位 */
top: 0;
left: 0;
transition: transform 0.5s ease-in-out; /* 添加过渡效果,使页面切换平滑 */
}

.page1 {
background-color: #ffcccc; /* 设置第一页的背景颜色 */
}

.page2 {
background-color: #ccffcc; /* 设置第二页的背景颜色 */
transform: translateX(100%); /* 初始位置在容器右侧,实现页面切换效果 */
}

.page3 {
background-color: #ccccff; /* 设置第三页的背景颜色 */
transform: translateX(100%); /* 初始位置在容器右侧,实现页面切换效果 */
}

JavaScript代码:

var pageContainer = document.querySelector(‘.page-container’);
var pages = pageContainer.querySelectorAll(‘.page’);
var currentPageIndex = 0;

function showPage(index) {
// 隐藏当前页面
pages[currentPageIndex].style.transform = ‘translateX(-100%)’;

// 显示目标页面
pages[index].style.transform = ‘translateX(0)’;

// 更新当前页面索引
currentPageIndex = index;
}

// 上一页按钮点击事件处理函数
document.querySelector(‘.prev-button’).addEventListener(‘click’, function() {
var prevPageIndex = (currentPageIndex - 1 + pages.length) % pages.length;
showPage(prevPageIndex);
});

// 下一页按钮点击事件处理函数
document.querySelector(‘.next-button’).addEventListener(‘click’, function() {
var nextPageIndex = (currentPageIndex + 1) % pages.length;
showPage(nextPageIndex);
});

在上面的示例中,我们使用了一个包含多个页面的<div>容器,并为每个页面添加了一个名为page的类。通过设置容器和页面的宽度、高度以及定位属性,实现了一个翻页容器。每个页面都使用绝对定位,初始位置在容器的右侧,通过设置transform属性的translateX()值实现页面切换效果。

通过JavaScript代码,我们获取了翻页容器和其中的页面元素,并通过showPage()函数来显示目标页面。在showPage()函数中,我们使用transform属性来设置当前页面和目标页面的位置,并更新当前页面的索引。

通过给上一页按钮和下一页按钮添加点击事件处理函数,分别调用showPage()函数来切换到前一页和后一页。

您可以将上述HTML、CSS和JavaScript代码添加到您的网页中,根据需要进行调整和修改,以实现适合您的翻页效果。
15.背景图像效果示例代码
以下是一个使用CSS实现背景图像效果的示例代码:

HTML代码:

这是一个标题

CSS代码:

.background-effect {
background-image: url(‘background.jpg’); /* 设置背景图像的URL */
background-size: cover; /* 控制背景图像的缩放和裁剪方式,保持填充整个容器 */
background-position: center center; /* 控制背景图像在容器中的位置 */
background-repeat: no-repeat; /* 禁止背景图像的重复显示 */
height: 300px; /* 设置容器的高度 */
text-align: center; /* 设置文本居中对齐 */
color: #ffffff; /* 设置文本颜色为白色 */
}

在上面的示例中,我们使用了一个<div>元素作为背景效果的容器,并为其添加了一个名为background-effect的类。通过设置background-image属性为背景图像的URL,我们给容器添加了一个背景图像。使用background-size: cover属性来控制背景图像的缩放和裁剪方式,使其填充整个容器。通过background-position属性可以控制背景图像在容器中的位置,这里设置为居中对齐。使用background-repeat: no-repeat属性禁止背景图像的重复显示。同时,设置容器的高度为300像素,并通过text-align: center属性使文本居中对齐。最后,设置文本颜色为白色,以便与背景图像形成对比。

您可以将上述HTML和CSS代码添加到您的网页中,并根据需要调整和修改背景图像的URL、容器的高度以及文本样式等,以实现适合您的背景图像效果。
16.鼠标悬停效果示例代码
以下是一个使用CSS实现鼠标悬停效果的示例代码:

HTML代码:

鼠标悬停效果

CSS代码:

.hover-effect {
width: 200px; /* 设置容器的宽度 */
height: 200px; /* 设置容器的高度 */
background-color: #f1f1f1; /* 设置容器的背景颜色 */
transition: background-color 0.3s ease-in-out; /* 添加过渡效果,使背景颜色变化平滑 */
}

.hover-effect:hover {
background-color: #eaeaea; /* 设置鼠标悬停时容器的背景颜色 */
}

在上面的示例中,我们使用了一个<div>元素作为鼠标悬停效果的容器,并为其添加了一个名为hover-effect的类。通过设置容器的宽度、高度和背景颜色,我们创建了一个基本的容器样式。使用transition属性添加了一个过渡效果,使背景颜色的变化在0.3秒内平滑进行。

通过:hover伪类选择器,我们为容器添加了一个鼠标悬停时的样式。当鼠标悬停在容器上方时,容器的背景颜色会从初始颜色过渡到指定的悬停颜色。

您可以将上述HTML和CSS代码添加到您的网页中,并根据需要调整和修改容器的宽度、高度、背景颜色以及过渡效果的时间等,以实现适合您的鼠标悬停效果。
17.过渡效果示例代码
以下是一个使用CSS实现过渡效果的示例代码:

HTML代码:

过渡效果示例

CSS代码:

.transition-effect {
width: 200px; /* 设置容器的宽度 */
height: 200px; /* 设置容器的高度 */
background-color: #f1f1f1; /* 设置容器的背景颜色 */
transition: background-color 0.5s ease-in-out; /* 添加过渡效果,使背景颜色变化平滑 */
}

.transition-effect:hover {
background-color: #eaeaea; /* 设置鼠标悬停时容器的背景颜色 */
}

在上面的示例中,我们使用了一个<div>元素作为过渡效果的容器,并为其添加了一个名为transition-effect的类。通过设置容器的宽度、高度和背景颜色,我们创建了一个基本的容器样式。使用transition属性添加了一个过渡效果,使背景颜色的变化在0.5秒内以平滑的方式进行。

通过:hover伪类选择器,我们为容器添加了一个鼠标悬停时的样式。当鼠标悬停在容器上方时,容器的背景颜色会从初始颜色过渡到指定的悬停颜色。

您可以将上述HTML和CSS代码添加到您的网页中,并根据需要调整和修改容器的宽度、高度、背景颜色以及过渡效果的时间和缓动函数等,以实现适合您的过渡效果。
18.自定义动画示例代码
要自定义动画效果,您可以使用CSS的@keyframes规则来定义关键帧动画。以下是一个示例代码,展示如何自定义一个简单的动画效果:

HTML代码:

CSS代码:

.custom-animation {
width: 100px;
height: 100px;
background-color: red;
animation-name: custom-animation;
animation-duration: 2s;
animation-timing-function: ease-in-out;
animation-iteration-count: infinite;
}

@keyframes custom-animation {
0% {
transform: scale(1);
}
50% {
transform: scale(1.2);
background-color: blue;
}
100% {
transform: scale(1);
}
}

在上面的示例中,我们创建了一个<div>元素作为动画效果的容器,并为其添加了一个名为custom-animation的类。通过设置容器的宽度、高度和背景颜色,我们创建了一个基本的容器样式。

使用animation-name属性指定了我们定义的动画名称custom-animationanimation-duration属性设置了动画的持续时间为2秒。animation-timing-function属性指定了动画的缓动函数,这里使用了ease-in-out,表示动画以缓慢开始和结束。

animation-iteration-count属性指定了动画的重复次数,这里设置为infinite,表示无限重复。

接下来,使用@keyframes规则定义了我们的自定义动画。在0%关键帧中,我们将容器的缩放比例设置为1。在50%关键帧中,我们将容器的缩放比例设置为1.2,并同时改变背景颜色为蓝色。在100%关键帧中,我们将容器的缩放比例恢复为1。

您可以将上述HTML和CSS代码添加到您的网页中,并根据需要调整和修改容器的样式、动画的持续时间、缓动函数以及关键帧的属性,以实现您想要的自定义动画效果。

四、归纳总结

在这里插入图片描述CSS动画具有以下综合效益:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
img

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

无限重复。

接下来,使用@keyframes规则定义了我们的自定义动画。在0%关键帧中,我们将容器的缩放比例设置为1。在50%关键帧中,我们将容器的缩放比例设置为1.2,并同时改变背景颜色为蓝色。在100%关键帧中,我们将容器的缩放比例恢复为1。

您可以将上述HTML和CSS代码添加到您的网页中,并根据需要调整和修改容器的样式、动画的持续时间、缓动函数以及关键帧的属性,以实现您想要的自定义动画效果。

四、归纳总结

在这里插入图片描述CSS动画具有以下综合效益:

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注鸿蒙)
[外链图片转存中…(img-wHklPa1A-1713203195448)]

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 26
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值