PageSourceSearch

https://brightbluedentalpractice.co.uk/static/site.js

js brightbluedentalpractice.co.uk collected 2026-10-05 23:37:44 UTC 2,160 bytes, 57 lines download raw bytes

1jQuery( document ).ready( function( $ ) {
2    $('.c-marquee__list li').shuffle();
3    $('.c-marquee').removeClass('is-transparent').marquee({
4        //speed in milliseconds of the marquee
5        duration: 40000,
6        //gap in pixels between the tickers
7        gap: 200,
8        //time in milliseconds before the marquee will start animating
9        delayBeforeStart: 0,
10        //'left' or 'right'
11        direction: 'left',
12        //true or false - should the marquee be duplicated to show an effect of continues flow
13        duplicated: true
14    });
15
16    const heroBanner = document.querySelector('.c-hero-banner');
17    if (heroBanner && heroBanner.children.length > 1) {
18        let scrollDirection = 1;
19        setInterval(function() {
20            const bannerWidth = heroBanner.offsetWidth;
21            const itemsVisible = window.innerWidth >= 992 ? 3 : (window.innerWidth >= 480 ? 2 : 1);
22            const scrollStep = bannerWidth / itemsVisible;
23            const maxScrollLeft = heroBanner.scrollWidth - bannerWidth;
24
25            if (scrollDirection === 1 && Math.ceil(heroBanner.scrollLeft) >= maxScrollLeft - 10) {
26                scrollDirection = -1;
27            } else if (scrollDirection === -1 && heroBanner.scrollLeft <= 10) {
28                scrollDirection = 1;
29            }
30
31            heroBanner.scrollBy({ left: scrollStep * scrollDirection, behavior: 'smooth' });
32        }, 5000);
33    }
34
35    const handleSubmit = (e) => {
36        e.preventDefault();
37        fetch("/", {
38            method: "POST",
39            headers: { "Content-Type": "application/x-www-form-urlencoded" },
40            body: new URLSearchParams(new FormData(e.target)).toString(),
41        })
42        .then(() => {
43            const successAlert = document.getElementById("form-success-alert");
44            if (successAlert) {
45                successAlert.style.display = "block";
46            }
47            e.target.reset();
48        })
49        .catch((error) => alert(error));
50    };
51    
52    const contactForm = document.querySelector("form[name='contact']");
53    if (contactForm) {
54        contactForm.addEventListener("submit", handleSubmit);
55    }
56
57});

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.