PageSourceSearch

https://www.datanyze.com/wp-content/themes/datanyze/js/home.js?ver=1.0.0

js datanyze.com collected 2026-09-24 06:50:38 UTC 5,676 bytes, 258 lines download raw bytes

1/**
2 * Skrollr
3 */
4function isMobile() {
5	return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
6}
7
8if (!isMobile()) {
9	if(jQuery(window).width() >= 1025){
10		var s = skrollr.init();
11	}
12	particlesJS('particles-js',
13
14		{
15			"particles": {
16				"number": {
17					"value": 80,
18					"density": {
19						"enable": true,
20						"value_area": 800
21					}
22				},
23				"color": {
24					"value": "#ffffff",
25				},
26				"shape": {
27					"type": "circle",
28					"stroke": {
29						"width": 0,
30						"color": "#ffffff",
31						"opacity": 0.1
32					},
33				},
34				"opacity": {
35					"value": 0.1,
36					"random": false,
37					"anim": {
38						"enable": false,
39						"speed": 2,
40						"opacity_min": 0.1,
41						"sync": false
42					}
43				},
44				"size": {
45					"value": 5,
46					"random": true,
47					"anim": {
48						"enable": false,
49						"speed": 40,
50						"size_min": 0.1,
51						"sync": false
52					}
53				},
54				"line_linked": {
55					"enable": true,
56					"distance": 150,
57					"color": "#ffffff",
58					"opacity": 0.1,
59					"width": 1
60				},
61				"move": {
62					"enable": true,
63					"speed": 2,
64					"direction": "none",
65					"random": false,
66					"straight": false,
67					"out_mode": "out",
68					"attract": {
69						"enable": false,
70						"rotateX": 600,
71						"rotateY": 1200
72					}
73				}
74			},
75			"interactivity": {
76				"detect_on": "canvas",
77				"events": {
78					"onhover": {
79						"enable": true,
80						"mode": "grab"
81					},
82					"onclick": {
83						"enable": true,
84						"mode": "push"
85					},
86					"resize": true
87				},
88				"modes": {
89					"grab": {
90						"distance": 200,
91						"line_linked": {
92							"opacity": .4
93						}
94					},
95					"bubble": {
96						"distance": 200,
97						"size": 10,
98						"duration": 2,
99						"opacity": .2,
100						"speed": 3
101					},
102					"repulse": {
103						"distance": 200
104					},
105					"push": {
106						"particles_nb": 4
107					},
108					"remove": {
109						"particles_nb": 2
110					}
111				}
112			},
113			"retina_detect": true,
114		}
115
116	);
117}
118
119
120(function ($) {
121	$.fn.countTo = function (options) {
122		options = options || {};
123
124		return $(this).each(function () {
125			// set options for current element
126			var settings = $.extend({}, $.fn.countTo.defaults, {
127				from:            $(this).data('from'),
128				to:              $(this).data('to'),
129				speed:           $(this).data('speed'),
130				refreshInterval: $(this).data('refresh-interval'),
131				decimals:        $(this).data('decimals')
132			}, options);
133
134			// how many times to update the value, and how much to increment the value on each update
135			var loops = Math.ceil(settings.speed / settings.refreshInterval),
136				increment = (settings.to - settings.from) / loops;
137
138			// references & variables that will change with each update
139			var self = this,
140				$self = $(this),
141				loopCount = 0,
142				value = settings.from,
143				data = $self.data('countTo') || {};
144
145			$self.data('countTo', data);
146
147			// if an existing interval can be found, clear it first
148			if (data.interval) {
149				clearInterval(data.interval);
150			}
151			data.interval = setInterval(updateTimer, settings.refreshInterval);
152
153			// initialize the element with the starting value
154			render(value);
155
156			function updateTimer() {
157				value += increment;
158				loopCount++;
159
160				render(value);
161
162				if (typeof(settings.onUpdate) == 'function') {
163					settings.onUpdate.call(self, value);
164				}
165
166				if (loopCount >= loops) {
167					// remove the interval
168					$self.removeData('countTo');
169					clearInterval(data.interval);
170					value = settings.to;
171
172					if (typeof(settings.onComplete) == 'function') {
173						settings.onComplete.call(self, value);
174					}
175				}
176			}
177
178			function render(value) {
179				var formattedValue = settings.formatter.call(self, value, settings);
180				$self.html(formattedValue);
181			}
182		});
183	};
184
185	$.fn.countTo.defaults = {
186		from: 0,               // the number the element should start at
187		to: 0,                 // the number the element should end at
188		speed: 1000,           // how long it should take to count between the target numbers
189		refreshInterval: 100,  // how often the element should be updated
190		decimals: 0,           // the number of decimal places to show
191		formatter: formatter,  // handler for formatting the value before rendering
192		onUpdate: null,        // callback method for every time the element is updated
193		onComplete: null       // callback method for when the element finishes updating
194	};
195
196	function formatter(value, settings) {
197		return value.toFixed(settings.decimals);
198	}
199}(jQuery));
200
201var eventFired = false,
202	objectPositionTop = $('#numbers-section').offset().top - 400;
203
204$(window).on('scroll', function() {
205
206	var currentPosition = $(document).scrollTop();
207	if (currentPosition > objectPositionTop && eventFired === false) {
208		eventFired = true;
209		$('.phone-count').data('countToOptions', {
210			formatter: function (value, options) {
211				return value.toFixed(options.decimals).replace(/\B(?=(?:\d{3})+(?!\d))/g, ',');
212			}
213		});
214
215		// start all the timers
216		$('.phone-count').each(count);
217
218		function count(options) {
219			var $this = $(this);
220			options = $.extend({}, options || {}, $this.data('countToOptions') || {});
221			$this.countTo(options);
222		}
223	}
224
225});
226
227
228
229/**
230 * Swiper
231 */
232jQuery(document).ready(function () {
233	let options = {};
234
235	if ( jQuery(".swiper-wrapper .swiper-slide").length > 1 ) {
236		options = {
237			direction: 'horizontal',
238			loop: true,
239			allowTouchMove: true,
240			navigation: {
241				nextEl: '.swiper-button-next',
242				prevEl: '.swiper-button-prev',
243			},
244			pagination: {
245				el: '.swiper-pagination',
246				type: 'bullets',
247				clickable: true,
248			},
249		}
250	} else {
251		options = {
252			loop: false,
253			touchRatio: 0,
254		}
255	}
256
257	var swiper = new Swiper('.swiper-container', options);
258});

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.