From 7af9f3b1a06c9dcf1945b13df83ded35f2780963 Mon Sep 17 00:00:00 2001 From: Liam Fitzpatrick Date: Tue, 31 Dec 2024 16:27:08 -0500 Subject: [PATCH] got the canvas to draw a line between divs --- website/assets/profesh-exp.js | 37 +++++++++++++++++++++++++++++++++++ website/assets/static_css.css | 13 ++++++++++++ website/src/app.rs | 21 ++++++++++++++++++-- 3 files changed, 69 insertions(+), 2 deletions(-) create mode 100644 website/assets/profesh-exp.js diff --git a/website/assets/profesh-exp.js b/website/assets/profesh-exp.js new file mode 100644 index 0000000..69a4bf7 --- /dev/null +++ b/website/assets/profesh-exp.js @@ -0,0 +1,37 @@ + +var number_exp = 2; + + +function drawConnections() { + let count = 1; + const canvas_el = document.getElementById("p-e-canvas"); + const content_el = document.getElementById("p-e-content"); + const content_box = content_el.getBoundingClientRect(); + canvas_el.setAttribute("width", content_box.width); + canvas_el.setAttribute("height", content_box.height); + canvas_el.setAttribute("top", content_box.top); + canvas_el.setAttribute("left", content_box.left); + const ctx = canvas_el.getContext("2d"); + ctx.strokeStyle = "#E4FDE1"; + for (let count = 1; count <= (number_exp-1); count++) { + let cur_id_str = `p-e-${count}`; + let nex_id_str = `p-e-${count+1}`; + let cur_ele = document.getElementById(cur_id_str); + let next_ele = document.getElementById(nex_id_str); + let cur_box = cur_ele.getBoundingClientRect(); + let next_box = next_ele.getBoundingClientRect(); + let center_x = (cur_box.left + cur_box.right) / 2; + let center_y = (cur_box.top + cur_box.bottom) / 2; + let next_x = (next_box.left + next_box.right) / 2; + let next_y = (next_box.top + next_box.bottom) / 2; + + ctx.beginPath(); + ctx.moveTo(center_x, center_y); + ctx.lineTo(next_x, next_y); + ctx.stroke(); + } +} + +window.addEventListener("scroll", (event) => { + drawConnections(); +}); \ No newline at end of file diff --git a/website/assets/static_css.css b/website/assets/static_css.css index 261b086..e33249c 100644 --- a/website/assets/static_css.css +++ b/website/assets/static_css.css @@ -1,4 +1,17 @@ body{ background-color: #0C120C; color: #E4FDE1; +} + +#p-e-canvas{ + position:fixed; + top: 0; + left: 0; + z-index: -1; +} +#p-e-1{ + background-color: #0C120C; +} +#p-e-2{ + background-color: #0C120C; } \ No newline at end of file diff --git a/website/src/app.rs b/website/src/app.rs index ad0277a..4216301 100644 --- a/website/src/app.rs +++ b/website/src/app.rs @@ -1,5 +1,5 @@ use leptos::prelude::*; -use leptos_meta::{provide_meta_context, MetaTags, Stylesheet, Title}; +use leptos_meta::{provide_meta_context, MetaTags, Script, Stylesheet, Title}; use leptos_router::{ components::{Route, Router, Routes}, path, StaticSegment }; @@ -36,6 +36,8 @@ pub fn App() -> impl IntoView { +