|
|
class BeforeAfter { |
|
|
constructor(enteryObject) { |
|
|
|
|
|
const beforeAfterContainer = document.querySelector(enteryObject.id); |
|
|
const before = beforeAfterContainer.querySelector('.bal-before'); |
|
|
const beforeText = beforeAfterContainer.querySelector('.bal-beforePosition'); |
|
|
const afterText = beforeAfterContainer.querySelector('.bal-afterPosition'); |
|
|
const handle = beforeAfterContainer.querySelector('.bal-handle'); |
|
|
var widthChange = 0; |
|
|
|
|
|
beforeAfterContainer.querySelector('.bal-before-inset').setAttribute("style", "width: " + beforeAfterContainer.offsetWidth + "px;") |
|
|
window.onresize = function () { |
|
|
beforeAfterContainer.querySelector('.bal-before-inset').setAttribute("style", "width: " + beforeAfterContainer.offsetWidth + "px;") |
|
|
} |
|
|
before.setAttribute('style', "width: 50%;"); |
|
|
handle.setAttribute('style', "left: 50%;"); |
|
|
|
|
|
|
|
|
beforeAfterContainer.addEventListener("touchstart", (e) => { |
|
|
|
|
|
beforeAfterContainer.addEventListener("touchmove", (e2) => { |
|
|
let containerWidth = beforeAfterContainer.offsetWidth; |
|
|
let currentPoint = e2.changedTouches[0].clientX; |
|
|
|
|
|
let startOfDiv = beforeAfterContainer.offsetLeft; |
|
|
|
|
|
let modifiedCurrentPoint = currentPoint - startOfDiv; |
|
|
|
|
|
if (modifiedCurrentPoint > 10 && modifiedCurrentPoint < beforeAfterContainer.offsetWidth - 10) { |
|
|
let newWidth = modifiedCurrentPoint * 100 / containerWidth; |
|
|
|
|
|
before.setAttribute('style', "width:" + newWidth + "%;"); |
|
|
afterText.setAttribute('style', "z-index: 1;"); |
|
|
handle.setAttribute('style', "left:" + newWidth + "%;"); |
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
beforeAfterContainer.addEventListener('mousemove', (e) => { |
|
|
let containerWidth = beforeAfterContainer.offsetWidth; |
|
|
widthChange = e.offsetX; |
|
|
let newWidth = widthChange * 100 / containerWidth; |
|
|
|
|
|
if (e.offsetX > 10 && e.offsetX < beforeAfterContainer.offsetWidth - 10) { |
|
|
before.setAttribute('style', "width:" + newWidth + "%;"); |
|
|
afterText.setAttribute('style', "z-index:" + "1;"); |
|
|
handle.setAttribute('style', "left:" + newWidth + "%;"); |
|
|
} |
|
|
}) |
|
|
|
|
|
} |
|
|
} |