当前位置: 首页 > news >正文

凡科网站建设样品图江门17年seo优化技术软件

凡科网站建设样品图,江门17年seo优化技术软件,孩子学编程最佳年龄,产品设计手绘图片如图,抽奖转盘,可以拆分为几部分: 1.底部大圆; 2.中间小圆; 3.扇形区; 4.扇形内部奖品区; 5.抽奖按钮; 6.点击抽奖按钮时旋转动效及逻辑; 这其中,扇形区&am…

在这里插入图片描述

如图,抽奖转盘,可以拆分为几部分:

1.底部大圆;
2.中间小圆;
3.扇形区;
4.扇形内部奖品区;
5.抽奖按钮;
6.点击抽奖按钮时旋转动效及逻辑;

这其中,扇形区,以及扇形区内奖品的布局最为关键和麻烦,这个问题解决,剩下的问题,那都不是事儿!

那如何用Css优雅的实现呢?——最关键的就是扇形区的绘制!

这里用到css的两个关键属性:rotate skewY;旋转和倾斜;

首先我们先来绘制一个扇形:

步骤:

1.先画一个圆形:

在这里插入图片描述

css代码:

.container {width: 300px;height: 300px;background-color: red;border-radius: 50%;display: flex;justify-content: center;align-items: center;position: relative;
}

2.在圆形上,再画一个同大小的正方形,并将正方形左下角与圆心对齐,为了区分不同的区域,加上一个border:

在这里插入图片描述
css代码:

.prize-container {width: 280px;height: 280px;background-color: bisque;position: absolute;left: 50%;top: -50%;background-color: antiquewhite;border: 1px solid red;
}

3.关键点,如何通过skewY,将这个正方形倾斜:skew属性有skew,skewX,skewY,这里我们选择使用skewY,也就是顺着Y轴倾斜。通过上图,我们很容易想到,要想得到一个扇形,我们可以设置overflow: hidden,直接就能得到一个90°角的扇形:

在这里插入图片描述
但假如有6个奖品,那么每个奖品的扇形区就是360/6=60°。那如何将90°变为60°呢?上面我们说了,可以使用倾斜属性,即将正方形以左下角(圆心)为中心,向上提拉倾斜到夹角变为60°为止,上代码:

transform-origin: 0% 100%;
transform: skewY(-30deg);

在这里插入图片描述

首先我们要明白坐标系,以正方形为例,左上角为坐标原点(0,0),x轴往右为正,往左为负,y轴往下为正,往上为负,所以左下角坐标就是(0% ,100%),transform-origin: 0% 100%即以左下角为中心倾斜;y轴向上为负,所以向上倾斜30°即transform: skewY(-30deg)。

4.总共6个奖品,那么就需要6个扇形区,上面我们已经得到了一个扇形模板,剩下的我们只需要使用rotate属性旋转对应角度即可,第一个不需要旋转,旋转角度为0,第二个需要旋转60°,第三个120°…最后得到的效果如图:

在这里插入图片描述
父布局加上overflow: hidden属性:

在这里插入图片描述

大功告成!

剩下的就是奖品内容区,这个比扇形区绘制更简单一点,只需要使用rotate属性即可:

.prize {width: 140px;height: 140px;position: absolute;left: 50%;top: 0;transform-origin: 0% 100%;
}
.prize-child {width: 100%;height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;transform: rotate(30deg) translateX(-15%) translateY(10%);
}
<div class="prize"><div class="prize-child"><div>奖品</div><p>1等奖</p></div>
</div>

我们设置一个长宽为圆形半径长度的正方形,在里面布局奖品内容,然后旋转30°即可,为什么要旋转30?因为内容是在扇形区的轴心,扇形区是60°,那么内容只需要旋转30°即可:

在这里插入图片描述
而translateX(-15%) translateY(10%)则是根据你的具体奖品内容布局,去调节显示位置的,这个不是固定的!

那6个奖品,就可以通过prize 旋转对应角度即可,原理同扇形区:

在这里插入图片描述

加上一个抽奖按钮,最终效果:

在这里插入图片描述

当然,可能实际情况并非正好固定6个奖品,也可能是8个,或其它数量,这个就需要你根据奖品个数,动态计算应该旋转的角度,旋转角度一般为:

扇形旋转角度:index360/count,
倾斜角度:index
360/count-90
奖品旋转角度:index*360/count+360/count/2

index即奖品list的下标,count即奖品数量!

完整代码如下:

<!DOCTYPE html>
<html><head><meta charset="utf-8"><title>抽奖</title></head><style>.body {width: 100vw;height: 100vh;display: flex;justify-content: center;align-items: center;}.container {width: 300px;height: 300px;background-color: red;border-radius: 50%;display: flex;justify-content: center;align-items: center;position: relative;}.turntable {width: 280px;height: 280px;border-radius: 50%;position: absolute;overflow: hidden;}/*扇形区*/.prize-container {width: 280px;height: 280px;background-color: bisque;position: absolute;left: 50%;top: -50%;/*600-280/2,将prize正方形左下角点对准圆心*/border: 1px solid red;/*以正方形左下角为中心旋转,0% 100%即左下角的坐标*/transform-origin: 0% 100%;}.prize-container:nth-child(1) {transform: rotate(0deg) skewY(-30deg);}.prize-container:nth-child(2) {transform: rotate(60deg) skewY(-30deg);}.prize-container:nth-child(3) {transform: rotate(120deg) skewY(-30deg);}.prize-container:nth-child(4) {transform: rotate(180deg) skewY(-30deg);}.prize-container:nth-child(5) {transform: rotate(240deg) skewY(-30deg);}.prize-container:nth-child(6) {transform: rotate(300deg) skewY(-30deg);}/* 奖品区 */.prize {width: 140px;height: 140px;position: absolute;left: 50%;top: 0;transform-origin: 0% 100%;}/* 奖品内容 */.prize-child {width: 100%;height: 100%;display: flex;flex-direction: column;align-items: center;justify-content: center;transform: rotate(30deg) translateX(-15%) translateY(10%);}.prize:nth-child(1) {transform: rotate(0deg);}.prize:nth-child(2) {transform: rotate(60deg);}.prize:nth-child(3) {transform: rotate(120deg);}.prize:nth-child(4) {transform: rotate(180deg);}.prize:nth-child(5) {transform: rotate(240deg);}.prize:nth-child(6) {transform: rotate(300deg);}.draw-btn {width: 80px;height: 80px;border-radius: 50%;background-color: red;color: white;font-size: 30px;line-height: 80px;text-align: center;position: absolute;}</style><script>function drawPrize() {alert("抽奖");}</script><body class="body"><div class="container"><div class="turntable"><div class="prize-container"></div><div class="prize-container"></div><div class="prize-container"></div><div class="prize-container"></div><div class="prize-container"></div><div class="prize-container"></div></div><div class="turntable"><div class="prize"><div class="prize-child"><div>奖品</div><p>1等奖</p></div></div><div class="prize"><div class="prize-child"><div>奖品</div><p>2等奖</p></div></div><div class="prize"><div class="prize-child"><div>奖品</div><p>3等奖</p></div></div><div class="prize"><div class="prize-child"><div>奖品</div><p>4等奖</p></div></div><div class="prize"><div class="prize-child"><div>奖品</div><p>5等奖</p></div></div><div class="prize"><div class="prize-child"><div>奖品</div><p>6等奖</p></div></div></div><div class="draw-btn" onclick="drawPrize()"></div></div></body></html>
http://www.yayakq.cn/news/76379/

相关文章:

  • 网站一个月wordpress底部加上自己的版权信息
  • 免费网站申请域名com做设计图的网站
  • 商城网站建设公司电话tpshop开源商城
  • 网站建设百度索引上海十大网站排名
  • 在哪个网站上可以找兼职做短网址短链接生成器
  • 肇庆网站建设维护武威做网站的公司
  • 精湛的网站设计国内空间设计公司
  • 怎么做赛事直播网站网站优化推广公司排名
  • 西宁做网站的公司捌君博力请做纪录片卖给视频网站
  • 石家庄网站制作工具求个网站你懂我意思是
  • 免费图片素材网站有哪些招聘运营专员
  • 福建网站建设价格几分钟做网站
  • 外网网站有什么好的推荐哪个网站可以悬赏做图
  • 东莞网站建设五金建材电子商务网站建设期末试卷答案
  • 佛山市城乡住房建设局网站重庆企业网站开发
  • 域名商的网站建设网银登录网站
  • 专题定制网站建设html5的静态壁纸
  • 电子商务网站建设规划的内容wordpress 插件新页面
  • 单位网站建设收费标准网络营销包括的主要内容有
  • 青岛网站建设加王道下拉怎么把网站做成手机版的
  • 建设网站的成本有哪些前端学习网站建设教程
  • 网站建设怎么分析市场分析网站被k 但收录内页
  • 网站优化改动怎么做苏州建网站公司
  • 如何在国外网站做免费推广微信小程序功能开发
  • 衡阳建设学校网站网站的基础知识
  • 网站建设与管理试题及答案黑料社2023
  • ui下载高清素材的网站有哪些wordpress搬家换域名
  • 网站评论列表模板域名解析错误无法上网
  • 北京网站优化外包公司佛山制作做网站
  • 漂亮的html5网页北京中文seo