改变旋转中心点
.big{
width: 300px;
height: 300px;
border: 3px solid black;
border-radius: 50%;
margin: 100px auto;
position: relative;
}
.second{
width: 2px;
height: 110px;
background: green;
position: absolute;
left: 50%;
top: 50%;
margin-left: -1px;
margin-top: -110px;
transform-origin: left bottom;
animation: miao 60s steps(360) infinite;
}
怎么把second的中心点改到这里啊
如果设置transform-origin: left bottom;的话,只会到这里
可以支持百分比吧 你试试50% 0%这种
不知道你这个问题是否已经解决, 如果还没有解决的话:我们可以设置元素转换的中心点。
transform-origin: x y;
1. 注意后面的参数 x和 y 用空格隔开
2. x y 默认转换的中心点是元素的中心点(50% 50%)
3. 还可以给x y设置像素或者方位名词(top bottom left right center)
命令演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
div{
overflow: hidden;
width: 200px;
height: 200px;
border: 1px solid palegreen;
margin: 10px;
float: left;
}
div::before {
content: "马腾";
display: block;
width: 100%;
height: 100%;
background-color: palegreen;
transform:rotate(180deg);
transform-origin: left bottom;
transition: all 0.4s;
}
/* 鼠标经过div里面的before 复原 */
div:hover::before{
transform: rotate(0deg);
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
</body>
</html>
网页显示图:
做一个旋转中心点案例:
命令演示:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
div{
overflow: hidden;
width: 200px;
height: 200px;
border: 1px solid palegreen;
margin: 10px;
float: left;
}
div::before {
content: "马腾";
display: block;
width: 100%;
height: 100%;
background-color: palegreen;
transform:rotate(180deg);
transform-origin: left bottom;
transition: all 0.4s;
}
/* 鼠标经过div里面的before 复原 */
div:hover::before{
transform: rotate(0deg);
}
</style>
</head>
<body>
<div></div>
<div></div>
<div></div>
</body>
</html>
网页显示图:
解答:
可以使用transform-origin属性来改变一个元素的旋转中心点。通过设置transform-origin的x、y参数为"second",即可将元素的旋转中心点设置为"second"。代码如下:
.element {
width: 100px;
height: 100px;
background-color: #ccc;
transform-origin: second;
}
然而,在CSS中并没有"second"这个关键字,这个关键字只是为了描述旋转中心点的位置。如果要真正将旋转中心点设置为"second",需要通过计算和设置实际的x和y值。
具体来说,可以通过JavaScript来获取到"second"这个元素相对于父元素的位置,然后将这个位置设置为transform-origin的x和y。示例如下:
<div class="parent">
<div class="element">Hello, world!</div>
<div class="second"></div>
</div>
<script>
var element = document.querySelector('.element');
var second = document.querySelector('.second');
var rect = second.getBoundingClientRect(); // 获取second元素相对于视口的位置
// 计算second元素相对于父元素的位置
var x = rect.left - element.offsetLeft;
var y = rect.top - element.offsetTop;
// 将x、y设置为transform-origin的值
element.style.transformOrigin = x + 'px ' + y + 'px';
</script>
注意:上述代码只是示例,需要根据实际情况进行修改。此外,还需要注意浏览器兼容性问题。