用css实现投票效果

vue实践局部组件需求-投票 vue实践局部组件需求-投票 投票 局部组件实践和组件之间的嵌套: 1.搭建结构(html+css布局) 2.在组件标签中拆分成多个局部组件 3.删除第一步的搭建结构(html+css布局)代码 4.在组件中调取渲染使用 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device- 阅读详情

用css实现投票效果

效果

在这里插入图片描述

React代码

// 投票组件
import React ,{FC,useState,useEffect}from 'react'
import styles from './index.less'

const Vote:FC= ()=>{

const voteData2 = ["10%","50%","100%","70%","90%"] //模拟的投票结果数据

const[voteData,setVoteDate] = useState(["0%","0%","0%","0%","0%"]) //投票结果

const [checkId,setCheckId] = useState(0) //选择的投票项

const vote = (id:number)=>{
  setCheckId(id)
  setVoteDate(voteData2)
}

useEffect(()=>{
  /*

  rem单位
	rem是css中的一个尺寸单位,和px、%,em(相对于父元素的字体大小)单位一样都是设置大小

	rem:html字体大小的多少倍

	用法:
	设置rem大小:
		方式一
			document.documentElement.style.fontSize=(document.documentElement.clientWidth/750)*100+'px';
		方式二:
			document.documentElement.style.fontSize='10vw';
				即1rem等于屏幕宽度的10分之一,若宽为375px,则1rem=37.5px;
	
		750px是当前流行美工稿大小;
		
		所以根据用法可得:
			 保证在750px大小的设备当中,1 rem=100px;
				在350px大小的设备中,1 rem=50px;
  */
  	document.documentElement.style.fontSize=(document.documentElement.clientWidth/750)*100+'px';
},[])

const arr = [
  {id:1,text:"投票项1"},
  {id:2,text:"投票项2"},
  {id:3,text:"投票项3"},
  {id:4,text:"投票项4"},
  {id:5,text:"投票项5"},
]

  return(
    <div className={styles.vote}>
      {
        arr.map((voteitem,index)=>{
          return(
            <div className={styles.voteContain} onClick={checkId===0?()=>vote(voteitem.id):undefined}  key={voteitem.id}>
              {/* 根据投票百分比占位的div */}
                <div className={styles.rs} style={{width:`${voteData[index]}`, transition:"width 2s"}}/>
                <ul>
                  <li  className={checkId===voteitem.id?styles.liCheck:styles.li}>
                    <span>{voteitem.text}</span>
            
                     <span className={styles.data} style={{opacity:checkId===0?"0":"1"}}>{voteData[index]}</span>
                  </li>
                </ul>
                
            </div>
          )
        })
      }
    </div>
  )
}

export default Vote

css代码


.vote{
  .voteTip{
    width: 4.68rem;
    margin: 0.4rem 0 0.1rem 0;
  }

  .voteContain{
    background-color: #D8C9B8;
    width: 5.19rem;
    height: 0.51rem;
    border-radius: 0.25rem;
    margin: 0.1rem auto;
    color: #432209;
    font-size: 0.28rem;
    font-weight: 300;
    position: relative;

    ul{
      position: relative;
      z-index: 1;
       text-align: left;
      .li{
        list-style-type: none;
        background: url('../../img/vote/circle.png') ;
        background-repeat:  no-repeat;
        background-size: 0.17rem 0.17rem;
        background-position: 0 0.15rem;
        text-indent: 1.5em;
      }
      .liCheck{
        list-style-type: none;
        background: url('../../img/vote/circle2.png') ;
        background-repeat:  no-repeat;
        background-size: 0.17rem 0.17rem;
        background-position: 0 0.15rem;
        text-indent: 1.5em;
      }
    }

    .rs{
      height: 0.51rem;
      border-radius: 0.25rem;
      background-color: #DFB297;
      position: absolute;
      left: 0;
      bottom: 0;
    }
    .data{
      font-weight: 400;
       position: absolute;
       right: 0.4rem;
       transition: opacity 1s;
    }
  }
}

总结

1、动画效果通过过渡属性来做

 <div className={styles.rs} style={{width:`${voteData[index]}`, transition:"width 2s"}}/>

2、改变li样式,区分选择和未选择效果

.li{
        list-style-type: none;
        background: url('../../img/vote/circle.png') ;
        background-repeat:  no-repeat;
        background-size: 0.17rem 0.17rem;
        background-position: 0 0.15rem;
        text-indent: 1.5em;
      }
.liCheck{
   list-style-type: none;
   background: url('../../img/vote/circle2.png') ;
   background-repeat:  no-repeat;
   background-size: 0.17rem 0.17rem;
   background-position: 0 0.15rem;
   text-indent: 1.5em;
 }

这个投票功能的实现还是比较简单的,有一点css基础就基本能做出来了

CSS实现实现票据效果 mask与切图方式 本文介绍了一种特殊的“切图”手法实现票据效果,将切图与CSSMASK结合起来,既保留了“切图”的简单暴力,又满足了CSS自适应的特点,下面简单总结一下传统的“切图”简单暴力,但往往缺少适应性:尺寸自适应和颜色自适应图形布尔运算主要有:合并形状、减去顶层、交叉形状、排除重叠CSSMASKcomposite刚好也有相同的特性可以从整体反向考虑,将难以实现的部分由“切图”完成,然后通过mask从整体减去这一部分由于缺口部分是通过CSS定位实现,因此可以确保整体的自适应性。 阅读详情

相关推荐

CSS实现星型投票效果

CSS实现星型投票效果 仿图片效果,很不错。

投票显示js+css(原创)

最近给公司做了个投票系统,不过投票结果显示是用flash做的HOHO全都是动态的饼图,主图,还有曲线图但是看到国外有用js写的动态效果于是自己写了个小例子HOHO/** * 动态设置大小 * @param obj_id,动态显示div的id * @param max,最大票数 * @madeby ok7758521ok ok7758521ok@126.com> */function s

2000

Voting_System:使用HTML和CSS制作的简单投票管理系统。 后端将在以后添加

投票系统 使用HTML和CSS制作的简单投票管理系统。 后端将在以后添加。

简易在线投票系统(php)——前端设计(css)

css.css@charset "utf-8"; body{ margin:0px; padding:0px; height:auto; font-size:14px; color:#666; } a{ text-decoration:none; color:#999; } a:hover{ color:#CCC; } #bottom{ width:10px; height:1

THE_ZERO 1666

js+css生成的投票结果统计图

基于JavaScript和css生成的投票结果统计图。

基于Java、JavaScript、CSS的SSM+MySQL网络投票系统设计源码

该项目是一款基于Java、JavaScript和CSS的SSM+MySQL架构的网络投票系统,包含73个文件,包括23个Java源文件、14个JSP页面、10个XML配置文件、3个JavaScript文件、2个CSS样式表、2个属性文件以及2个SQL脚本文件。系统设计完善,适用于各类网络投票场景。

投票管理系统的设计与实现(项目实现)

投票管理系统的设计与实现 一、概述 此次实训项目我选择了开发一个投票管理系统,使用了springboot框架来构建项目,mysql作为后台数据库平台,前端使用了bootstrap,Echarts来对数据进行可视化,使用了安全框架shiro来对项目进行安全管理,里面加入了Redis来实现缓存,里面有些功能还未实现,例如,投票时间过期自动消失,这个问题我暂时想的是利用Redis去实现,设置过期实现,自动消失。慢慢来啦,这也算是springboot的helloword项目。 二、总体设计 项目总共从三个模块进行分

zzq1216678132的博客 1万+

C++笔试题整理

目录 1. 笔试题1 1.1 链表反转 1.2 String 2. 笔试题2 2.1 求下面函数的返回值(微软) 2.2 什么是“引用”?申明和使用“引用”要注意哪些问题? 2.3 将“引用”作为函数参数有哪些特点? 2.4 在什么时候需要使用“常引用”?  2.5 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则? 2.6 “引用”与多态的关系? 2.7 “引用”与指针的区别是什么? 2.8 什么时候需要“引用”? 2.9 结构与联合有和区别? 2.10 下面关于.

星月相随的专栏 2484

投票排行榜网站(HTML+CSS+JS)

投票网站,实时更新投票结果排行榜。前端基础知识练习项目

llssdshiyi的博客 7442

从零到一:基于GeneMark-ES/ET的新基因组注释实战指南

本文提供了一份基于GeneMark-ES/ET的新基因组注释实战指南。详细介绍了从环境搭建、数据准备到核心运行的全流程,重点解析了ES(从头预测)与ET(结合RNA-Seq证据)两种模式的选择与操作,并分享了Perl模块依赖、并行处理等常见问题的解决方案,帮助生物信息学研究者高效完成基因预测工作。

weixin_29266647的博客 209

多核异构处理器核间通信:从共享内存到RPMsg协议的实战解析

在多核异构处理器架构中,核间通信是实现高效协同计算的核心技术。其基本原理是通过共享内存作为数据交换的物理媒介,配合硬件信号机制实现同步与通知。从技术价值看,它解决了不同架构核心间的数据共享与指令协同问题,是释放异构计算潜力的关键。在应用场景上,该技术广泛应用于智能物联网设备、汽车电子和工业控制等领域,用于连接高性能应用处理器与实时微控制器。本文以典型的ARM Cortex-A与Cortex-M组合为例,深入剖析了基于共享内存和RPMsg协议的通信机制,涵盖了从硬件基础到软件协议栈的完整实现链路,并提供了针对

weixin_26969269的博客 448

html中显示投票结果,纯div+css投票票数百分比柱状效果实现 | 编程知识库

css实现投票百分比统计效果,去年在一个医生评价的投票项目里面用过,先上下效果图吧!html代码25.0% (1/4)非常满意 25.0% (1/4)满意0.0% (0/4) 一般0.0% (0/4) 差50.0% (2/4) 很差css代码#graphbox{border:1px solid #e7e7e7;padding:10px;width:545px;background-...

weixin_34260080的博客 1036

【IT小趣闻】免费的DeepSeek是如何赚钱的?

导语:目前很多的通用人工智能也就是所谓的AGI例如文心一言、豆包、通义千问和最近大火的DeepSeek都是免费给普通用户使用的,对开源商业模式不太熟悉的普通人可不太了解这免费背后的商业套路,下面我们就一起来揭秘。开源模式能降低用户信任成本、加速技术普及,而商业化服务则针对企业级需求。DeepSeek 可通过组合上述策略,在服务开发者社区的同时,满足企业客户的深度需求,实现可持续发展。你也看出来了,上边是DeepSeek生成的,讲的还是挺明白的。

SunMy的博客 1768

js实现投票demo

实现投票小demo

肥学的博客 1842

OpenClaw进行安全测试(附使用场景案例)

test-master 是一个全面的测试专家,覆盖功能测试、性能测试、安全测试三大领域。这里我们重点来看下使用test-master如何进行安全测试。使用 test-master 时,可以针对以下高频领域进行专项安全扫描:✅ OWASP Top 10 测试✅ SQL 注入测试✅ XSS 测试✅ CSRF 测试✅ 认证 / 授权测试。

十二测试录 332

Android BLE扫描指南:解决设备发现问题

假设你正在开发一个MAUI应用,用于扫描并连接到BLE设备。你的代码在Windows上运行得很好,但在Android上却无法发现任何设备。尽管你已经在中声明了必要的权限,并且在运行时请求这些权限,扫描还是无法工作。

m0_62153576的博客 224

PHP修改投票样式,PHP结合jQuery实现红蓝投票功能特效

这是一个非常实用的投票实例,应用在双方观点对抗投票场景。用户可以选择支持代表自己观点的一方进行投票,本文以红蓝双方投票为例,通过前后台交互,直观展示红蓝双方投票数和所占比例,应用非常广泛。本文是一篇综合知识应用类文章,需要您具备PHP、jQuery、MySQL以及html和css方面的基本知识。本文在《PHP+MySql+jQuery实现的“顶”和“踩”投票功能》一文基础上做了适当改进,共用了数据...

weixin_42320332的博客 187

从原理到落地:Mamba-YOLOv8 全面实战指南(源码 + 训练 + 部署一次学会)

在目标检测领域,CNN与Transformer的较量从未停歇。本文提出一种革命性的架构——,将状态空间模型(SSM)首次引入YOLO框架。实验表明,该模型在COCO数据集上达到54.3% mAP@0.5,推理速度达89 FPS(RTX 4090),相比原版YOLOv8提升12.7%精度与23%速度。本文将完整揭示其技术原理与工程实现,助您掌握这一前沿技术。

FJN110的博客 121

html选美投票,Html投票插件

Html多组合投票插件,初始化时只需要传入Json格式的数据,点击图标自动 1。可以通过修改CSS代码来自定义样式,颜色值等等。示例演示在底部。CSS:#VoteMain{width:500px;height:400px;margin:0auto;margin-top:0px;padding:20px20px20px20px;}.VoteItem{width:100px;h...

weixin_39911056的博客 456

JavaFx 教程

JavaFx 教程

2012年开始工作,全栈开发老兵,目前已是一个老师,分享这么多年的心得体会 784

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

原生JS投票特效

效果:http://hovertree.com/texiao/js/24/ 效果图: 代码如下: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS+CSS实现投票效果 - 何问起</title> <link...

weixin_34148508的博客 229

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

php多按钮投票,PHP开发 红蓝两方投票功能教程之HTML页面

||红蓝投票功能#main{width: 600px;margin: 0 auto;border: 1px solid #050205;}.vote{width:358px; height:300px; margin:40px auto;position:relative}.votetitle{width:100%;height:62px; background:url(/images/icon....

weixin_35645460的博客 214

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

数据库投票票数统计HTML,js投票数量统计代码

使用方法:1、head引入css文件2、body引入部分投票公布50%50%红队投票数:0蓝队投票数:0window.onload = function () {//获取div1及下面的divvar oDiv = document.getElementById('div1');var aDiv = oDiv.getElementsByTagName('div');//获取点击按钮var aBtn ...

weixin_31440583的博客 817

JS投票系统

投票系统 function initialEvents() { var tds = document.getElementById('mytable').getElementsByTagName('td'); for (var i = 0; i < tds.length; i++) { tds[i].onm...

iteye_2411的博客 432

基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码

造 漂亮 动态 友好的 精选随机色彩 投票百分比展示 效果 HTML结构: 复制代码 代码如下: A: 79(2%) B: 1986(61%) C: 1153(36%) D: 415(13%) 5: 89(3%)

—————————————— 2853

Ajax + Jquery页面无刷新投票

jQuery ajax投票特效,带动画效果 柱状图 $(document).ready(function() { $("#container div a").click(function() { $(this).parent().animate({ width: '+=100px' }, 500); $(this).

葛二蛋的博客 1882
上一篇: 获取视频第一帧图片并上传
下一篇: css实现翻牌抽奖效果
神说要有光 ye
博客等级 码龄8年 463粉丝 26原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值