分享CSS3 H5 模拟双色球效果

2015年03月26日 11:11 1 点赞 0 评论 更新于 2025-11-21 18:35

源码

以下是使用 CSS3 和 H5 模拟双色球效果的完整代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>CSS3 H5 模拟双色球效果</title>
<style>
/* 全局样式,去除默认的外边距和内边距 */
* {
margin: 0;
padding: 0;
}

/* 头部样式,设置字体加粗 */
header {
font-weight: bold;
}

/* 去除无序列表的默认样式 */
ul {
list-style: none outside none;
}

/* 红球区容器样式 */
#reddiv {
width: 660px;
float: left;
}

/* 蓝球区容器样式 */
#bluediv {
width: 400px;
float: left;
margin: 0 0 0 60px;
}

/* 每个球的基本样式 */
li {
display: inline-block;
margin: 8px 5px;
padding: 5px;
width: 30px;
height: 30px;
font: bold 18px/30px arial;
border: 1px #ddd solid;
color: #444;
border-radius: 31px;
text-align: center;
/* 背景渐变,兼容 WebKit 内核浏览器 */
background-image: -webkit-radial-gradient(circle at top, rgb(247, 247, 247), rgb(222, 222, 222));
/* 标准的背景渐变 */
background-image: radial-gradient(circle at top, rgb(247, 247, 247), rgb(222, 222, 222));
}

/* 鼠标悬停在球上的样式 */
ul > li:hover {
cursor: pointer;
background-image: -webkit-radial-gradient(circle at top, rgb(247, 247, 247), rgb(255, 204, 204));
background-image: radial-gradient(circle at top, rgb(247, 247, 247), rgb(255, 204, 204));
}

/* 红球区头部样式,设置为红色 */
#reddiv header {
color: red;
}

/* 蓝球区头部样式,设置为蓝色 */
#bluediv header {
color: blue;
}

/* 选中的红球样式 */
.redball {
color: #fff;
background-image: -webkit-radial-gradient(circle at top, rgb(255, 51, 51), rgb(255, 0, 0));
background-image: radial-gradient(circle at top, rgb(255, 51, 51), rgb(255, 0, 0));
}

/* 选中的蓝球样式 */
.blueball {
color: #fff;
background-image: -webkit-radial-gradient(circle at top, rgb(0, 85, 204), rgb(0, 0, 225));
background-image: radial-gradient(circle at top, rgb(0, 85, 204), rgb(0, 0, 225));
}
</style>
</head>
<body>
<!-- 红球区 -->
<div id="reddiv">
<header>红球区</header>
<ul>
<li>01</li>
<li>02</li>
<li>03</li>
<li>04</li>
<li>05</li>
<li>06</li>
<li>07</li>
<li>08</li>
<li>09</li>
<li>10</li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
<li>17</li>
<li>18</li>
<li>19</li>
<li>20</li>
<li>21</li>
<li>22</li>
<li>23</li>
<li>24</li>
<li>25</li>
<li>26</li>
<li>27</li>
<li>28</li>
<li>29</li>
<li>30</li>
<li>31</li>
<li>32</li>
<li>33</li>
</ul>
</div>
<!-- 蓝球区 -->
<div id="bluediv">
<header>蓝球区</header>
<ul>
<li>01</li>
<li>02</li>
<li>03</li>
<li>04</li>
<li>05</li>
<li>06</li>
<li>07</li>
<li>08</li>
<li>09</li>
<li>10</li>
<li>11</li>
<li>12</li>
<li>13</li>
<li>14</li>
<li>15</li>
<li>16</li>
</ul>
</div>
<!-- 引入 Zepto 库 -->
<script src="http://cdn.bootcss.com/zepto/1.1.4/zepto.min.js"></script>
<script>
Zepto(function ($) {
// 为红球区的球添加点击事件,切换选中样式
$('#reddiv ul>li').click(function () {
$(this).toggleClass('redball');
});

// 为蓝球区的球添加点击事件,切换选中样式
$('#bluediv ul>li').click(function () {
$(this).toggleClass('blueball');
});
});
</script>
</body>
</html>

代码解释

  1. HTML 结构

    • 使用两个 div 分别表示红球区和蓝球区,每个 div 包含一个 header 标签用于显示区域名称,以及一个 ul 列表用于显示球号。
    • 每个球号使用 li 标签表示。
  2. CSS 样式

    • 通过 * 选择器去除全局的默认外边距和内边距。
    • header 标签设置加粗字体。
    • 去除 ul 列表的默认样式。
    • 分别为红球区和蓝球区的容器设置宽度和浮动样式。
    • 为每个球设置基本样式,包括大小、字体、边框、背景渐变等。
    • 当鼠标悬停在球上时,改变背景渐变颜色。
    • 为选中的红球和蓝球设置不同的背景渐变颜色和字体颜色。
  3. JavaScript 交互

    • 引入 Zepto 库,它是一个轻量级的 JavaScript 库,类似于 jQuery。
    • 为红球区和蓝球区的球添加点击事件,当点击球时,使用 toggleClass 方法切换球的选中样式。

通过以上代码,我们可以实现一个简单的 CSS3 H5 模拟双色球效果,用户可以点击球来选择自己心仪的号码。

作者信息

menghao

menghao

共发布了 3994 篇文章