day43-Feedback Ui Design(反馈ui设计)

这篇具有很好参考价值的文章主要介绍了day43-Feedback Ui Design(反馈ui设计)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

50 天学习 50 个项目 - HTMLCSS and JavaScript

day43-Feedback Ui Design(反馈ui设计)

效果

day43-Feedback Ui Design(反馈ui设计),50天50个小demo前端,ui,html5,css3,javascript,前端,反馈,动态按钮

day43-Feedback Ui Design(反馈ui设计),50天50个小demo前端,ui,html5,css3,javascript,前端,反馈,动态按钮文章来源地址https://www.toymoban.com/news/detail-611319.html

index.html

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Let Us Know Your Feedback</title>
    <!-- 图标库 -->
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.14.0/css/all.min.css"
        integrity="sha512-1PKOgIY59xJ8Co8+NE6FZ+LOAZKjy+KY8iq0G4B3CyeY6wYHN3yt9PW0XpSriVlkMXe40PTKnXrLnZ9+fkDaog=="
        crossorigin="anonymous" />
    <link rel="stylesheet" href="style.css" />
</head>

<body>
    <!-- 面板容器 -->
    <div id="panel" class="panel-container">
        <strong>你对我们的服务表现满意吗?</strong>
        <!-- 评级容器 -->
        <div class="ratings-container">
            <!-- 评级 -->
            <div class="rating">不好</div>

            <div class="rating">一般</div>

            <div class="rating active">满意</div>
        </div>
        <button class="button" id="send">发送</button>
    </div>
    <script src="script.js"></script>
</body>

</html>

style.css

/* 引入字体 */
@import url('https://fonts.googleapis.com/css?family=Montserrat&display=swap');

* {
    box-sizing: border-box;
}

body {
    background: url('https://source.unsplash.com/random') no-repeat center/cover;
    font-family: 'Montserrat', sans-serif;
    /* 子元素面板居中 */
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100vh;
    overflow: hidden;
    margin: 0;
}

/* 面板容器 */
.panel-container {
    background-color: #fff;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
    border-radius: 4px;
    /* 字体大小设置为父元素字体大小的百分比。 */
    font-size: 90%;
    /* 竖直居中 */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: 30px;
    max-width: 400px;
    transition: transform 0.5s linear;
}

/* 类似翻卡片的效果 */
.changeCard{
    transform: rotateY(360deg);
}
/* 标题 */
.panel-container strong {
    line-height: 20px;
}

/* 评级容器 */
.ratings-container {
    display: flex;
    margin: 20px 0;
}

/* 评级 */
.rating {
    flex: 1;
    cursor: pointer;
    padding: 20px;
    margin: 10px 5px;
    background: linear-gradient(145deg, #cacaca, #f0f0f0);
}

/* 选中该项时 */
.rating:hover,
.rating.active {
    border-radius: 4px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.98);
}


/* 发送按钮 */
.button {
    cursor: pointer;
    position: relative;
    padding: 10px 24px;
    font-size: 18px;
    color: rgb(98, 177, 193);
    border: 2px solid rgb(98, 136, 193);
    border-radius: 34px;
    background-color: transparent;
    font-weight: 600;
    /* 定义了一个自定义的贝塞尔曲线,使得动画起初缓慢,然后加速,在接近结束时再次缓慢,从而创建一个平滑的过渡效果。 */
    transition: all 0.3s cubic-bezier(0.23, 1, 0.320, 1);
    overflow: hidden;
}

/* 按钮悬浮时,背景的变化 */
.button::before {
    content: '';
    position: absolute;
    /* inset 属性是一个简写属性,设置了伪元素的 top、right、bottom 和 left 的值都为 0,即将伪元素放置在其容器元素的四个边界上。 */
    inset: 0;
    /* 居中 */
    margin: auto;
    /* 以上两个css属性使其从按钮中心放大 */
    width: 50px;
    height: 50px;
    /* 继承了按钮元素的 border-radius 属性 */
    border-radius: inherit;
    scale: 0;
    z-index: -1;
    background-color: rgb(114, 135, 238);
    transition: all 0.6s cubic-bezier(0.23, 1, 0.320, 1);
}

.button:hover::before {
    scale: 3;
}

.button:hover {
    color: #212121;
    scale: 1.1;
    box-shadow: 0 0px 20px rgba(193, 163, 98, 0.4);
}

.button:active {
    scale: 1;
}

/* 用于js中反馈后的显示文本的小红心 */
.fa-heart {
    color: red;
    font-size: 30px;
    margin-bottom: 10px;
}

script.js

// 重点 flex  事件委派 注意:html中必须有一个.rating添加active类,否则报错
// 1.获取元素节点
const ratings = document.querySelectorAll('.rating')//所有的评级选项
const ratingsContainer = document.querySelector('.ratings-container')//评级容器
const sendBtn = document.querySelector('#send')//发送按钮
const panel = document.querySelector('#panel')//展示面板
let selectedRating = '满意'
// 此处使用事件委派
ratingsContainer.addEventListener('click', (e) => {
    // console.log(e.target);//<div class="rating"> 一般 </div >
    // 移除原有的active
    document.querySelector('.rating.active').classList.remove('active')
    // 对当前点击的选项加active
    e.target.classList.add('active')
    selectedRating = e.target.innerText
    // console.log(selectedRating);
})
// 点击,发送显示结果
sendBtn.addEventListener('click', () => {
    panel.innerHTML = `
        <i class="fas fa-heart"></i>
        <strong>感谢!</strong>
        <br>
        <strong>您的反馈为: ${selectedRating}</strong>
        <p>我们将利用您的反馈来改进我们的服务</p>
    `
    panel.classList.add('changeCard')
})


到了这里,关于day43-Feedback Ui Design(反馈ui设计)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【QtQuick3D学习】使用Qt Design Studio设计UI并导入Qt Creator项目中使用——基于C++和Cmake

    新版本中项目文件全部放在了一起,见 【QtQuick3D学习】使用Qt Creator创建Qt Design Studio项目测试运行——基于C++和Cmake 【QtQuick3D学习】使用Qt Design Studio创建项目并使用Qt Creator打开测试运行——基于C++和Cmake 这里测试前后端分离,即使用Qt Design Studio设计前端和交互逻辑,C++写后

    2024年02月01日
    浏览(36)
  • Vue3的几款UI组件库:Naive UI、Element Plus、 Ant Design Vue、Arco Design

    vue3系列的三款ui框架简要对比: 框架 Element Plus Naive ui Ant Design Vue Arco Design 简介 element-ui Vue3版本,国内使用广泛 Vue作者推荐的Vue3ui 组件库 Ant Design 的 Vue 实现,组件的风格与 Ant Design 保持同步 ArcoDesign 主要服务于字节跳动旗下中后台产品的体验设计和技术实现 社区活跃度

    2024年02月03日
    浏览(45)
  • 【WPF】消息蒙版弹窗UI以及await实现等待反馈(popup)

    原版的消息框太丑?不喜欢?如果您对原版消息框的外观不太满意,或者不符合您的应用程序的需求,那么可以通过自定义消息框来实现所需的外观和功能。 原版的消息框: 可以看出这个消息框可能和你设计的UI界面格格不入 自定义消息框可以实现各种风格和布局的效果。

    2024年02月03日
    浏览(43)
  • ONES Design UI 组件库环境搭建

    这个 ONES Design UI 组件库 是基于 Ant Design 的 React UI 组件库,主要用于企业级研发管理工具的研发。 首先用 React 的脚手架搭建一个项目: 目前 ONES Design UI 组件库 托管在 ONES 私有的 npm 仓库上, 因此需要配置代理才能顺利访问并获取内容: 放心, 这里只是配置 @ones-design 代理,

    2024年02月05日
    浏览(36)
  • 26、react UI 组件库 Ant-design 蚂蚁金服UI组件库

    material-ui (国外) 官网:https://mui.com/zh/material-ui/getting-started/installation/ 这是国外非常流行的 react UI 组件库,但是在国内并不是很常用。 Ant-design UI组件库 官网:https://ant.design/index-cn 这是国内比较流行 react UI 组件库,又蚂蚁金服团队开发。这一篇博客主要来讲解在 react 项目中

    2024年02月08日
    浏览(36)
  • Vue3 UI组件库对比,Naive UI、Element Plus、 Ant Design Vue

    Element Plus Naive ui Ant Design Vue 简介 element-ui Vue3版本,国内使用广泛 Vue作者推荐的Vue3ui 组件库 阿里Ant Design设计规范的Vue实现版 地址 https://github.com/element-plus/element-plus https://github.com/tusen-ai/naive-ui https://github.com/vueComponent/ant-design-vue 社区活跃度 高 中 高 ui库组件主要实现方式

    2024年01月25日
    浏览(44)
  • 第12章 最佳的UI体验——Material Design实战

    其实长久以来,大多数人都认为Android系统的UI并不算美观,至少没有iOS系统的美观。以至于很多IT公司在进行应用界面设计的时候,为了保证双平台的统一性,强制要求Android端的界面风格必须和iOS端一致。 这种情况在现实工作当中实在是太常见了,因为对于一般用户来说,他

    2024年04月26日
    浏览(40)
  • Material Design:为你的 Android 应用提供精美的 UI 体验

    介绍 Material Design 概念:介绍 Material Design 是 Google 推出的一种设计语言,用于创建现代、美观、直观且一致的用户界面。解释 Material Design 的基本原则,包括材料元素、动画、颜色和排版等。 Material Design UI 元素:介绍常用的 Material Design UI 元素,如卡片、按钮、文本字段、图

    2024年02月01日
    浏览(40)
  • 基于Material Design风格开源、易用、强大的WPF UI控件库

    今天大姚给大家分享一款基于Material Design风格开源、免费(MIT License)、易于使用、强大的WPF UI控件库: MaterialDesignInXamlToolkit 。 MaterialDesignInXamlToolkit 是一个开源、易于使用、强大的 WPF UI 控件库,旨在帮助开发人员在 C# 和 VB.Net 中实现 Google 的 Material Design 风格的用户界面。

    2024年04月23日
    浏览(53)
  • 告别原始 UI 样式,拥抱 Fluent Design 风格 PyQt/PySide 组件库

    这是一个使用 PyQt/PySide 编写的 Fluent Design 风格的组件库,支持亮暗主题无缝切换和自定义主题色,搭配 QtDesigner 可以快速开发美观的界面。github 仓库地址为 https://github.com/zhiyiYo/PyQt-Fluent-Widgets ,演示视频可以在哔哩哔哩上观看。 轻量版 ( AcrylicLabel 不可用): 完整版: 如果项

    2024年02月10日
    浏览(28)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包