CSS动画(波光粼粼登录页面)

简介: CSS动画(波光粼粼登录页面)

1.整体效果

登录页面是用户旅程的起点,它的设计直接影响着用户对品牌的第一印象。一个具有创新性和视觉吸引力的登录页面可以激发用户的兴趣,提升用户体验。本文将探讨如何利用CSS技术为登录页面添加酷炫的波浪动画效果,这种动态效果不仅能够吸引用户的注意力,还能增强页面的现代感和创意性,从而提升整体的品牌形象。

2.完整代码

HTML

<!DOCTYPE html>  
<html lang="en">  
<head>  
    <meta charset="UTF-8">  
    <title>波光粼粼登录页面</title>  
    <link rel="stylesheet" type="text/css" href="6_4.css">  
</head>  
<body>  
  
<div class="header">  
    <div class="inner-header">  
        <div class="login-container">  
            <h2>登录</h2>  
            <form id="loginForm">  
                <div class="form-group">  
                    <label for="username">用户名:</label>  
                    <input type="text" id="username" name="username" required>  
                </div>                <div class="form-group">  
                    <label for="password">密码:</label>  
                    <input type="password" id="password" name="password" required>  
                </div>                <button type="submit">登录</button>  
            </form>            <p id="error-message" class="error-message"></p>  
        </div>    </div>    <!--Waves Container-->  
    <div>  
        <svg                class="waves"  
                xmlns="http://www.w3.org/2000/svg"  
                xmlns:xlink="http://www.w3.org/1999/xlink"  
                viewBox="0 24 150 28"  
                preserveAspectRatio="none"  
                shape-rendering="auto"  
        >  
            <defs>                <path                        id="gentle-wave"  
                        d="M-160 44c30 0 58-18 88-18s 58 18 88 18 58-18 88-18 58 18 88 18 v44h-352z"  
                />  
            </defs>            <g class="parallax">  
                <use                        xlink:href="#gentle-wave"  
                        x="48"  
                        y="0"  
                        fill="rgba(255,255,255,0.7"  
                />  
                <use                        xlink:href="#gentle-wave"  
                        x="48"  
                        y="3"  
                        fill="rgba(255,255,255,0.5)"  
                />  
                <use                        xlink:href="#gentle-wave"  
                        x="48"  
                        y="5"  
                        fill="rgba(255,255,255,0.3)"  
                />  
                <use xlink:href="#gentle-wave" x="48" y="7" fill="#fff" />  
            </g>        </svg>    </div>    <!--Waves end-->  
</div>  
  
</body>  
</html>

CSS

body {  
    margin: 0;  
}  
  
h1 {  
    font-family: "Lato", sans-serif;  
    font-weight: 300;  
    letter-spacing: 2px;  
    font-size: 48px;  
}  
p {  
    font-family: "Lato", sans-serif;  
    letter-spacing: 1px;  
    font-size: 14px;  
    color: #333333;  
}  
  
.header {  
    position: relative;  
    text-align: center;  
    background: linear-gradient(  
            60deg,  
            rgba(84, 58, 183, 1) 0%,  
            rgba(0, 172, 193, 1) 100%  
    );  
    color: white;  
}  
.logo {  
    width: 50px;  
    fill: white;  
    padding-right: 15px;  
    display: inline-block;  
    vertical-align: middle;  
}  
  
.inner-header {  
    height: 75vh;  
    width: 100%;  
    margin: 0;  
    padding: 120px 0 0;  
    box-sizing: border-box;  
}  
  
.flex {  
    /*Flexbox for containers*/  
    display: flex;  
    justify-content: center;  
    align-items: center;  
    text-align: center;  
}  
  
.waves {  
    position: relative;  
    width: 100%;  
    height: 15vh;  
    margin-bottom: -7px; /*Fix for safari gap*/  
    min-height: 100px;  
    max-height: 150px;  
}  
  
.content {  
    position: relative;  
    height: 20vh;  
    text-align: center;  
    background-color: white;  
}  
  
/* Animation */  
  
.parallax > use {  
    animation: move-forever 25s cubic-bezier(0.55, 0.5, 0.45, 0.5) infinite;  
}  
.parallax > use:nth-child(1) {  
    animation-delay: -2s;  
    animation-duration: 7s;  
}  
.parallax > use:nth-child(2) {  
    animation-delay: -3s;  
    animation-duration: 10s;  
}  
.parallax > use:nth-child(3) {  
    animation-delay: -4s;  
    animation-duration: 13s;  
}  
.parallax > use:nth-child(4) {  
    animation-delay: -5s;  
    animation-duration: 20s;  
}  
@keyframes move-forever {  
    0% {  
        transform: translate3d(-90px, 0, 0);  
    }  
    100% {  
        transform: translate3d(85px, 0, 0);  
    }  
}  
/*Shrinking for mobile*/  
@media (max-width: 768px) {  
    .waves {  
        height: 40px;  
        min-height: 40px;  
    }  
    .content {  
        height: 30vh;  
    }  
    h1 {  
        font-size: 24px;  
    }  
}  
  
.login-container {  
    padding: 20px;  
    border-radius: 25px;  
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);  
  
    width: 300px; margin: 0 auto 0;  
    text-align: center;  
}  
  
.login-container h2 {  
    margin-bottom: 20px;  
}  
  
.form-group {  
    margin-bottom: 15px;  
    text-align: left;  
}  
  
.form-group label {  
    display: block;  
    margin-bottom: 5px;  
}  
  
.form-group input {  
    width: 100%;  
    padding: 8px;  
    box-sizing: border-box;  
}  
  
button {  
    width: 100%;  
    padding: 10px;  
    background-color: #ed813e;  
    color: white;  
    border: none;  
    border-radius: 5px;  
    cursor: pointer;  
    font-size: 16px;  
}  
  
button:hover {  
    background-color: #0056b3;  
}  
  
.error-message {  
    color: red;  
    margin-top: 10px;  
}
相关文章
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
伪类:伪类这个叫法源自于它们跟类相似,但实际上并没有类会附加到标记中的标签上。 伪类分为两种(以及新增的伪类选择器): UI伪类:会在HTML元素处于某种状态时(例如:鼠标指针位于连接上),为该元素应用CSS样式。 :hover 结构化伪类:会在标记中存在某种结构上的关系时 例如: 某元素是一组元素中的第一个或最后一个,为该元素应用CSS样式。 :not和:target(CSS3新增的两个特殊的伪类选择器)
1161 2
|
前端开发 JavaScript
CSS 过渡和动画
CSS过渡和动画是用于为网页元素添加动态效果的两种重要技术
726 143
|
自然语言处理 前端开发 JavaScript
用 通义灵码 一键生成“水波纹按钮”,连 CSS 动画都不用自己写了!
通义灵码是一款智能编程辅助工具,它可以根据自然语言指令自动生成高质量的代码。例如,只需输入“生成一个按钮,点击时带水波纹动画,模拟 Material Ripple 效果”,它就能生成具备完整交互逻辑、CSS 动画和良好性能的按钮组件。不仅如此,它还支持拓展功能,如长按触发提示、添加图标等,并能自动优化样式适配不同场景。通过通义灵码,开发者可以大幅提升效率,专注于创意实现,而不必纠结于繁琐的代码细节。
|
9月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
Animation属性 css3为Animation动画提供的几个属性如下: 属性名 属性值 animation-name 指定动画名称,该属性指定一个已有的关键帧定义。 animation-duration 指定动画持续时间。 animation-timing-funtion 指定动画变化速度。 animation-delay 指定动画延迟多长时间才开始执行。 animation-iteration-count 指定动画的循环执行次数。 animation:这是一个复合属性。
553 3
|
前端开发 JavaScript
如何使用CSS过渡实现页面元素的淡入淡出效果?
如何使用CSS过渡实现页面元素的淡入淡出效果?
695 79
|
前端开发
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
1267 1
【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
css3 svg制作404页面动画效果HTML源码
css3 svg制作404页面动画效果HTML源码
317 34
|
前端开发 JavaScript 容器
|
存储 前端开发 JavaScript
仿真银行app下载安装, 银行卡虚拟余额制作app,用html+css+js实现逼真娱乐工具
这是一个简单的银行账户模拟器项目,用于学习前端开发基础。用户可进行存款、取款操作,所有数据存储于浏览器内存中

热门文章

最新文章

  • 1
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(九):强势分析Animation动画各类参数;从播放时间、播放方式、播放次数、播放方向、播放状态等多个方面,完全了解CSS3 Animation
    553
  • 2
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(八):学习transition过渡属性;本文学习property模拟、duration过渡时间指定、delay时间延迟 等多个参数
    427
  • 3
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(七):学习ransform属性;本文学习 rotate旋转、scale缩放、skew扭曲、tanslate移动、matrix矩阵 多个参数
    428
  • 4
    (CSS)使用Flex布局,帮助你快速了解各种基本的Flex布局属性以及帮你让元素快速达到布局中的指定位置!
    276
  • 5
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(六):全方面分析css的Flex布局,从纵、横两个坐标开始进行居中、两端等元素分布模式;刨析元素间隔、排序模式等
    539
  • 6
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(五):背景属性;float浮动和position定位;详细分析相对、绝对、固定三种定位方式;使用浮动并清除浮动副作用
    716
  • 7
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(四):元素盒子模型;详细分析边框属性、盒子外边距
    1395
  • 8
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(三):元素继承关系、层叠样式规则、字体属性、文本属性;针对字体和文本作样式修改
    308
  • 9
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
    1161
  • 10
    【CSS】前端三大件之一,如何学好?从基本用法开始吧!(一):CSS发展史;CSS样式表的引入;CSS选择器使用,附带案例介绍
    497