PageSourceSearch

https://clipbee.ai/js/script.js?v1.1

js clipbee.ai collected 2026-10-05 12:21:42 UTC 4,187 bytes, 140 lines download raw bytes

1  
2  //////////////FAQ/////////////
3$(document).ready(function () {
4    // Toggle the component with class accordion_body
5    $(".accordion_head").click(function () {
6        if ($('.accordion_body').is(':visible')) {
7            $(".accordion_body").slideUp(300);
8            $(".plusminus").html('<i class="fa fa-angle-down" aria-hidden="true"></i>');
9        }
10        if ($(this).next(".accordion_body").is(':visible')) {
11            $(this).next(".accordion_body").slideUp(300);
12            $(this).find(".plusminus").html('<i class="fa fa-angle-down" aria-hidden="true"></i>');
13        } else {
14            $(this).next(".accordion_body").slideDown(300);
15            $(this).find(".plusminus").html('<i class="fa fa-angle-up" aria-hidden="true"></i>');
16        }
17    });
18}); 
19
20//bannder-slider
21const multiplier = {
22  translate: .1,
23  rotate: .015
24}
25
26new Swiper('.swiper1', {
27  slidesPerView: 2.2,
28  spaceBetween: 150,
29  centeredSlides: true,
30  loop: true,
31  grabCursor: true,
32  navigation: {
33    nextEl: '.swiper-button-next.swiper1-button-next',
34    prevEl: '.swiper-button-prev.swiper1-button-prev',
35  },
36  breakpoints: {
37    1500: { spaceBetween: 150 }, 
38    1400: { spaceBetween: 100 },
39    992: { spaceBetween: 50 },
40    768: { spaceBetween: 30 },
41    640: {
42      slidesPerView: 1,  
43      spaceBetween: 0,
44    },
45    100: {
46      slidesPerView: 1,  
47      spaceBetween: 0,
48    } 
49  },
50});
51 
52function calculateWheel() {
53  const slides = document.querySelectorAll('.single')
54  slides.forEach((slide, i) => {
55      const rect = slide.getBoundingClientRect()
56      const r = window.innerWidth * .5 - (rect.x + rect.width * .5)
57      let ty = Math.abs(r) * multiplier.translate - rect.width * multiplier.translate
58
59      if (ty < 0) {
60          ty = 0
61      }
62      const transformOrigin = r < 0 ? 'left top' : 'right top'
63      slide.style.transform = `translate(0, ${ty}px) rotate(${-r * multiplier.rotate}deg)`
64      slide.style.transformOrigin = transformOrigin
65  })
66}
67
68function raf() {
69  requestAnimationFrame(raf)
70  calculateWheel()
71}
72
73raf();
74
75
76////////////
77 
78document.addEventListener("DOMContentLoaded", () => {
79    const wrapper = document.querySelector(".intro-detail-img");
80    const video = wrapper.querySelector(".my-video");
81
82    // Play / Pause
83    const playBtn = wrapper.querySelector(".play-toggle");
84    const playIcon = wrapper.querySelector(".icon-play");
85    const pauseIcon = wrapper.querySelector(".icon-pause");
86
87    // Mute / Unmute
88    const muteBtn = wrapper.querySelector(".mute-toggle");
89    const mutedIcon = wrapper.querySelector(".icon-muted");
90    const unmutedIcon = wrapper.querySelector(".icon-unmuted");
91
92    /* PLAY / PAUSE */
93    playBtn.addEventListener("click", () => {
94        // Ensure sources are loaded (fix for Firefox lazy loading)
95        var sources = video.querySelectorAll("source");
96        var needsLoad = false;
97        sources.forEach(function(source) {
98            if (!source.src && source.dataset.src) {
99                source.src = source.dataset.src;
100                needsLoad = true;
101            }
102        });
103        
104        if (needsLoad) {
105            video.load();
106            video.classList.remove("lazy");
107            // Wait for video to be ready then play
108            video.addEventListener("canplay", function onCanPlay() {
109                video.removeEventListener("canplay", onCanPlay);
110                video.play();
111            }, { once: true });
112        } else {
113            video.paused ? video.play() : video.pause();
114        }
115    });
116
117    video.addEventListener("play", () => {
118        wrapper.classList.add("playing");
119        playIcon.style.display = "none";
120        pauseIcon.style.display = "block";
121    });
122
123    video.addEventListener("pause", () => {
124        wrapper.classList.remove("playing");
125        playIcon.style.display = "block";
126        pauseIcon.style.display = "none";
127    });
128
129    /* MUTE / UNMUTE */
130    muteBtn.addEventListener("click", (e) => {
131        e.stopPropagation(); // IMPORTANT
132        video.muted = !video.muted;
133
134        mutedIcon.style.display = video.muted ? "block" : "none";
135        unmutedIcon.style.display = video.muted ? "none" : "block";
136    });
137});
138 
139
140   

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.