initial Commit
This commit is contained in:
99
AlignDesktopApps.js
Normal file
99
AlignDesktopApps.js
Normal file
@@ -0,0 +1,99 @@
|
||||
const DesktopApps = document.querySelectorAll('.windowIcon');
|
||||
var AppGrid = null;
|
||||
var XtileSize;
|
||||
var YtileSize;
|
||||
var XTiles;
|
||||
var YTiles;
|
||||
function SetUp(){
|
||||
for (i = 0; i < DesktopApps.length; i++) {
|
||||
DragIcon(DesktopApps[i])
|
||||
}
|
||||
}
|
||||
function CalculateGrid(){
|
||||
|
||||
XtileSize = DesktopApps[0].offsetWidth + (DesktopApps[0].offsetWidth/12);
|
||||
YtileSize = DesktopApps[0].offsetHeight + (DesktopApps[0].offsetHeight/12);
|
||||
console.log(XtileSize + " " + YtileSize);
|
||||
|
||||
XTiles = Math.round(innerWidth / XtileSize);
|
||||
YTiles = Math.round((innerHeight - document.querySelector('.hotbarWrapper').offsetHeight) / YtileSize);
|
||||
console.log(XTiles + " " + YTiles);
|
||||
|
||||
var iteratorX = 0;
|
||||
var iteratorY = Math.round(document.querySelector('.hotbarWrapper').offsetHeight/YtileSize);
|
||||
console.log(iteratorY);
|
||||
for (i = 0; i < DesktopApps.length; i++) {
|
||||
if (iteratorY >= YTiles) {
|
||||
iteratorY = Math.round(document.querySelector('.hotbarWrapper').offsetHeight/YtileSize);
|
||||
iteratorX++;
|
||||
}
|
||||
DesktopApps[i].style.top = (((4 + (YtileSize * iteratorY))/innerHeight)*100) + "vh";
|
||||
DesktopApps[i].style.left = (((4 + (XtileSize * iteratorX))/innerWidth)*100) + "vw";
|
||||
iteratorY++;
|
||||
}
|
||||
}
|
||||
function calculatePosition(AppIcon, startPosX, startPosY) {
|
||||
var valid = true
|
||||
Xpos = Math.round(AppIcon.offsetLeft / XtileSize);
|
||||
Ypos = Math.round(AppIcon.offsetTop / YtileSize);
|
||||
for (var j = 0; j < DesktopApps.length; j++) {
|
||||
if (DesktopApps[j].offsetLeft === 4 + (Xpos * XtileSize)
|
||||
&& DesktopApps[j].offsetTop === 4 + (Ypos * YtileSize)) {
|
||||
valid = false;
|
||||
}
|
||||
}
|
||||
if (valid === false) {
|
||||
AppIcon.style.top = ((startPosY/innerHeight)*100) + "vh";
|
||||
AppIcon.style.left = ((startPosX/innerWidth)*100) + "vw";
|
||||
AppIcon.style.left = startPosX + "px";
|
||||
AppIcon.style.top = startPosY + "px";
|
||||
} else {
|
||||
AppIcon.style.top = (((4 + (Ypos * YtileSize))/innerHeight)*100) + "vh";
|
||||
AppIcon.style.left = (((4 + (Xpos * XtileSize))/innerWidth)*100) + "vw";
|
||||
}
|
||||
}
|
||||
|
||||
function DragIcon(AppIcon){
|
||||
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0, startposX = AppIcon.offsetLeft, startposY = AppIcon.offsetTop;
|
||||
AppIcon.addEventListener('mousedown', mouseDown);
|
||||
function mouseDown(e) {
|
||||
startposX = AppIcon.offsetLeft;
|
||||
startposY = AppIcon.offsetTop;
|
||||
AppIcon.style.zIndex = 125;
|
||||
e.preventDefault();
|
||||
document.addEventListener('mousemove', mouseMove);
|
||||
document.addEventListener('mouseup', mouseUp);
|
||||
pos3 = e.clientX;
|
||||
pos4 = e.clientY;
|
||||
}
|
||||
function mouseMove(e){
|
||||
e.preventDefault();
|
||||
pos1 = pos3 - e.clientX;
|
||||
pos2 = pos4 - e.clientY;
|
||||
pos3 = e.clientX;
|
||||
pos4 = e.clientY;
|
||||
if (AppIcon.offsetTop < window.innerHeight) {
|
||||
AppIcon.style.top = (AppIcon.offsetTop - pos2) + 'px';
|
||||
}
|
||||
else if( pos2 >= 0){
|
||||
AppIcon.style.top = (AppIcon.offsetTop - pos2) + 'px';
|
||||
}
|
||||
if (AppIcon.offsetLeft + (AppIcon.clientWidth/2) + 3< window.innerWidth) {
|
||||
AppIcon.style.left = (AppIcon.offsetLeft - pos1) + 'px';
|
||||
}
|
||||
else if(pos1 >= 0) {
|
||||
AppIcon.style.left = (AppIcon.offsetLeft - pos1) + 'px';
|
||||
}
|
||||
}
|
||||
function mouseUp(e) {
|
||||
document.removeEventListener('mousemove', mouseMove);
|
||||
document.removeEventListener('mouseup', mouseUp);
|
||||
document.removeEventListener('touchend', mouseUp);
|
||||
AppIcon.style.zIndex = 105;
|
||||
calculatePosition(AppIcon, startposX, startposY);
|
||||
startposX = AppIcon.offsetLeft;
|
||||
startposY = AppIcon.offsetTop
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user