|
|
|
@ -190,24 +190,24 @@ export class ImageParticle {
|
|
|
|
this.previewerImage = img
|
|
|
|
this.previewerImage = img
|
|
|
|
previewerContainer.append(imgContainer)
|
|
|
|
previewerContainer.append(imgContainer)
|
|
|
|
// 操作栏
|
|
|
|
// 操作栏
|
|
|
|
|
|
|
|
let x = 0
|
|
|
|
|
|
|
|
let y = 0
|
|
|
|
let scaleSize = 1
|
|
|
|
let scaleSize = 1
|
|
|
|
let rotateSize = 0
|
|
|
|
let rotateSize = 0
|
|
|
|
let translateX = 0
|
|
|
|
|
|
|
|
let translateY = 0
|
|
|
|
|
|
|
|
const menuContainer = document.createElement('div')
|
|
|
|
const menuContainer = document.createElement('div')
|
|
|
|
menuContainer.classList.add('image-menu')
|
|
|
|
menuContainer.classList.add('image-menu')
|
|
|
|
const zoomIn = document.createElement('i')
|
|
|
|
const zoomIn = document.createElement('i')
|
|
|
|
zoomIn.classList.add('zoom-in')
|
|
|
|
zoomIn.classList.add('zoom-in')
|
|
|
|
zoomIn.onclick = () => {
|
|
|
|
zoomIn.onclick = () => {
|
|
|
|
scaleSize += 0.1
|
|
|
|
scaleSize += 0.1
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, translateX, translateY)
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, x, y)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
menuContainer.append(zoomIn)
|
|
|
|
menuContainer.append(zoomIn)
|
|
|
|
const zoomOut = document.createElement('i')
|
|
|
|
const zoomOut = document.createElement('i')
|
|
|
|
zoomOut.onclick = () => {
|
|
|
|
zoomOut.onclick = () => {
|
|
|
|
if (scaleSize - 0.1 <= 0.1) return
|
|
|
|
if (scaleSize - 0.1 <= 0.1) return
|
|
|
|
scaleSize -= 0.1
|
|
|
|
scaleSize -= 0.1
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, translateX, translateY)
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, x, y)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
zoomOut.classList.add('zoom-out')
|
|
|
|
zoomOut.classList.add('zoom-out')
|
|
|
|
menuContainer.append(zoomOut)
|
|
|
|
menuContainer.append(zoomOut)
|
|
|
|
@ -215,17 +215,17 @@ export class ImageParticle {
|
|
|
|
rotate.classList.add('rotate')
|
|
|
|
rotate.classList.add('rotate')
|
|
|
|
rotate.onclick = () => {
|
|
|
|
rotate.onclick = () => {
|
|
|
|
rotateSize += 1
|
|
|
|
rotateSize += 1
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, translateX, translateY)
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, x, y)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
menuContainer.append(rotate)
|
|
|
|
menuContainer.append(rotate)
|
|
|
|
const originalSize = document.createElement('i')
|
|
|
|
const originalSize = document.createElement('i')
|
|
|
|
originalSize.classList.add('original-size')
|
|
|
|
originalSize.classList.add('original-size')
|
|
|
|
originalSize.onclick = () => {
|
|
|
|
originalSize.onclick = () => {
|
|
|
|
|
|
|
|
x = 0
|
|
|
|
|
|
|
|
y = 0
|
|
|
|
scaleSize = 1
|
|
|
|
scaleSize = 1
|
|
|
|
rotateSize = 0
|
|
|
|
rotateSize = 0
|
|
|
|
translateX = 0
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, x, y)
|
|
|
|
translateY = 0
|
|
|
|
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, translateX, translateY)
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
menuContainer.append(originalSize)
|
|
|
|
menuContainer.append(originalSize)
|
|
|
|
previewerContainer.append(menuContainer)
|
|
|
|
previewerContainer.append(menuContainer)
|
|
|
|
@ -243,11 +243,11 @@ export class ImageParticle {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
previewerContainer.onmousemove = (evt: MouseEvent) => {
|
|
|
|
previewerContainer.onmousemove = (evt: MouseEvent) => {
|
|
|
|
if (!isAllowDrag) return
|
|
|
|
if (!isAllowDrag) return
|
|
|
|
translateX += (evt.x - startX)
|
|
|
|
x += (evt.x - startX)
|
|
|
|
translateY += (evt.y - startY)
|
|
|
|
y += (evt.y - startY)
|
|
|
|
startX = evt.x
|
|
|
|
startX = evt.x
|
|
|
|
startY = evt.y
|
|
|
|
startY = evt.y
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, translateX, translateY)
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, x, y)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
previewerContainer.onmouseup = () => {
|
|
|
|
previewerContainer.onmouseup = () => {
|
|
|
|
isAllowDrag = false
|
|
|
|
isAllowDrag = false
|
|
|
|
@ -263,13 +263,15 @@ export class ImageParticle {
|
|
|
|
if (scaleSize - 0.1 <= 0.1) return
|
|
|
|
if (scaleSize - 0.1 <= 0.1) return
|
|
|
|
scaleSize -= 0.1
|
|
|
|
scaleSize -= 0.1
|
|
|
|
}
|
|
|
|
}
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, translateX, translateY)
|
|
|
|
this._setPreviewerTransform(scaleSize, rotateSize, x, y)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public _setPreviewerTransform(scale: number, rotate: number, x: number, y: number) {
|
|
|
|
public _setPreviewerTransform(scale: number, rotate: number, x: number, y: number) {
|
|
|
|
if (!this.previewerImage) return
|
|
|
|
if (!this.previewerImage) return
|
|
|
|
this.previewerImage.style.transform = `scale(${scale}) rotate(${rotate * 90}deg) translate(${x}px,${y}px)`
|
|
|
|
this.previewerImage.style.left = `${x}px`
|
|
|
|
|
|
|
|
this.previewerImage.style.top = `${y}px`
|
|
|
|
|
|
|
|
this.previewerImage.style.transform = `scale(${scale}) rotate(${rotate * 90}deg)`
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
private _clearPreviewer() {
|
|
|
|
private _clearPreviewer() {
|
|
|
|
|