Merge branch 'alika' of http://bibgit.com/Subash/new_raffles
This commit is contained in:
8
public/raffles/assets/css/utility.min.css
vendored
8
public/raffles/assets/css/utility.min.css
vendored
@@ -1493,6 +1493,10 @@
|
|||||||
.py-10 {
|
.py-10 {
|
||||||
padding-top: 10px;
|
padding-top: 10px;
|
||||||
}
|
}
|
||||||
|
.pt-12,
|
||||||
|
.py-12 {
|
||||||
|
padding-top: 12px;
|
||||||
|
}
|
||||||
.pt-15,
|
.pt-15,
|
||||||
.py-15 {
|
.py-15 {
|
||||||
padding-top: 15px;
|
padding-top: 15px;
|
||||||
@@ -1855,6 +1859,10 @@
|
|||||||
.py-10 {
|
.py-10 {
|
||||||
padding-bottom: 10px;
|
padding-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
.pb-12,
|
||||||
|
.py-12 {
|
||||||
|
padding-bottom: 12px;
|
||||||
|
}
|
||||||
.pb-15,
|
.pb-15,
|
||||||
.py-15 {
|
.py-15 {
|
||||||
padding-bottom: 15px;
|
padding-bottom: 15px;
|
||||||
|
@@ -1,112 +1,124 @@
|
|||||||
|
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", function () {
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
let intouchBtn = document.getElementById("get-in-touch");
|
const openButtons = document.querySelectorAll(".open-intouch");
|
||||||
|
// let intouchBtn = document.getElementById("get-in-touch");
|
||||||
let intouchPopup = document.getElementById("get-in-touch-page");
|
let intouchPopup = document.getElementById("get-in-touch-page");
|
||||||
let closeBtns = document.getElementById("close-btn");
|
let closeBtns = document.getElementById("close-btn");
|
||||||
|
const mobileRedirectURL = "book-counsellor.php"; // Change to your desired mobile page URL
|
||||||
|
|
||||||
|
openButtons.forEach((button) => {
|
||||||
// Show login popup
|
button.addEventListener("click", function () {
|
||||||
intouchBtn.addEventListener("click", function () {
|
if (window.innerWidth > 992) {
|
||||||
intouchPopup.classList.add("active");
|
// Desktop and tablets
|
||||||
// alert("clicked ")
|
intouchPopup.classList.add("active");
|
||||||
|
} else {
|
||||||
|
// Mobile – redirect to a page
|
||||||
|
window.location.href = mobileRedirectURL;
|
||||||
|
}
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// Hide both popups when clicking any close button
|
// Hide both popups when clicking any close button
|
||||||
closeBtns.addEventListener("click", function () {
|
closeBtns.addEventListener("click", function () {
|
||||||
intouchPopup.classList.remove("active");
|
intouchPopup.classList.remove("active");
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Hide popups when clicking outside them
|
// Hide popups when clicking outside them
|
||||||
window.addEventListener("click", function (event) {
|
window.addEventListener("click", function (event) {
|
||||||
if (event.target.classList.contains("get-in-touch-page")) {
|
if (event.target.classList.contains("get-in-touch-page")) {
|
||||||
intouchPopup.classList.remove("active");
|
intouchPopup.classList.remove("active");
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// university image animation
|
// university image animation
|
||||||
window.addEventListener('DOMContentLoaded', () => {
|
window.addEventListener("DOMContentLoaded", () => {
|
||||||
const section = document.getElementById('animated-section');
|
const section = document.getElementById("animated-section");
|
||||||
const leftItems = document.querySelectorAll('.left-group .line-item');
|
const leftItems = document.querySelectorAll(".left-group .line-item");
|
||||||
const rightItems = document.querySelectorAll('.right-group .line-item');
|
const rightItems = document.querySelectorAll(".right-group .line-item");
|
||||||
|
|
||||||
const observer = new IntersectionObserver((entries) => {
|
const observer = new IntersectionObserver(
|
||||||
entries.forEach(entry => {
|
(entries) => {
|
||||||
if (entry.isIntersecting) {
|
entries.forEach((entry) => {
|
||||||
leftItems.forEach((item, i) => {
|
if (entry.isIntersecting) {
|
||||||
setTimeout(() => item.classList.add('visible'), i * 300);
|
leftItems.forEach((item, i) => {
|
||||||
});
|
setTimeout(
|
||||||
rightItems.forEach((item, i) => {
|
() => item.classList.add("visible"),
|
||||||
setTimeout(() => item.classList.add('visible'), i * 300);
|
i * 300
|
||||||
});
|
);
|
||||||
} else {
|
});
|
||||||
leftItems.forEach(item => item.classList.remove('visible'));
|
rightItems.forEach((item, i) => {
|
||||||
rightItems.forEach(item => item.classList.remove('visible'));
|
setTimeout(
|
||||||
}
|
() => item.classList.add("visible"),
|
||||||
});
|
i * 300
|
||||||
}, { threshold: 0.5 });
|
);
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
leftItems.forEach((item) =>
|
||||||
|
item.classList.remove("visible")
|
||||||
|
);
|
||||||
|
rightItems.forEach((item) =>
|
||||||
|
item.classList.remove("visible")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
{ threshold: 0.5 }
|
||||||
|
);
|
||||||
|
|
||||||
observer.observe(section);
|
observer.observe(section);
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// tabs in free resources
|
// tabs in free resources
|
||||||
function showTab(id) {
|
function showTab(id) {
|
||||||
// Remove active class from all buttons
|
// Remove active class from all buttons
|
||||||
document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active'));
|
document
|
||||||
|
.querySelectorAll(".tab-btn")
|
||||||
|
.forEach((btn) => btn.classList.remove("active"));
|
||||||
|
|
||||||
// Hide all tab contents
|
// Hide all tab contents
|
||||||
document.querySelectorAll('.tab-content').forEach(tab => tab.classList.remove('active'));
|
document
|
||||||
|
.querySelectorAll(".tab-content")
|
||||||
|
.forEach((tab) => tab.classList.remove("active"));
|
||||||
|
|
||||||
// Show the selected tab
|
// Show the selected tab
|
||||||
document.getElementById(id).classList.add('active');
|
document.getElementById(id).classList.add("active");
|
||||||
}
|
}
|
||||||
|
|
||||||
// NEW: Attach click event on all tab buttons
|
// NEW: Attach click event on all tab buttons
|
||||||
document.querySelectorAll('.tab-btn').forEach(button => {
|
document.querySelectorAll(".tab-btn").forEach((button) => {
|
||||||
button.addEventListener('click', function () {
|
button.addEventListener("click", function () {
|
||||||
// Remove active from all
|
// Remove active from all
|
||||||
document.querySelectorAll('.tab-btn').forEach(btn => btn.classList.remove('active'));
|
document
|
||||||
|
.querySelectorAll(".tab-btn")
|
||||||
|
.forEach((btn) => btn.classList.remove("active"));
|
||||||
|
|
||||||
// Add active to clicked button
|
// Add active to clicked button
|
||||||
this.classList.add('active');
|
this.classList.add("active");
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// counter section
|
// counter section
|
||||||
|
|
||||||
document.addEventListener("DOMContentLoaded", function () {
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
const counters = document.querySelectorAll(".counter");
|
const counters = document.querySelectorAll(".counter");
|
||||||
|
|
||||||
const observer = new IntersectionObserver(entries => {
|
const observer = new IntersectionObserver((entries) => {
|
||||||
entries.forEach(entry => {
|
entries.forEach((entry) => {
|
||||||
const counter = entry.target;
|
const counter = entry.target;
|
||||||
|
|
||||||
if (entry.isIntersecting) {
|
if (entry.isIntersecting) {
|
||||||
if (!counter.classList.contains('started')) {
|
if (!counter.classList.contains("started")) {
|
||||||
startCounting(counter);
|
startCounting(counter);
|
||||||
counter.classList.add('started');
|
counter.classList.add("started");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
resetCounter(counter);
|
resetCounter(counter);
|
||||||
counter.classList.remove('started');
|
counter.classList.remove("started");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
counters.forEach(counter => {
|
counters.forEach((counter) => {
|
||||||
observer.observe(counter);
|
observer.observe(counter);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -132,19 +144,18 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// course finder ball bouncing
|
// course finder ball bouncing
|
||||||
window.addEventListener('DOMContentLoaded', () => {
|
window.addEventListener("DOMContentLoaded", () => {
|
||||||
const canvas = document.getElementById('flagCanvas');
|
const canvas = document.getElementById("flagCanvas");
|
||||||
const ctx = canvas.getContext('2d');
|
const ctx = canvas.getContext("2d");
|
||||||
const ballSection = document.getElementById('ball-section');
|
const ballSection = document.getElementById("ball-section");
|
||||||
|
|
||||||
// Get responsive ball size
|
// Get responsive ball size
|
||||||
function getBallSize() {
|
function getBallSize() {
|
||||||
const width = window.innerWidth;
|
const width = window.innerWidth;
|
||||||
if (width < 480) return 20;
|
if (width < 480) return 20;
|
||||||
if (width < 768) return 30;
|
if (width < 768) return 25;
|
||||||
return 40;
|
return 35;
|
||||||
}
|
}
|
||||||
|
|
||||||
let ballSize = getBallSize();
|
let ballSize = getBallSize();
|
||||||
@@ -156,12 +167,12 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||||||
ballSize = getBallSize();
|
ballSize = getBallSize();
|
||||||
}
|
}
|
||||||
resizeCanvas();
|
resizeCanvas();
|
||||||
window.addEventListener('resize', resizeCanvas);
|
window.addEventListener("resize", resizeCanvas);
|
||||||
|
|
||||||
const gravity = 0.25;
|
const gravity = 1;
|
||||||
const friction = 0.8;
|
const friction = 0.8;
|
||||||
const elasticity = 0.75;
|
const elasticity = 0.75;
|
||||||
const flags = ['us', 'gb', 'np', 'dk', 'ca', 'au'];
|
const flags = ["us", "gb", "np", "dk", "ca", "au"];
|
||||||
let balls = [];
|
let balls = [];
|
||||||
|
|
||||||
class Ball {
|
class Ball {
|
||||||
@@ -193,9 +204,15 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||||||
const sy = (img.height - size) / 2;
|
const sy = (img.height - size) / 2;
|
||||||
|
|
||||||
ctx.drawImage(
|
ctx.drawImage(
|
||||||
img, sx, sy, size, size,
|
img,
|
||||||
this.x - this.radius, this.y - this.radius,
|
sx,
|
||||||
this.radius * 2, this.radius * 2
|
sy,
|
||||||
|
size,
|
||||||
|
size,
|
||||||
|
this.x - this.radius,
|
||||||
|
this.y - this.radius,
|
||||||
|
this.radius * 2,
|
||||||
|
this.radius * 2
|
||||||
);
|
);
|
||||||
|
|
||||||
ctx.restore();
|
ctx.restore();
|
||||||
@@ -280,7 +297,14 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||||||
const flag = flags[i % flags.length];
|
const flag = flags[i % flags.length];
|
||||||
const x = Math.random() * (canvas.width - ballSize * 2) + ballSize;
|
const x = Math.random() * (canvas.width - ballSize * 2) + ballSize;
|
||||||
const y = -Math.random() * 300;
|
const y = -Math.random() * 300;
|
||||||
balls.push(new Ball(x, y, ballSize, `assets/images/logo/country/${flag}.png`));
|
balls.push(
|
||||||
|
new Ball(
|
||||||
|
x,
|
||||||
|
y,
|
||||||
|
ballSize,
|
||||||
|
`raffles/assets/images/logo/country/${flag}.png`
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -289,7 +313,7 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||||||
let draggedBall = null;
|
let draggedBall = null;
|
||||||
let lastMouse = { x: 0, y: 0 };
|
let lastMouse = { x: 0, y: 0 };
|
||||||
|
|
||||||
canvas.addEventListener('pointerdown', (e) => {
|
canvas.addEventListener("pointerdown", (e) => {
|
||||||
const rect = canvas.getBoundingClientRect();
|
const rect = canvas.getBoundingClientRect();
|
||||||
const scaleX = canvas.width / rect.width;
|
const scaleX = canvas.width / rect.width;
|
||||||
const scaleY = canvas.height / rect.height;
|
const scaleY = canvas.height / rect.height;
|
||||||
@@ -311,7 +335,7 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
canvas.addEventListener('pointermove', (e) => {
|
canvas.addEventListener("pointermove", (e) => {
|
||||||
if (draggedBall) {
|
if (draggedBall) {
|
||||||
const rect = canvas.getBoundingClientRect();
|
const rect = canvas.getBoundingClientRect();
|
||||||
const scaleX = canvas.width / rect.width;
|
const scaleX = canvas.width / rect.width;
|
||||||
@@ -327,7 +351,7 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
window.addEventListener('pointerup', () => {
|
window.addEventListener("pointerup", () => {
|
||||||
if (draggedBall) {
|
if (draggedBall) {
|
||||||
draggedBall.dragging = false;
|
draggedBall.dragging = false;
|
||||||
draggedBall = null;
|
draggedBall = null;
|
||||||
@@ -340,55 +364,63 @@ window.addEventListener('DOMContentLoaded', () => {
|
|||||||
|
|
||||||
function animate() {
|
function animate() {
|
||||||
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
ctx.clearRect(0, 0, canvas.width, canvas.height);
|
||||||
balls.forEach(ball => ball.update(balls));
|
balls.forEach((ball) => ball.update(balls));
|
||||||
animationId = requestAnimationFrame(animate);
|
animationId = requestAnimationFrame(animate);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Intersection Observer
|
// Intersection Observer
|
||||||
const observer = new IntersectionObserver((entries) => {
|
const observer = new IntersectionObserver(
|
||||||
entries.forEach(entry => {
|
(entries) => {
|
||||||
if (entry.isIntersecting) {
|
entries.forEach((entry) => {
|
||||||
if (!isAnimating) {
|
if (entry.isIntersecting) {
|
||||||
createBalls();
|
if (!isAnimating) {
|
||||||
isAnimating = true;
|
createBalls();
|
||||||
animate();
|
isAnimating = true;
|
||||||
|
animate();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (isAnimating) {
|
||||||
|
cancelAnimationFrame(animationId);
|
||||||
|
isAnimating = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
});
|
||||||
if (isAnimating) {
|
},
|
||||||
cancelAnimationFrame(animationId);
|
{ threshold: 0.1 }
|
||||||
isAnimating = false;
|
);
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}, { threshold: 0.1 });
|
|
||||||
|
|
||||||
observer.observe(ballSection);
|
observer.observe(ballSection);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// scroll detect in slider
|
// scroll detect in slider
|
||||||
// JS script
|
// JS script
|
||||||
// JS for updating label on scroll
|
// JS for updating label on scroll
|
||||||
window.addEventListener('load', () => {
|
window.addEventListener("load", () => {
|
||||||
console.log("Window loaded. Running scroll indicator script.");
|
console.log("Window loaded. Running scroll indicator script.");
|
||||||
|
|
||||||
const scrollLabel = document.getElementById('scroll-indicator-label');
|
const scrollLabel = document.getElementById("scroll-indicator-label");
|
||||||
console.log("Scroll Label Element:", scrollLabel);
|
console.log("Scroll Label Element:", scrollLabel);
|
||||||
|
|
||||||
const sections = document.querySelectorAll('.scroll-section');
|
const sections = document.querySelectorAll(".scroll-section");
|
||||||
console.log("Found Sections:", sections);
|
console.log("Found Sections:", sections);
|
||||||
|
|
||||||
if (!scrollLabel || sections.length === 0) {
|
if (!scrollLabel || sections.length === 0) {
|
||||||
console.error("Could not find scroll label or sections to observe. Exiting.");
|
console.error(
|
||||||
|
"Could not find scroll label or sections to observe. Exiting."
|
||||||
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const observer = new IntersectionObserver(
|
const observer = new IntersectionObserver(
|
||||||
(entries) => {
|
(entries) => {
|
||||||
console.log("IntersectionObserver callback fired:", entries);
|
console.log("IntersectionObserver callback fired:", entries);
|
||||||
entries.forEach(entry => {
|
entries.forEach((entry) => {
|
||||||
console.log("Observing entry:", entry.target, "Is intersecting:", entry.isIntersecting);
|
console.log(
|
||||||
|
"Observing entry:",
|
||||||
|
entry.target,
|
||||||
|
"Is intersecting:",
|
||||||
|
entry.isIntersecting
|
||||||
|
);
|
||||||
if (entry.isIntersecting) {
|
if (entry.isIntersecting) {
|
||||||
// --- CHANGE IS HERE ---
|
// --- CHANGE IS HERE ---
|
||||||
const sectionId = entry.target.id; // Get the ID of the intersecting section
|
const sectionId = entry.target.id; // Get the ID of the intersecting section
|
||||||
@@ -396,7 +428,8 @@ window.addEventListener('load', () => {
|
|||||||
|
|
||||||
console.log("Intersecting section ID:", sectionId);
|
console.log("Intersecting section ID:", sectionId);
|
||||||
|
|
||||||
if (sectionId) { // Check if ID exists
|
if (sectionId) {
|
||||||
|
// Check if ID exists
|
||||||
// Optional: Format the ID if needed (example: replace hyphens, capitalize)
|
// Optional: Format the ID if needed (example: replace hyphens, capitalize)
|
||||||
// let displayText = sectionId.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase());
|
// let displayText = sectionId.replace(/-/g, ' ').replace(/\b\w/g, l => l.toUpperCase());
|
||||||
// scrollLabel.textContent = displayText;
|
// scrollLabel.textContent = displayText;
|
||||||
@@ -404,23 +437,28 @@ window.addEventListener('load', () => {
|
|||||||
// Simple version: Use the ID directly
|
// Simple version: Use the ID directly
|
||||||
scrollLabel.textContent = sectionId;
|
scrollLabel.textContent = sectionId;
|
||||||
console.log("Updated scroll label text to:", sectionId);
|
console.log("Updated scroll label text to:", sectionId);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
console.warn("Intersecting section is missing an ID attribute:", entry.target);
|
console.warn(
|
||||||
|
"Intersecting section is missing an ID attribute:",
|
||||||
|
entry.target
|
||||||
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
threshold: 0.5 // Trigger when 50% of the section is visible
|
threshold: 0.5, // Trigger when 50% of the section is visible
|
||||||
// Consider adjusting rootMargin if you have sticky headers/footers
|
// Consider adjusting rootMargin if you have sticky headers/footers
|
||||||
// rootMargin: "-50px 0px -50px 0px" // Example: ignore top/bottom 50px
|
// rootMargin: "-50px 0px -50px 0px" // Example: ignore top/bottom 50px
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
sections.forEach(section => {
|
sections.forEach((section) => {
|
||||||
if (!section.id) {
|
if (!section.id) {
|
||||||
console.warn("Section is missing an ID, it won't update the label:", section);
|
console.warn(
|
||||||
|
"Section is missing an ID, it won't update the label:",
|
||||||
|
section
|
||||||
|
);
|
||||||
}
|
}
|
||||||
console.log("Observing section:", section);
|
console.log("Observing section:", section);
|
||||||
observer.observe(section);
|
observer.observe(section);
|
||||||
@@ -432,7 +470,6 @@ window.addEventListener('load', () => {
|
|||||||
// Optional: Add a check outside the load event to see if the script file itself is loaded
|
// Optional: Add a check outside the load event to see if the script file itself is loaded
|
||||||
console.log("Scroll indicator script file loaded.");
|
console.log("Scroll indicator script file loaded.");
|
||||||
|
|
||||||
|
|
||||||
// aeroplane flying
|
// aeroplane flying
|
||||||
const plane = document.getElementById("plane");
|
const plane = document.getElementById("plane");
|
||||||
|
|
||||||
@@ -510,7 +547,7 @@ function updatePosition() {
|
|||||||
|
|
||||||
planeX += vx;
|
planeX += vx;
|
||||||
|
|
||||||
// 🟢 Smoothly move downwardMovement towards targetDownwardMovement
|
// Smoothly move downwardMovement towards targetDownwardMovement
|
||||||
downwardMovement += (targetDownwardMovement - downwardMovement) * 0.05;
|
downwardMovement += (targetDownwardMovement - downwardMovement) * 0.05;
|
||||||
|
|
||||||
// progress across screen
|
// progress across screen
|
||||||
@@ -524,8 +561,8 @@ function updatePosition() {
|
|||||||
|
|
||||||
const finalY = planeYBase + downwardMovement + waveY + dodgeOffset;
|
const finalY = planeYBase + downwardMovement + waveY + dodgeOffset;
|
||||||
|
|
||||||
plane.style.left = planeX + 'px';
|
plane.style.left = planeX + "px";
|
||||||
plane.style.top = finalY + 'px';
|
plane.style.top = finalY + "px";
|
||||||
|
|
||||||
dodgeOffset *= dodgeDecay;
|
dodgeOffset *= dodgeDecay;
|
||||||
|
|
||||||
@@ -547,16 +584,14 @@ document.addEventListener("mousemove", function (e) {
|
|||||||
|
|
||||||
updatePosition();
|
updatePosition();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// gallery image
|
// gallery image
|
||||||
const images = Array.from(document.querySelectorAll('.gallery img'));
|
const images = Array.from(document.querySelectorAll(".gallery img"));
|
||||||
const lightbox = document.getElementById('lightbox');
|
const lightbox = document.getElementById("lightbox");
|
||||||
const lightboxImg = document.getElementById('lightbox-img');
|
const lightboxImg = document.getElementById("lightbox-img");
|
||||||
let currentIndex = 0;
|
let currentIndex = 0;
|
||||||
|
|
||||||
images.forEach((img, index) => {
|
images.forEach((img, index) => {
|
||||||
img.addEventListener('click', () => {
|
img.addEventListener("click", () => {
|
||||||
currentIndex = index;
|
currentIndex = index;
|
||||||
showImage();
|
showImage();
|
||||||
});
|
});
|
||||||
@@ -564,11 +599,11 @@ images.forEach((img, index) => {
|
|||||||
|
|
||||||
function showImage() {
|
function showImage() {
|
||||||
lightboxImg.src = images[currentIndex].src;
|
lightboxImg.src = images[currentIndex].src;
|
||||||
lightbox.classList.add('active');
|
lightbox.classList.add("active");
|
||||||
}
|
}
|
||||||
|
|
||||||
function closeLightbox() {
|
function closeLightbox() {
|
||||||
lightbox.classList.remove('active');
|
lightbox.classList.remove("active");
|
||||||
}
|
}
|
||||||
|
|
||||||
function changeSlide(step) {
|
function changeSlide(step) {
|
||||||
@@ -576,91 +611,139 @@ function changeSlide(step) {
|
|||||||
showImage();
|
showImage();
|
||||||
}
|
}
|
||||||
|
|
||||||
document.addEventListener('keydown', e => {
|
document.addEventListener("keydown", (e) => {
|
||||||
if (!lightbox.classList.contains('active')) return;
|
if (!lightbox.classList.contains("active")) return;
|
||||||
if (e.key === 'ArrowRight') changeSlide(1);
|
if (e.key === "ArrowRight") changeSlide(1);
|
||||||
if (e.key === 'ArrowLeft') changeSlide(-1);
|
if (e.key === "ArrowLeft") changeSlide(-1);
|
||||||
if (e.key === 'Escape') closeLightbox();
|
if (e.key === "Escape") closeLightbox();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// cost calculator progress
|
|
||||||
// cost calculator progress
|
// cost calculator progress
|
||||||
|
|
||||||
let currentStep = 1;
|
let currentStep = 1;
|
||||||
const totalSteps = 7; // updated to match HTML
|
const totalSteps = 5;
|
||||||
const monkey = document.getElementById('monkey').querySelector('img');
|
const monkey = document.getElementById("monkey").querySelector("img");
|
||||||
const monkeyContainer = document.getElementById('monkey');
|
const monkeyContainer = document.getElementById("monkey");
|
||||||
const nextBtn = document.getElementById('nextBtn');
|
const nextBtn = document.getElementById("nextBtn");
|
||||||
const doneBtn = document.getElementById('doneBtn');
|
const prevBtn = document.getElementById("prevBtn");
|
||||||
const bananalast = document.getElementById('b5');
|
const doneBtn = document.getElementById("doneBtn");
|
||||||
|
|
||||||
const monkeyImages = [
|
const monkeyImages = [
|
||||||
"/raffles/assets/images/icons/monkey1.png",
|
"raffles/assets/images/icons/monkey2.png",
|
||||||
"/raffles/assets/images/icons/monkey2.png",
|
"raffles/assets/images/icons/monkey2.png",
|
||||||
"/raffles/assets/images/icons/monkey3.png",
|
"raffles/assets/images/icons/monkey3.png",
|
||||||
"/raffles/assets/images/icons/monkey4.png",
|
"raffles/assets/images/icons/monkey4.png",
|
||||||
"/raffles/assets/images/icons/monkey5.png",
|
"raffles/assets/images/icons/monkey5.png",
|
||||||
"/raffles/assets/images/icons/monkey6.png",
|
"raffles/assets/images/icons/monkey6.png",
|
||||||
"/raffles/assets/images/icons/monkey7.png"
|
"raffles/assets/images/icons/monkey7.png",
|
||||||
];
|
];
|
||||||
|
|
||||||
nextBtn.addEventListener('click', () => {
|
// Function to update monkey position based on screen size
|
||||||
|
function updateMonkeyPosition() {
|
||||||
|
let percent;
|
||||||
|
|
||||||
|
if (window.innerWidth <= 540) {
|
||||||
|
percent = ((currentStep - 1) / (totalSteps - 0.2)) * 100;
|
||||||
|
} else if (window.innerWidth <= 768) {
|
||||||
|
percent = ((currentStep - 1) / (totalSteps - 0.3)) * 100;
|
||||||
|
} else if (window.innerWidth <= 992) {
|
||||||
|
percent = ((currentStep - 1) / (totalSteps - 0.7)) * 100;
|
||||||
|
} else if (window.innerWidth <= 1180) {
|
||||||
|
percent = ((currentStep - 1) / (totalSteps - 0.2)) * 100;
|
||||||
|
} else {
|
||||||
|
percent = ((currentStep - 1) / (totalSteps - 0.5)) * 100;
|
||||||
|
}
|
||||||
|
|
||||||
|
monkeyContainer.style.left = percent + "%";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to update button visibility
|
||||||
|
function updateButtonVisibility() {
|
||||||
|
if (currentStep === 1) {
|
||||||
|
prevBtn.style.display = "none"; // Hide Previous on first step
|
||||||
|
} else {
|
||||||
|
prevBtn.style.display = "flex"; // Show Previous on other steps
|
||||||
|
}
|
||||||
|
|
||||||
|
if (currentStep === totalSteps) {
|
||||||
|
nextBtn.style.display = "none";
|
||||||
|
doneBtn.style.display = "block";
|
||||||
|
} else {
|
||||||
|
nextBtn.style.display = "flex";
|
||||||
|
doneBtn.style.display = "none";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Next button click event
|
||||||
|
nextBtn.addEventListener("click", () => {
|
||||||
if (currentStep < totalSteps) {
|
if (currentStep < totalSteps) {
|
||||||
currentStep++;
|
currentStep++;
|
||||||
|
|
||||||
// Calculate monkey position based on window width
|
// Update monkey position
|
||||||
let percent;
|
updateMonkeyPosition();
|
||||||
if (window.innerWidth <= 540) {
|
|
||||||
percent = ((currentStep - 1) / (totalSteps - 0.2)) * 100;
|
// Change monkey image
|
||||||
} else if (window.innerWidth <= 768) {
|
|
||||||
percent = ((currentStep - 1) / (totalSteps - 0.3)) * 100;
|
|
||||||
} else if (window.innerWidth <= 992) {
|
|
||||||
percent = ((currentStep - 1) / (totalSteps - 0.7)) * 100;
|
|
||||||
} else if (window.innerWidth <= 1180) {
|
|
||||||
percent = ((currentStep - 1) / (totalSteps - 0.2)) * 100;
|
|
||||||
} else {
|
|
||||||
percent = ((currentStep - 1) / (totalSteps - 0.5)) * 100;
|
|
||||||
}
|
|
||||||
monkeyContainer.style.left = percent + '%';
|
|
||||||
|
|
||||||
// Update monkey image
|
|
||||||
monkey.src = monkeyImages[currentStep - 1];
|
monkey.src = monkeyImages[currentStep - 1];
|
||||||
|
|
||||||
// Switch step content
|
// Update step content
|
||||||
const currentContent = document.getElementById('step' + (currentStep - 1));
|
const currentContent = document.getElementById("step" + (currentStep - 1));
|
||||||
const nextContent = document.getElementById('step' + currentStep);
|
const nextContent = document.getElementById("step" + currentStep);
|
||||||
if (currentContent && nextContent) {
|
if (currentContent && nextContent) {
|
||||||
currentContent.classList.remove('active');
|
currentContent.classList.remove("active");
|
||||||
nextContent.classList.add('active');
|
nextContent.classList.add("active");
|
||||||
}
|
|
||||||
|
|
||||||
// Show done button on last step
|
|
||||||
if (currentStep === totalSteps) {
|
|
||||||
nextBtn.style.display = 'none';
|
|
||||||
doneBtn.style.display = 'block';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update button visibility
|
||||||
|
updateButtonVisibility();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
doneBtn.addEventListener('click', () => {
|
// Previous button click event
|
||||||
bananalast.classList.add('active');
|
prevBtn.addEventListener("click", () => {
|
||||||
|
if (currentStep > 1) {
|
||||||
|
// Update step content first
|
||||||
|
const currentContent = document.getElementById("step" + currentStep);
|
||||||
|
const prevContent = document.getElementById("step" + (currentStep - 1));
|
||||||
|
if (currentContent && prevContent) {
|
||||||
|
currentContent.classList.remove("active");
|
||||||
|
prevContent.classList.add("active");
|
||||||
|
}
|
||||||
|
|
||||||
|
currentStep--;
|
||||||
|
|
||||||
|
// Update monkey position
|
||||||
|
updateMonkeyPosition();
|
||||||
|
|
||||||
|
// Change monkey image (go back to previous image)
|
||||||
|
monkey.src = monkeyImages[currentStep - 1];
|
||||||
|
|
||||||
|
// Update button visibility
|
||||||
|
updateButtonVisibility();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// Initialize button visibility on page load
|
||||||
|
updateButtonVisibility();
|
||||||
|
|
||||||
|
// Update on window resize
|
||||||
|
window.addEventListener("resize", updateMonkeyPosition);
|
||||||
|
doneBtn.addEventListener("click", () => {
|
||||||
|
bananalast.classList.add("active");
|
||||||
|
|
||||||
if (window.innerWidth <= 992) {
|
if (window.innerWidth <= 992) {
|
||||||
monkey.src = monkeyImages[6]; // last image
|
// On mobile: show 7th image and move down
|
||||||
monkeyContainer.style.top = '142%';
|
monkey.src = monkeyImages[6]; // 7th image (index 6)
|
||||||
monkeyContainer.style.left = '40%';
|
monkeyContainer.style.top = "142%";
|
||||||
|
monkeyContainer.style.left = "40%"; // Optional: keep it centered or adjust as needed
|
||||||
} else {
|
} else {
|
||||||
monkey.src = monkeyImages[5];
|
// On desktop: show 6th image and move right
|
||||||
monkeyContainer.style.left = '110%';
|
monkey.src = monkeyImages[5]; // 6th image (index 5)
|
||||||
monkeyContainer.style.top = '-120%';
|
monkeyContainer.style.left = "110%";
|
||||||
|
monkeyContainer.style.top = "-120%"; // Reset top if changed previously
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Final monkey image
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// document.addEventListener("DOMContentLoaded", function () {
|
// document.addEventListener("DOMContentLoaded", function () {
|
||||||
// const animatedSections = document.querySelectorAll('[data-custom-animations="true"]');
|
// const animatedSections = document.querySelectorAll('[data-custom-animations="true"]');
|
||||||
@@ -684,4 +767,4 @@ doneBtn.addEventListener('click', () => {
|
|||||||
// animatedSections.forEach(section => observer.observe(section));
|
// animatedSections.forEach(section => observer.observe(section));
|
||||||
// });
|
// });
|
||||||
|
|
||||||
|
// free resources
|
||||||
|
@@ -131,9 +131,10 @@
|
|||||||
|
|
||||||
<section class="lqd-section pb-160">
|
<section class="lqd-section pb-160">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row" id="interactiveSection">
|
|
||||||
|
<div class="row" id="interactiveSection">
|
||||||
|
|
||||||
<div class="col col-lg-12">
|
{{-- <div class="col col-lg-7">
|
||||||
|
|
||||||
<div class="wizard-container">
|
<div class="wizard-container">
|
||||||
<div class="nav" id="step-nav">
|
<div class="nav" id="step-nav">
|
||||||
@@ -248,36 +249,244 @@
|
|||||||
|
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col col-lg-1"></div>
|
|
||||||
|
|
||||||
{{-- <div class="col col-lg-4">
|
|
||||||
<div class="total-cost">
|
|
||||||
<h4>Total <span class="text-black">Cost</span> </h4>
|
|
||||||
<table>
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th class="font-bold">S.N.</th>
|
|
||||||
<th class="font-bold">Select</th>
|
|
||||||
<th class="font-bold">Max Price</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="totalCostBody">
|
|
||||||
<!-- Filled dynamically -->
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div> --}}
|
</div> --}}
|
||||||
|
|
||||||
</div>
|
<div class="col col-lg-7">
|
||||||
|
<form id="cost-calculator">
|
||||||
|
<div class="cost-choosing">
|
||||||
|
|
||||||
|
<div class="step-content active" id="step1">
|
||||||
|
<h3 class="text-20 text-black font-bold pb-20">Choose items to find the total cost</h3>
|
||||||
|
<h5 class="text-ter text-18 font-medium pb-20">Where do you want to study</h5>
|
||||||
|
|
||||||
|
<div class="row flex flex-wrap py-20">
|
||||||
|
<div class="col col-sm-4">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="country" type="radio" id="country1">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="country1">UK</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-sm-4">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="country" type="radio" id="country2">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="country2">Australia</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-sm-4">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="country" type="radio" id="country3">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="country3">USA</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-sm-4">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="country" type="radio" id="country4">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="country4">Newzealand</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="step-content" id="step2">
|
||||||
|
<h3 class="text-20 text-black font-bold pb-20">Choose items to find the total cost</h3>
|
||||||
|
<h5 class="text-ter text-18 font-medium pb-20">Are you going alone or with a dependent?
|
||||||
|
</h5>
|
||||||
|
|
||||||
|
<div class="row flex flex-wrap py-20">
|
||||||
|
<div class="col col-sm-6">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="alone" type="radio" id="alone">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="alone">Alone</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-sm-6">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="alone" type="radio" id="spouse">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="spouse">With Spouse</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-sm-6">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="alone" type="radio" id="child">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="child">With Spouse and
|
||||||
|
child</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="step-content" id="step3">
|
||||||
|
<h3 class="text-20 text-black font-bold pb-20">Choose items to find the total cost</h3>
|
||||||
|
<h5 class="text-ter text-18 font-medium pb-20">Do you want to include other services?
|
||||||
|
</h5>
|
||||||
|
|
||||||
|
<div class="row flex flex-wrap py-20">
|
||||||
|
<div class="col col-sm-4">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="services" type="radio" id="serviceYes">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="serviceYes">Yes</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-sm-4">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="services" type="radio" id="serviceNo">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="serviceNo">No</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="step-content" id="step4">
|
||||||
|
<h3 class="text-20 text-black font-bold pb-20">Choose items to find the total cost</h3>
|
||||||
|
<h5 class="text-ter text-18 font-medium pb-20">Which Level are you applying for?</h5>
|
||||||
|
|
||||||
|
<div class="row flex flex-wrap py-20">
|
||||||
|
<div class="col col-sm-4">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="level" type="radio" id="bachelors">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="bachelors">Bachelors</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-sm-4">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<input name="level" type="radio" id="masters">
|
||||||
|
|
||||||
|
<label class="text-20 text-ter p-0 m-0" for="masters">Masters</label>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="step-content" id="step5">
|
||||||
|
<h3 class="text-20 text-black font-bold pb-20">Choose items to find the total cost</h3>
|
||||||
|
<h5 class="text-ter text-18 font-medium pb-20">Which Program are you applying for?</h5>
|
||||||
|
|
||||||
|
<div class="row flex py-20">
|
||||||
|
<div class="col col-sm-12">
|
||||||
|
<div class="flex items-center gap-10 px-10 py-12 bg-white rounded-30 tabs">
|
||||||
|
<select name="" id="">
|
||||||
|
<option value="">Select Program</option>
|
||||||
|
<option value="">Masters in Information Technology</option>
|
||||||
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class=" flex items-center justify-center next-btn">
|
||||||
|
<button id="prevBtn" type="button"
|
||||||
|
class="rounded-30 px-20 py-10 text-ter text-16 text-center border-0 flex items-center gap-10 justify-center mr-5">
|
||||||
|
<i class="fa-solid fa-chevron-left"></i>
|
||||||
|
<p class="m-0 p-0">Previous</p>
|
||||||
|
</button>
|
||||||
|
<button id="nextBtn" type="button"
|
||||||
|
class="rounded-30 px-20 py-10 text-ter text-16 text-center border-0 flex items-center gap-10 justify-center">
|
||||||
|
<p class="m-0 p-0">Next</p> <i class="fa-solid fa-chevron-right"></i>
|
||||||
|
</button>
|
||||||
|
<button type="submit" id="doneBtn" style="display: none;"
|
||||||
|
class="rounded-30 px-20 py-10 text-ter text-16 text-center border-0 flex items-center gap-10 justify-center mr-5">Done</button>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="progress-line">
|
||||||
|
<div class="progress-track">
|
||||||
|
<span class="banana" id="b1">
|
||||||
|
<div class="dot"
|
||||||
|
style="width:12px;height:12px;background:#999;border-radius:50%;"></div>
|
||||||
|
</span>
|
||||||
|
<span class="banana" id="b2">
|
||||||
|
<div class="dot"
|
||||||
|
style="width:12px;height:12px;background:#999;border-radius:50%;"></div>
|
||||||
|
</span>
|
||||||
|
<span class="banana" id="b3">
|
||||||
|
<div class="dot"
|
||||||
|
style="width:12px;height:12px;background:#999;border-radius:50%;"></div>
|
||||||
|
</span>
|
||||||
|
<span class="banana" id="b4">
|
||||||
|
<div class="dot"
|
||||||
|
style="width:12px;height:12px;background:#999;border-radius:50%;"></div>
|
||||||
|
</span>
|
||||||
|
<span class="banana" id="b5"><img
|
||||||
|
src=" {{ asset('raffles/assets/images/icons/bananas.svg') }}"
|
||||||
|
alt=""></span>
|
||||||
|
</div>
|
||||||
|
<div class="monkey" id="monkey" style="left: 0%;"><img
|
||||||
|
src="{{ asset('raffles\assets\images\icons\monkey.png') }}" alt="">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col col-lg-1"></div>
|
||||||
|
|
||||||
|
<div class="col col-lg-4">
|
||||||
|
<div class="total-cost">
|
||||||
|
<h4>Total <span class="text-black">Cost</span> </h4>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th class="font-bold">S.N.</th>
|
||||||
|
<th class="font-bold">Select</th>
|
||||||
|
<th class="font-bold">Max Price</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="totalCostBody">
|
||||||
|
<!-- Filled dynamically -->
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
@endsection
|
@endsection
|
||||||
@push('js')
|
@push('js')
|
||||||
<script>
|
{{-- <script>
|
||||||
const form = document.getElementById('multiStepForm');
|
const form = document.getElementById('multiStepForm');
|
||||||
const tabs = document.querySelectorAll('.tab-pane');
|
const tabs = document.querySelectorAll('.tab-pane');
|
||||||
const nextBtns = document.querySelectorAll('.btn-next');
|
const nextBtns = document.querySelectorAll('.btn-next');
|
||||||
@@ -346,5 +555,5 @@
|
|||||||
yesRadio.addEventListener('change', toggleProficiencySections);
|
yesRadio.addEventListener('change', toggleProficiencySections);
|
||||||
noRadio.addEventListener('change', toggleProficiencySections);
|
noRadio.addEventListener('change', toggleProficiencySections);
|
||||||
toggleProficiencySections();
|
toggleProficiencySections();
|
||||||
</script>
|
</script> --}}
|
||||||
@endpush
|
@endpush
|
||||||
|
Reference in New Issue
Block a user