我正在参加「创意开发 投稿大赛」详情请看:掘金创意开发大赛来了!
效果演示
背景
之前在做自己的项目的时候有对物体打分的环节,当时采用的是直接文字输入的方式,后来考虑到用户体验就改成了现在星星打分比较便捷,我们来看看具体是怎样实现的。
具体实现
我们先引入cdn
<link rel='stylesheet' href='https://cdnjs.cloudflare.com/ajax/libs/ionicons/4.5.6/css/ionicons.min.css'>
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>
创建一个星星
<input type="radio" name="rating" id="1" value="1" />
<label for="1"><i class="icon ion-md-star-outline"></i></label>
我们先设置星星的选择内容设置它的元素展示方式为块,主轴方向为从右到左,字体为Ionicons
.rating {
display: flex;
flex-direction: row-reverse;
font-family: "Ionicons";
}
一些总结
设置星星的图标
.rating label {
position: relative;
margin-right: 6px;
font-size: 5em;
color: gold;
cursor: pointer;
transition: 0.5s;
}
.rating label:hover {
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
.rating label::before {
position: absolute;
content: "\f384";
opacity: 0;
transition: 0.5s;
}
关于cursor 属性规定所显示的指针(光标)的类型。
url | 需被使用的自定义光标的URL注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标。 | |
---|---|---|
default | 默认光标(通常是一个箭头) | |
auto | 默认。浏览器设置的光标。 | |
crosshair | 光标呈现为十字线。 | |
pointer | 光标呈现为指示链接的指针(一只手) | |
move | 此光标指示某对象可被移动。 | |
e-resize | 此光标指示矩形框的边缘可被向右(东)移动。 | |
ne-resize | 此光标指示矩形框的边缘可被向上及向右移动(北/东)。 | |
nw-resize | 此光标指示矩形框的边缘可被向上及向左移动(北/西)。 | |
n-resize | 此光标指示矩形框的边缘可被向上(北)移动。 | |
se-resize | 此光标指示矩形框的边缘可被向下及向右移动(南/东)。 | |
sw-resize | 此光标指示矩形框的边缘可被向下及向左移动(南/西)。 | |
s-resize | 此光标指示矩形框的边缘可被向下移动(北/西)。 | |
w-resize | 此光标指示矩形框的边缘可被向左移动(西)。 | |
text | 此光标指示文本。 | |
wait | 此光标指示程序正忙(通常是一只表或沙漏)。 | |
help | 此光标指示可用的帮助(通常是一个问号或一个气球)。 | |
--- | --- | |
关于transform的总结
none | 定义不进行转换。 | |
---|---|---|
matrix(n,n,n,n,n,n) | 定义 2D 转换,使用六个值的矩阵。 | |
matrix3d(n,n,n,n,n,n,n,n,n,n,n,n,n,n,n,n) | 定义 3D 转换,使用 16 个值的 4x4 矩阵。 | |
translate(x,y) | 定义 2D 转换。 | |
translate3d(x,y,z) | 定义 3D 转换。 | |
translateX(x) | 定义转换,只是用 X 轴的值。 | |
translateY(y) | 定义转换,只是用 Y 轴的值。 | |
translateZ(z) | 定义 3D 转换,只是用 Z 轴的值。 | |
scale(x[,y]?) | 定义 2D 缩放转换。 | |
scale3d(x,y,z) | 定义 3D 缩放转换。 | |
scaleX(x) | 通过设置 X 轴的值来定义缩放转换。 | |
scaleY(y) | 通过设置 Y 轴的值来定义缩放转换。 | |
scaleZ(z) | 通过设置 Z 轴的值来定义 3D 缩放转换。 | |
rotate(angle) | 定义 2D 旋转,在参数中规定角度。 | |
rotate3d(x,y,z,angle) | 定义 3D 旋转。 | |
rotateX(angle) | 定义沿着 X 轴的 3D 旋转。 | |
rotateY(angle) | 定义沿着 Y 轴的 3D 旋转。 | |
rotateZ(angle) | 定义沿着 Z 轴的 3D 旋转。 | |
skew(x-angle,y-angle) | 定义沿着 X 和 Y 轴的 2D 倾斜转换。 | |
skewX(angle) | 定义沿着 X 轴的 2D 倾斜转换。 | |
skewY(angle) | 定义沿着 Y 轴的 2D 倾斜转换。 | |
perspective(n) | 为 3D 转换元素定义透视视图。 | |
--- | --- | |
设置点击的动画效果
.rating label:hover {
-webkit-transform: scale(1.2);
transform: scale(1.2);
}
进行放大1.2当点击的时候
获取属性的值
<script>
$('input').click(function () {
alert($('input:radio:checked').val())
})
</script>
当点击完后可以获得你所选的值。