PageSourceSearch

https://runwaytimes.com/wp-content/themes/soledad/js/cursor.js?ver=8.6.8

js runwaytimes.com collected 2026-10-04 08:11:40 UTC 4,367 bytes, 159 lines download raw bytes

1(function ($) {
2	"use strict";
3	var ELPENCI_CR = ELPENCI_CR || {};
4
5	ELPENCI_CR.PenciCustomCursor = function () {
6		if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
7			return;
8		}
9		if ($("body").hasClass("penci-cc-cursor")) {
10			const cursorInnerEl = document.querySelector(
11				".penci-ccircle-cinner"
12			);
13			const cursorOuterEl = document.querySelector(
14				".penci-ccircle-couter"
15			);
16
17			if (!cursorInnerEl || !cursorOuterEl) return;
18
19			let lastY,
20				lastX = 0;
21			let magneticFlag = false;
22
23			// move
24			window.onmousemove = function (event) {
25				if (!magneticFlag) {
26					cursorOuterEl.style.transform =
27						"translate(" +
28						event.clientX +
29						"px, " +
30						event.clientY +
31						"px" +
32						")";
33				}
34				cursorInnerEl.style.transform =
35					"translate(" +
36					event.clientX +
37					"px, " +
38					event.clientY +
39					"px" +
40					")";
41				lastY = event.clientY;
42				lastX = event.clientX;
43
44				//iframe fix
45				if ($(event.target).is("iframe")) {
46					cursorOuterEl.style.visibility = "hidden";
47					cursorInnerEl.style.visibility = "hidden";
48				} else {
49					cursorOuterEl.style.visibility = "visible";
50					cursorInnerEl.style.visibility = "visible";
51				}
52			};
53
54			// links hover
55			$("body").on("mouseenter", "a, .cursor-as-pointer", function () {
56				cursorInnerEl.classList.add("penci-clinkh");
57				cursorOuterEl.classList.add("penci-clinkh");
58			});
59			$("body").on("mouseleave", "a, .cursor-as-pointer", function () {
60				if (
61					$(this).is("a") &&
62					$(this).closest(".cursor-as-pointer").length
63				) {
64					return;
65				}
66				cursorInnerEl.classList.remove("penci-clinkh");
67				cursorOuterEl.classList.remove("penci-clinkh");
68			});
69
70			// additional hover cursor class
71			$("body").on("mouseenter", "[data-cursor-class]", function () {
72				const cursorClass = $(this).attr("data-cursor-class");
73
74				if (cursorClass.indexOf("dark-color") != -1) {
75					cursorInnerEl.classList.add("dark-color");
76					cursorOuterEl.classList.add("dark-color");
77				}
78
79				if (cursorClass.indexOf("cursor-link") != -1) {
80					cursorInnerEl.classList.add("cursor-link");
81					cursorOuterEl.classList.add("cursor-link");
82				}
83			});
84			$("body").on("mouseleave", "[data-cursor-class]", function () {
85				const cursorClass = $(this).attr("data-cursor-class");
86				if (cursorClass.indexOf("dark-color") != -1) {
87					cursorInnerEl.classList.remove("dark-color");
88					cursorOuterEl.classList.remove("dark-color");
89				}
90
91				if (cursorClass.indexOf("cursor-link") != -1) {
92					cursorInnerEl.classList.remove("cursor-link");
93					cursorOuterEl.classList.remove("cursor-link");
94				}
95			});
96
97			// magnet elements
98			$("body").on(
99				"mouseenter",
100				".cursor-magnet, .icon-button",
101				function () {
102					const $elem = $(this);
103					const scrollTop =
104						window.pageYOffset ||
105						document.documentElement.scrollTop;
106					cursorOuterEl.style.transition = "all .2s ease-out";
107					cursorOuterEl.style.transform =
108						"translate(" +
109						$elem.offset().left +
110						"px, " +
111						($elem.offset().top - scrollTop) +
112						"px" +
113						")";
114					cursorOuterEl.style.width = $elem.width() + "px";
115					cursorOuterEl.style.height = $elem.height() + "px";
116					cursorOuterEl.style.marginLeft = 0;
117					cursorOuterEl.style.marginTop = 0;
118					magneticFlag = true;
119				}
120			);
121
122			$("body").on(
123				"mouseleave",
124				".cursor-magnet, .icon-button",
125				RemoveMagneticFromCursor
126			);
127
128			function RemoveMagneticFromCursor() {
129				cursorOuterEl.style.transition = null;
130				cursorOuterEl.style.width = null;
131				cursorOuterEl.style.height = null;
132				cursorOuterEl.style.marginLeft = null;
133				cursorOuterEl.style.marginTop = null;
134				magneticFlag = false;
135			}
136
137			// Custom leave trigger
138			$("body").on("penci_mouseleave", function () {
139				RemoveMagneticFromCursor();
140				cursorOuterEl.style.transform = cursorInnerEl.style.transform;
141				cursorInnerEl.classList.remove("penci-clinkh");
142				cursorOuterEl.classList.remove("penci-clinkh");
143			});
144
145			$("body").on("mouseenter", "iframe", function () {
146				cursorOuterEl.style.visibility = "hidden";
147				cursorInnerEl.style.visibility = "hidden";
148			});
149
150			cursorInnerEl.style.visibility = "visible";
151			cursorOuterEl.style.visibility = "visible";
152		}
153	};
154
155	$(document).ready(function () {
156		ELPENCI_CR.PenciCustomCursor();
157	});
158
159})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.