feat(旋转控制): 为旋转滑块添加吸附功能并固定数值显示宽度
在旋转滑块附近0°、-90°、90°时添加5度的吸附阈值,使操作更精准 为旋转度数和百分比数值显示元素设置固定宽度,保持布局稳定
This commit is contained in:
@@ -241,6 +241,20 @@ html, body {
|
|||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 旋转度数显示固定宽度 */
|
||||||
|
#rotateValue {
|
||||||
|
display: inline-block;
|
||||||
|
min-width: 40px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 百分比显示固定宽度 */
|
||||||
|
#opacityValue, #bgScaleValue, #bgOpacityValue {
|
||||||
|
display: inline-block;
|
||||||
|
min-width: 40px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
/* 字号滚轮选择器 */
|
/* 字号滚轮选择器 */
|
||||||
.roller-picker {
|
.roller-picker {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
|||||||
16
js/script.js
16
js/script.js
@@ -130,7 +130,21 @@
|
|||||||
// 旋转滑块
|
// 旋转滑块
|
||||||
rotateSlider.addEventListener('input', (e) => {
|
rotateSlider.addEventListener('input', (e) => {
|
||||||
if (selectedOverlay) {
|
if (selectedOverlay) {
|
||||||
const rotateDeg = e.target.value;
|
let rotateDeg = parseInt(e.target.value);
|
||||||
|
|
||||||
|
// 吸附功能:在 0°、-90°、90° 附近吸附
|
||||||
|
const snapAngles = [0, -90, 90];
|
||||||
|
const snapThreshold = 5; // 吸附阈值 5 度
|
||||||
|
|
||||||
|
for (const snapAngle of snapAngles) {
|
||||||
|
if (Math.abs(rotateDeg - snapAngle) < snapThreshold) {
|
||||||
|
rotateDeg = snapAngle;
|
||||||
|
// 更新滑动条位置
|
||||||
|
rotateSlider.value = rotateDeg;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
selectedOverlay.style.transform = `rotate(${rotateDeg}deg)`;
|
selectedOverlay.style.transform = `rotate(${rotateDeg}deg)`;
|
||||||
rotateValue.textContent = rotateDeg + '°';
|
rotateValue.textContent = rotateDeg + '°';
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user