PageSourceSearch

https://jerseyjackpinball.com/cdn/shop/t/10/assets/keen-slider-dra…?v=16011550147380583581772186610

js jerseyjackpinball.com collected 2026-10-02 03:38:04 UTC 1,953 bytes, 68 lines download raw bytes

1function draggable(slider) {
2
3	// Select all slider containers
4	const draghandles = document.querySelectorAll('.drag-handle-container');
5
6	draghandles.forEach(function(sliderContainer, index) {
7
8		const track = sliderContainer.querySelector('.drag-handle-bar');
9		const handle = sliderContainer.querySelector('.drag-handle');
10
11		// Variables scoped to each slider
12		let isDragging = false;
13		let startX = 0;
14		let handleLeftPercentage = 0;
15
16		// Mouse events
17		handle.addEventListener('mousedown', dragStart);
18		document.addEventListener('mousemove', dragMove);
19		document.addEventListener('mouseup', dragEnd);
20
21		// Touch events
22		handle.addEventListener('touchstart', dragStart);
23		document.addEventListener('touchmove', dragMove);
24		document.addEventListener('touchend', dragEnd);
25
26		function dragStart(e) {
27			e.preventDefault();
28			isDragging = true;
29			handle.classList.add('active');
30
31			startX = (e.touches ? e.touches[0].clientX : e.clientX);
32
33			const computedStyle = window.getComputedStyle(handle);
34			handleLeftPercentage = parseFloat(computedStyle.left) / track.offsetWidth * 100;
35		}
36
37		function dragMove(e) {
38			if (!isDragging) return;
39
40			const currentX = (e.touches ? e.touches[0].clientX : e.clientX);
41			const dx = currentX - startX;
42
43			const trackWidth = track.offsetWidth;
44			let newLeft = (handleLeftPercentage / 100 * trackWidth + dx) / trackWidth * 100;
45			newLeft = Math.max(0, Math.min(newLeft, 100));
46			handle.style.left = newLeft + '%';
47
48			slider.track.to( slider.track.details.max * newLeft / 100 )
49		}
50
51		function dragEnd(e) {
52			if (!isDragging) return;
53			isDragging = false;
54			handle.classList.remove('active');
55
56			// Calculate movement
57			const currentX = (e.touches ? e.touches[0].clientX : e.clientX);
58			const dx = currentX - startX;
59
60			// Calculate new left percentage
61			const trackWidth = track.offsetWidth;
62			let newLeft = (handleLeftPercentage / 100 * trackWidth + dx) / trackWidth * 100;
63		}
64
65	});
66
67
68}

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.