Friday, January 12, 2018

spinner


function mouseEvent(type, sx, sy, cx, cy) {
 var evt;
 var e = {
   bubbles: true,
   cancelable: (type != "mousemove"),
   view: window,
   detail: 0,
   screenX: sx,
   screenY: sy,
   clientX: cx,
   clientY: cy,
   ctrlKey: false,
   altKey: false,
   shiftKey: false,
   metaKey: false,
   button: 0,
   relatedTarget: undefined
 };
 if (typeof( document.createEvent ) == "function") {
   evt = document.createEvent("MouseEvents");
   evt.initMouseEvent(type,
     e.bubbles, e.cancelable, e.view, e.detail,
     e.screenX, e.screenY, e.clientX, e.clientY,
     e.ctrlKey, e.altKey, e.shiftKey, e.metaKey,
     e.button, document.body.parentNode);
 } else if (document.createEventObject) {
   evt = document.createEventObject();
   for (prop in e) {
   evt[prop] = e[prop];
 }
   evt.button = { 0:1, 1:4, 2:2 }[evt.button] || evt.button;
 }
 return evt;
}
var a = document.getElementsByClassName("spinner")[0],
b = document.getElementById("speed");
a.addEventListener("mousemove", function(e){console.log("clientX:" + e.clientX +", clientY:" + e.clientY +", screenX:" + e.screenX +", screenY:" + e.screenY +", movementX:" + e.movementX);});

function bootRot(x, y){
a.dispatchEvent(mouseEvent("mousemove", x, y, x, y));
}

function bootStart(){
if ((b.innerHTML != "Dragging") && parseInt(b.innerHTML) < 1600){
var xInicial = 0, yInicial = 0;

       // "parseInt(b.innerHTML) < 1600": 1600 is the minimum value in RPMs from which the spinner rotates again.
// This value can be edited!

for(var ofParent = a; ofParent; ofParent = ofParent.offsetParent){
xInicial += ofParent.offsetLeft;
yInicial += ofParent.offsetTop;
}

var bootWidth = xInicial + a.offsetWidth,
bootHeight = xInicial + a.offsetHeight;

var Xs = [xInicial, (bootWidth)/2, bootHeight, (bootWidth)/2], /*[462, 591, 729, 869],*/
Ys = [(bootHeight)/2, yInicial, (bootHeight)/2, bootHeight], /*[77, 77, 77, 77],*/
count = 0, speedBoot = 20;

// speedBoot = 20: Time in milliseconds that the mouse pointer would by points (Xs,Ys) forming a perfect circle.
// This value can also be edited.

a.dispatchEvent(mouseEvent("mousedown", Xs[0], Ys[0], Xs[0], Ys[0]));

bootRot(Xs[0], Ys[0]);

setTimeout(function(){
bootRot(Xs[1], Ys[1]);
}, (count++)*speedBoot);

setTimeout(function(){
bootRot(Xs[2], Ys[2]);
}, (count++)*speedBoot);

setTimeout(function(){
bootRot(Xs[3], Ys[3]);
a.dispatchEvent(mouseEvent("mouseup", Xs[3], Ys[3], Xs[3],  Ys[3]));
}, (count++)*speedBoot);
}
}

var bootIntervalId = setInterval(bootStart, 1800);

// bootStart, 20: Time in milliseconds to swing reset after reaching the minimum RPM value.
// This value can also be edited.
// It is recommended that greater values for computers that do not have advanced hardware configuration!

function bootStop(){ // bootStop(): Command stops the execution of the script.
clearInterval(bootIntervalId);
}

No comments:

Post a Comment