File: /home/creaqbdc/www/wp-content/uploads/ac_assets/ue-custom-cursor/ms-cursor.js
function ueCustomCursor1(applyTo, selector){
let script = document.querySelector('.ue-custom-cursor');
let iDiv = document.createElement('div');
iDiv.id = 'ue-mscursor-cursor';
if(script.getAttribute("difference") == "disable"){
iDiv.className = 'mscursor-cursor ue_cursor-item ue_cursor-item--1' ;
} else {
iDiv.className = 'mscursor-cursor ue_cursor-item mscursor-difference';
}
/**
* is visible
*/
function isVisible(el) {
return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);
}
/**
* check if cursor widget is visible
*/
function isCursorWidgetVisible(){
var objWidget = document.querySelector(".ue_cursor-wrap[data-cursor='cursor-1']");
if(isVisible(objWidget) == false)
return(false)
else
return(true)
}
var isWidgetVisible = isCursorWidgetVisible();
if(isWidgetVisible == true)
document.getElementsByTagName('body')[0].appendChild(iDiv);
let pauseAnimation = script.getAttribute("pause-animation");
let innerDiv = document.createElement('div');
if(script.getAttribute("color") !== null){
iDiv.style.backgroundColor = script.getAttribute("color");
} else {
if(script.getAttribute("difference") == "disable"){
iDiv.style.backgroundColor = "black"
} else {
iDiv.style.backgroundColor = "white"
}
}
if(pauseAnimation !== null && pauseAnimation == "disable"){
if(script.getAttribute("circle-outline") == "disable"){
innerDiv.className = 'mscursor-circle';
} else {
innerDiv.className = 'mscursor-circle new';
}
} else{
if(script.getAttribute("circle-outline") == "disable"){
innerDiv.className = 'mscursor-circle mscursor-border-transform';
} else {
innerDiv.className = 'mscursor-circle new mscursor-border-transform';
}
}
iDiv.appendChild(innerDiv);
let size = Number(script.getAttribute("size")) || 30
for(let i = 0; i < size; i++){
let innerDiv = document.createElement('div');
if(pauseAnimation !== null && pauseAnimation == "disable"){
innerDiv.className = 'mscursor-circle';
} else {
innerDiv.className = 'mscursor-circle mscursor-border-transform';
}
if(script.getAttribute("color") !== null){
innerDiv.style.backgroundColor = script.getAttribute("color");
} else {
if(script.getAttribute("difference") == "disable"){
innerDiv.style.backgroundColor = "black"
} else {
innerDiv.style.backgroundColor = "white"
}
}
iDiv.appendChild(innerDiv);
}
const coords = { x: 0, y: 0 };
let timeout
const circles = document.querySelectorAll(".mscursor-circle");
const cursor = document.querySelector(".mscursor-cursor");
circles.forEach(function (circle, index) {
circle.x = 0;
circle.y = 0;
if(script.getAttribute("gradient") !== null){
let colors = script.getAttribute("gradient").split(",")
circle.style.backgroundColor = colors[Math.floor((index * colors.length)/ circles.length)];
document.querySelector("div.new").border = `0.5px solid ${colors[0]}`
}
});
const addclass = (e) => {
var isWidgetVisible = isCursorWidgetVisible();
if(isWidgetVisible == false){
document.querySelectorAll('.mscursor-circle').forEach((el, i) => {
el.classList.add('uc-mscursor-hidden')
});
}else{
document.querySelectorAll('.mscursor-circle').forEach((el, i) => {
el.classList.remove('uc-mscursor-hidden')
});
}
if(script.getAttribute("pause-animation") !== "disable"){
document.body.classList.remove("mscursor-nocursor")
if(script.getAttribute("circle-outline") !== "disable"){
document.querySelector("div.new").classList.remove("mscursor-scale-outline")
document.querySelector("div.new").style.border=""
}
document.querySelectorAll("div.mscursor-circle").forEach(element => {
element.classList.remove("mscursor-scale")
})
}
coords.x = e.clientX;
coords.y = e.clientY;
};
window.addEventListener("mousemove", (e) => addclass(e))
window.addEventListener("touchmove", (e) => addclass(e.touches[0]))
function animateCircles() {
let x = coords.x;
let y = coords.y;
cursor.style.top = x;
cursor.style.left = y;
circles.forEach(function (circle, index) {
circle.style.left = x - 12 + "px";
circle.style.top = y - 12 + "px";
circle.style.scale = (circles.length - index) / circles.length;
circle.x = x;
circle.y = y;
const nextCircle = circles[index + 1] || circles[0];
x += (nextCircle.x - x) * 0.3;
y += (nextCircle.y - y) * 0.3;
});
requestAnimationFrame(animateCircles);
}
animateCircles();
if(script.getAttribute("cursor") == "disable"){
document.body.classList.add("mscursor-nocursor")
}
if(script.getAttribute("pause-animation") !== "disable"){
const moove = () => {
clearTimeout(timeout);
timeout = setTimeout(() => {
document.body.classList.add("mscursor-nocursor")
if(script.getAttribute("mscursor-circle-outline") !== "disable"){
document.querySelector("div.new").classList.add("mscursor-scale-outline")
if(script.getAttribute("color") !== null){
if(script.getAttribute("color-outline") !== null){
document.querySelector("div.new").style.border= `0.5px solid ${script.getAttribute("color-outline")}`;
} else {
document.querySelector("div.new").style.border= `0.5px solid ${script.getAttribute("color")}`;
}
} else {
if(script.getAttribute("color-outline") !== null){
document.querySelector("div.new").style.border= `0.5px solid ${script.getAttribute("color-outline")}`;
} else {
if(script.getAttribute("difference") == "disable"){
document.querySelector("div.new").style.border= `0.5px solid black`
} else {
document.querySelector("div.new").style.border= `0.5px solid white`
}
}
}
}
document.querySelectorAll("div.mscursor-circle").forEach(element => {
element.classList.add("mscursor-scale")
})
}, 100)
}
document.onmousemove = moove;
document.ontouchmove = moove;
}
var applyTo = applyTo;
var objApplyTo = jQuery(selector);
var isMouseOver = false;
/**
* on obj apply to mouseleave hide cursor
*/
function onObjApplyMouseleave(){
isMouseOver = false;
iDiv.classList.add('uc-mscursor-hidden')
}
/**
* on obj apply to mouseenter hide cursor
*/
function onObjApplyMouseenter(){
isMouseOver = true;
iDiv.classList.remove('uc-mscursor-hidden');
}
/**
* on obj apply to mouseover
*/
function onObjApplyMouseover(){
isMouseOver = true;
}
if (applyTo == "id-class"){
if(isMouseOver == true){
iDiv.classList.remove('uc-mscursor-hidden');
} else{
iDiv.classList.add('uc-mscursor-hidden')
}
objApplyTo.on("mouseleave", onObjApplyMouseleave);
objApplyTo.on("mouseenter", onObjApplyMouseenter);
objApplyTo.on("mouseover", onObjApplyMouseover);
}
}