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

蓝桥杯 web 展开你的扇子(css3)


普通答案:

#box:hover #item1{
  transform: rotate(-60deg);
}
#box:hover #item2{
  transform: rotate(-50deg);
}
#box:hover #item3{
  transform: rotate(-40deg);
}
#box:hover #item4{
  transform: rotate(-30deg);
}
#box:hover #item5{
  transform: rotate(-20deg);
}
#box:hover #item6{
  transform: rotate(-10deg);
}
#box:hover #item12{
  transform: rotate(60deg);
}
#box:hover #item11{
  transform: rotate(50deg);
}
#box:hover #item10{
  transform: rotate(40deg);
}
#box:hover #item9{
  transform: rotate(30deg);
}
#box:hover #item8{
  transform: rotate(20deg);
}
#box:hover #item7{
  transform: rotate(10deg);
}

1. 选择器解析

#box:hover #item6 {
  transform: rotateZ(-10deg);
}
(1) #box:hover
  • #box 是一个 ID 选择器,表示选中 HTML 中 id="box" 的元素。
  • :hover 是一个伪类,表示当用户将鼠标悬停在该元素上时应用样式。
  • #box:hover 的意思是:当鼠标悬停在 id="box" 的元素上时,触发相关的样式规则。
(2) #item6
  • #item6 是另一个 ID 选择器,表示选中 HTML 中 id="item6" 的元素。
  • #box:hover #item6 表示:当鼠标悬停在 #box 上时,选中 #box 内部的 #item6 元素。

2. 样式规则

transform: rotateZ(-10deg);
(1) transform 属性
  • transform 是一个 CSS 属性,用于对元素进行变换操作(如旋转、缩放、移动等)。
  • 在这里,transform 被用来对 #item6 进行旋转。
(2) rotateZ(-10deg)
  • rotateZ 是 transform 的一个函数,表示围绕 Z 轴旋转。
  • -10deg 表示逆时针旋转 10 度(负值为逆时针,正值为顺时针)。
  • 因此,rotateZ(-10deg) 的意思是:让 #item6 元素围绕 Z 轴逆时针旋转 10 度。

 如果你不指定旋转轴(如 rotateX, rotateY, 或 rotateZ),则默认是围绕 Z 轴进行旋转。这意味着单独使用 rotate 实际上等同于 rotateZ


扩展:js 做法

box.onmouseover = () => { for(let i = 1; i <=6; i++ ) { let item = document.querySelector(`#item${i}`) item.style.transform = `rotate(${-60+(i-1)*10}deg)` console.log(item) } for(let i = 7; i <=12; i++ ) { let item = document.querySelector(`#item${i}`) item.style.transform = `rotate(${(i-6)*10}deg)` console.log(item) }

代码逐行解析

1. box.onmouseover = () => { ... }
  • 这是一个事件绑定,表示当用户将鼠标悬停在 box 元素上时,执行后面的箭头函数。
  • onmouseover 是原生 DOM 的事件属性,类似于 addEventListener('mouseover', ...)
2. 第一个 for 循环
for (let i = 1; i <= 6; i++) {
  let item = document.querySelector(`#item${i}`);
  item.style.transform = `rotate(${-60 + (i - 1) * 10}deg)`;
  console.log(item);
}
(1) for (let i = 1; i <= 6; i++)
  • 循环从 i = 1 开始,到 i = 6 结束,总共循环 6 次。
  • 每次循环处理一个 #itemX 元素(#item1 到 #item6)。
(2) let item = document.querySelector(#item${i})
  • 使用模板字符串 `#item${i}` 动态生成选择器,例如:
    • 当 i = 1 时,选择器为 #item1
    • 当 i = 2 时,选择器为 #item2
  • document.querySelector 返回匹配该选择器的第一个 DOM 元素。
(3) item.style.transform = rotate(${-60 + (i - 1) * 10}deg)``
  • 设置 item 元素的 transform 样式,使其旋转一定的角度。
  • -60 + (i - 1) * 10 是一个数学表达式,用于计算旋转角度:
    • 当 i = 1 时:-60 + (1 - 1) * 10 = -60,即旋转 -60deg
    • 当 i = 2 时:-60 + (2 - 1) * 10 = -50,即旋转 -50deg
    • 当 i = 3 时:-60 + (3 - 1) * 10 = -40,即旋转 -40deg
    • 以此类推,直到 i = 6 时,旋转角度为 -10deg
(4) console.log(item)
  • 打印当前处理的 item 元素,方便调试和查看是否正确选择了目标元素。
3. 第二个 for 循环
for (let i = 7; i <= 12; i++) {
  let item = document.querySelector(`#item${i}`);
  item.style.transform = `rotate(${(i - 6) * 10}deg)`;
  console.log(item);
}
(1) for (let i = 7; i <= 12; i++)
  • 循环从 i = 7 开始,到 i = 12 结束,总共循环 6 次。
  • 每次循环处理一个 #itemX 元素(#item7 到 #item12)。
(2) let item = document.querySelector(#item${i})
  • 同第一个循环,动态生成选择器并获取对应的 DOM 元素。
(3) item.style.transform = rotate(${(i - 6) * 10}deg)``
  • 设置 item 元素的 transform 样式,使其旋转一定的角度。
  • (i - 6) * 10 是一个数学表达式,用于计算旋转角度:
    • 当 i = 7 时:(7 - 6) * 10 = 10,即旋转 10deg
    • 当 i = 8 时:(8 - 6) * 10 = 20,即旋转 20deg
    • 当 i = 9 时:(9 - 6) * 10 = 30,即旋转 30deg
    • 以此类推,直到 i = 12 时,旋转角度为 60deg
(4) console.log(item)
  • 同第一个循环,打印当前处理的 item 元素。

相关文章:

  • Linux : 内核中的信号捕捉
  • 15分钟完成Odoo18.0安装与基本配置
  • OpenSceneGraph 中的 LOD详解
  • USB3.0走线注意事项和其中的协议
  • 音视频学习(三十二):VP8和VP9
  • MCP项目开发-一个简单的RAG示例
  • 第15届蓝桥杯java-c组省赛真题
  • 其他 vector 操作详解(四十)
  • 如何做到一个项目的高可用保障
  • 美国mlb与韩国mlb的关系·棒球9号位
  • 第五章 定积分 第二节 微积分基本公式
  • k8s1.24升级1.28
  • OCC Shape 操作
  • 【CSS基础】- 02(emmet语法、复合选择器、显示模式、背景标签)
  • 基于大模型的脑梗死全流程诊疗技术方案
  • Ubuntu 下 无界面环境 多进程/多线程 使用DrissionPage
  • 【最新版】啦啦外卖v64系统独立版源码+全部小程序APP端+安装教程
  • 【论文精读】Copy or Not? Reference-Based Face Image Restoration with Fine Details
  • mysql中my.cnf权限不能过大。否则无法生效
  • SOMEIP通信矩阵解读
  • 网站做跳转会有什么影响/百度统计数据分析
  • 电子商务网站建设方案书/深圳seo推广
  • 专做PPP项目网站/mac923水蜜桃923色号
  • ps网站怎么做滑动背景/公司网站
  • 做网站 模板/旺道seo网站优化大师
  • 成都模版网站制作/怎么找网站