HTML+CSS制作一个动画(一)

简介: HTML+CSS制作一个动画

HTML+CSS制作一个动画

效果图如下:

HTML部分结构如下:

<!DOCTYPE html>
<html lang="zh-Hans">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>动画效果</title>
    <link rel="stylesheet" href="style.css">
</head>
<body>
    <div class="channel">
        扬帆起航&nbsp;成就梦想
    </div>
    <div class="container">
        <!-- 速度切换开关 -->
        <div id="switch">
            <div class="circle"></div>
        </div>
        <!-- 主画布 -->
        <div class="main">
            <!-- 太阳 -->
            <div class="sun">
                <span style="--i:1"></span>
                <span style="--i:2"></span>
                <span style="--i:3"></span>
                <span style="--i:4"></span>
                <span style="--i:5"></span>
                <span style="--i:6"></span>
                <span style="--i:7"></span>
                <span style="--i:8"></span>
            </div>
            <!-- 群山 让我们一起走过山川河流 -->
            <div class="mountain a"></div>
            <div class="mountain b"></div>
            <div class="mountain c"></div>
            <div class="mountain d"></div>
            <div class="mountain e"></div>
            <!-- 云和风 仰望天空,看见朵朵白云 -->
            <div class="cloud_wind_wrap_fast">
                <div class="cloud_wind_wrap_slow">
                    <div class="cloud_wind_group" style="--i:1">
                        <div class="cloud a">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="cloud b">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="cloud c">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="wind a">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="wind b">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="wind_small">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                    </div>
                    <div class="cloud_wind_group" style="--i:2">
                        <div class="cloud a">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="cloud b">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="cloud c">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="wind a">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="wind b">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="wind_small">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                    </div>
                    <div class="cloud_wind_group" style="--i:3">
                        <div class="cloud a">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="cloud b">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="cloud c">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="wind a">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="wind b">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                        <div class="wind_small">
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                            <span></span>
                        </div>
                    </div>
                </div>
            </div>
            <!-- 树 化作一个棵树,长在你必经的路旁 -->
            <div class="tree_wrap">
                <div class="tree">
                    <span></span>
                    <span></span>
                    <span></span>
                    <span></span>
                </div>
            </div>
            <!-- 风车 有风的日子里,你转落了谁的芳华 -->
            <div class="windmill_wrap">
                <!-- 风车 -->
                <div class="windmill">
                    <!-- 风车支架 -->
                    <div class="pole"></div>
                    <!-- 风车头部 -->
                    <div class="head">
                        <!-- 风车扇叶组合 -->
                        <div class="fan">
                            <!-- 风车扇叶*3 -->
                            <span style="--i:1"></span>
                            <span style="--i:2"></span>
                            <span style="--i:3"></span>
                        </div>
                    </div>
                </div>
                <!-- 风车 left -->
                <div class="windmill left">
                    <!-- 风车支架 -->
                    <div class="pole"></div>
                    <!-- 风车头部 -->
                    <div class="head">
                        <!-- 风车扇叶组合 -->
                        <div class="fan">
                            <!-- 风车扇叶*3 -->
                            <span style="--i:1"></span>
                            <span style="--i:2"></span>
                            <span style="--i:3"></span>
                        </div>
                    </div>
                </div>
                <!-- 风车 right -->
                <div class="windmill right">
                    <!-- 风车支架 -->
                    <div class="pole"></div>
                    <!-- 风车头部 -->
                    <div class="head">
                        <!-- 风车扇叶组合 -->
                        <div class="fan">
                            <!-- 风车扇叶*3 -->
                            <span style="--i:1"></span>
                            <span style="--i:2"></span>
                            <span style="--i:3"></span>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <script>
        // 找到switch元素
        let swch = document.getElementById('switch');
        // 找到container元素
        let container = document.querySelector('.container');
        // 绑定点击事件
        swch.addEventListener('click', (e) => {
            // 这里其实可以实用切换
            // swch.classList.toggle('switched');
            // 为后期预留操作空间所以使用下面的方式
            if (swch.classList.contains('switched')) {
                // 移除样式
                swch.classList.remove('switched');
                // 不选中是为快
                container.classList.remove('slow');
            } else {
                // 增加样式
                swch.classList.add('switched');
                // 选中是为慢
                container.classList.add('slow');
            }
        });
    </script>
</body>
</html>


HTML+CSS制作一个动画(二)https://developer.aliyun.com/article/1382470

相关文章
|
10天前
|
前端开发 JavaScript 开发者
CSS进阶-过渡与动画的事件监听
【6月更文挑战第16天】**CSS过渡和动画事件增强交互性,但监听与控制需谨慎。了解`transitionend`用于CSS过渡结束时的响应,避免过度使用JavaScript检测变化。示例代码展示如何绑定`transitionend`事件并在结束后执行操作。对于CSS动画,理解`animationstart`, `animationiteration`, `animationend`事件的生命周期至关重要,确保在动画结束后进行适当的清理。通过这些技巧,优化用户体验并提高代码效率。**
|
6天前
|
前端开发 JavaScript 程序员
前端深入之css篇丨初探【transform】,手把手带你实现1024程序员节动画
前端深入之css篇丨初探【transform】,手把手带你实现1024程序员节动画
|
5天前
|
前端开发
HTML+CSS练习小项目——百叶窗
HTML+CSS练习小项目——百叶窗
|
3天前
|
XML 前端开发 JavaScript
HTML、CSS、JavaScript有什么区别
HTML、CSS、JavaScript有什么区别
|
8天前
|
编解码 前端开发
编写代码中常见问题汇总(html和css)
text-indent用于首行缩进,line-height与height相同实现垂直居中;vertical-align:middle用于行内元素居中;text-align:center做水平居中;list-style:none清除列表符号;overflow:hidden隐藏溢出;background-repeat:no-repeat阻止平铺;float:left实现横排;相对定位父元素,绝对定位子元素;box-sizing调整盒子模型;用边框或overflow解决盒子塌陷;
30 5
|
11天前
|
前端开发 开发者 异构计算
CSS进阶-CSS动画关键帧
【6月更文挑战第15天】CSS的`@keyframes`创建细腻动画,定义样式变化阶段以增强网页互动性。通过`animation`属性应用动画,如`fadeIn`示例。常见问题包括动画结束状态、卡顿和浏览器兼容性,解决办法涉及优化关键帧、使用硬件加速和添加前缀。进阶技巧包括多步骤动画和控制播放状态。例如,背景色渐变动画展示了颜色随时间变化的效果。学习和实践关键帧动画,提升Web开发技能。
|
12天前
|
XML 前端开发 JavaScript
前端简介(HTML+CSS+JS)
前端简介(HTML+CSS+JS)
|
12天前
|
缓存 前端开发 JavaScript
从HTML、CSS以及其他方面介绍一些移动端网页性能优化的策略
【6月更文挑战第14天】本文探讨了移动端网页性能优化的重要性,并提出了HTML、CSS及其他方面的优化策略。HTML方面,建议精简结构、使用语义化标签、异步加载脚本和压缩文件。CSS优化包括简化样式、利用CSS3动画、媒体查询及压缩文件。其他策略涉及图片和字体优化、缓存利用、压缩传输数据、减少HTTP请求及监听网络状态。通过这些方法,可提升网页性能,改善用户体验。
15 1
|
6天前
|
移动开发 HTML5
杨校老师课堂之HTML5动画特效的风车案例
杨校老师课堂之HTML5动画特效的风车案例
12 0
|
8天前
|
XML 数据采集 前端开发
Python第二章(HTMl文件,CSS语言与第三方库Beautiful Soup)
Python第二章(HTMl文件,CSS语言与第三方库Beautiful Soup)