javascript - 旋转照片时可调整大小的照片在对角线而非 x 轴上展开
问题描述
我有可调整大小的照片,可以在拖动时调整大小。当没有旋转时,我通过获取 X 当前鼠标并拖动下一个 X 鼠标位置在 x 轴上展开。
我的照片也可以旋转,所以当照片旋转时,我不想通过鼠标在 x 轴上移动的像素来扩展照片,而是从照片旋转的对角线。有没有办法做到这一点?
https://jsfiddle.net/p1j9nys5/4/
我想要的是当我扩展第二个 div(旋转的)时,扩展是从箭头方向的对角线而不是 X 轴计算的。
<div class="container">
<div class='img'>
<div class="expand-btn">
<span></span>
<span></span>
</div>
</div>
</div>
<div class="container">
<div class='img'>
<div class="expand-btn">
<span></span>
<span></span>
</div>
</div>
</div>
const divs = [...document.getElementsByClassName('img')];
divs.forEach(div => {
div.addEventListener('mousedown', startDrag);
});
let posX;
let posY;
let node;
function startDrag(e){
node = e.currentTarget;
posX = e.clientX;
document.addEventListener('mousemove', resize);
document.addEventListener('mouseup', stopDrag);
}
function resize(e){
const nextPosX = e.pageX;
node.style.width = node.offsetWidth + (nextPosX - posX) + 'px';
posX = nextPosX;
}
function stopDrag(e){
document.removeEventListener('mousemove', resize);
document.removeEventListener('mouseup', stopDrag);
}
.container{
position: absolute;
display: inline-block;
}
.container:nth-child(2){
top: 160px;
left: 50px;
transform: rotate(-60deg);
}
.img{
width: 100px;
padding-bottom: 100%;
background: blue;
}
.img div{
top: 42.5%;
right: 10%;
width: 15%;
height: 15%;
position: absolute;
transform: rotate(45deg);
}
div span{
position: absolute;
display: block;
}
div span:nth-child(1){
height: 20%;
width: 100%;
background: red;
}
div span:nth-child(2){
right: 0%;
height: 100%;
width: 20%;
background: red;
}
解决方案
推荐阅读
- python - 如何将 ID 附加到导入和 numpy 数组转换的图像?
- node.js - 处理节点功能应用程序的超时
- javascript - 如何在单击时创建数组数组并通过数据属性检查数组是否存在于数组中并推送到该数组
- linux - Linux 主机上的 Docker 注册表用于存储(而不是运行!)基于 Windows 的图像
- c++ - 使用来自对象的方法调用带有 std::bind 和 std::function.target 的 C 风格函数地址
- python - django rest框架展示模型实例
- reactjs - Reactjs将输入字符串转换为大写
- google-cloud-platform - Google Cloud Datastore 中的复合索引
- excel - 我需要将表示时间的文本字段转换为数字格式
- css - 使用 flex 使所有行在不同列中的高度相同?