infopanel und bilder hinzugefügt
This commit is contained in:
+11
@@ -92,6 +92,17 @@
|
|||||||
<footer>
|
<footer>
|
||||||
© Arne Zitting u. Hauke Kahrs
|
© Arne Zitting u. Hauke Kahrs
|
||||||
</footer>
|
</footer>
|
||||||
|
|
||||||
|
<div id="info-panel">
|
||||||
|
<div id="info-panel-inner">
|
||||||
|
<button class="sideBarButtons" id="closeInfoPanel" title="Info einklappen">>></button>
|
||||||
|
<h3 id="info-panel-title">Info</h3>
|
||||||
|
<p id="info-panel-text">Bitte wählen Sie eine Punktwolke aus.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="info-button-outer">
|
||||||
|
<button id="openInfoPanel" title="Informationen zur Punktwolke">ⓘ Info</button>
|
||||||
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<script src="./libs/jquery/jquery-3.1.1.min.js"></script>
|
<script src="./libs/jquery/jquery-3.1.1.min.js"></script>
|
||||||
|
|||||||
@@ -285,6 +285,54 @@ map.once('load', () => {
|
|||||||
if (selectBox && selectBox.value) {
|
if (selectBox && selectBox.value) {
|
||||||
loadPointCloud(getPointCloudFiles()[selectBox.value]);
|
loadPointCloud(getPointCloudFiles()[selectBox.value]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const pointCloudInfo = {
|
||||||
|
first: {
|
||||||
|
title: "1. Fläche unten",
|
||||||
|
text: "Dies ist die 1. Fläche (unten). Hier können Sie Informationen zur Scanfläche, dem Aufnahmedatum oder besonderen Merkmalen des Obernkirchener Sandsteins eintragen."
|
||||||
|
},
|
||||||
|
second: {
|
||||||
|
title: "2. Felswand",
|
||||||
|
text: "Dies ist die 2. Felswand. Hier können Sie Informationen zur Scanfläche, dem Aufnahmedatum oder besonderen Merkmalen des Obernkirchener Sandsteins eintragen."
|
||||||
|
},
|
||||||
|
third: {
|
||||||
|
title: "3. Fläche oben mit Spuren",
|
||||||
|
text: "Dies ist die 3. Fläche (oben) mit Spuren. Hier können Sie Informationen zur Scanfläche, dem Aufnahmedatum oder besonderen Merkmalen des Obernkirchener Sandsteins eintragen."
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const infoPanel = document.getElementById("info-panel");
|
||||||
|
const infoPanelTitle = document.getElementById("info-panel-title");
|
||||||
|
const infoPanelText = document.getElementById("info-panel-text");
|
||||||
|
const openInfoPanel = document.getElementById("openInfoPanel");
|
||||||
|
const closeInfoPanel = document.getElementById("closeInfoPanel");
|
||||||
|
|
||||||
|
function updateInfoPanel() {
|
||||||
|
const key = document.querySelector('select[name="pointcloud"]').value;
|
||||||
|
const info = pointCloudInfo[key];
|
||||||
|
if (info) {
|
||||||
|
infoPanelTitle.textContent = info.title;
|
||||||
|
infoPanelText.textContent = info.text;
|
||||||
|
} else {
|
||||||
|
infoPanelTitle.textContent = "Info";
|
||||||
|
infoPanelText.textContent = "Bitte wählen Sie eine Punktwolke aus.";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
openInfoPanel.addEventListener("click", () => {
|
||||||
|
infoPanel.classList.add("open");
|
||||||
|
openInfoPanel.style.display = "none";
|
||||||
|
});
|
||||||
|
|
||||||
|
closeInfoPanel.addEventListener("click", () => {
|
||||||
|
infoPanel.classList.remove("open");
|
||||||
|
openInfoPanel.style.display = "flex";
|
||||||
|
});
|
||||||
|
|
||||||
|
// Panel aktualisieren wenn Punktwolke gewechselt wird
|
||||||
|
document.querySelector('select[name="pointcloud"]').addEventListener("change", () => {
|
||||||
|
updateInfoPanel();
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
After Width: | Height: | Size: 425 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 497 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 601 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 720 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 963 KiB |
@@ -379,3 +379,77 @@ position: absolute;
|
|||||||
#potree_render_area {
|
#potree_render_area {
|
||||||
pointer-events: none;
|
pointer-events: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#info-button-outer {
|
||||||
|
position: absolute;
|
||||||
|
top: 50%;
|
||||||
|
right: 20px;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
z-index: 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
#openInfoPanel {
|
||||||
|
border: none;
|
||||||
|
border-radius: 14px;
|
||||||
|
width: auto;
|
||||||
|
height: 48px;
|
||||||
|
padding: 0 20px;
|
||||||
|
font-size: 17px;
|
||||||
|
font-weight: 500;
|
||||||
|
cursor: pointer;
|
||||||
|
background: rgba(255,255,255,0.9);
|
||||||
|
box-shadow: 0 5px 10px rgba(0,0,0,0.278);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 8px;
|
||||||
|
color: #1e293b;
|
||||||
|
}
|
||||||
|
|
||||||
|
#openInfoPanel:hover {
|
||||||
|
background: rgb(233,232,232);
|
||||||
|
transform: translateY(-1px);
|
||||||
|
}
|
||||||
|
|
||||||
|
#info-panel {
|
||||||
|
display: none;
|
||||||
|
position: absolute;
|
||||||
|
top: 48%;
|
||||||
|
right: 20px;
|
||||||
|
transform: translateY(-50%);
|
||||||
|
width: 210px;
|
||||||
|
padding: 22px;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
padding-top: 10px;
|
||||||
|
background: rgba(255,255,255,0.9);
|
||||||
|
backdrop-filter: blur(18px);
|
||||||
|
border: 1px solid rgba(255,255,255,0.3);
|
||||||
|
border-radius: 24px;
|
||||||
|
box-shadow: 0 10px 30px rgba(0,0,0,0.15);
|
||||||
|
z-index: 20;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#info-panel.open {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
#closeInfoPanel {
|
||||||
|
align-self: flex-start;
|
||||||
|
padding: 5px 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#info-panel-title {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 600;
|
||||||
|
color: #0f172a;
|
||||||
|
}
|
||||||
|
|
||||||
|
#info-panel-text {
|
||||||
|
margin: 0;
|
||||||
|
font-size: 13px;
|
||||||
|
line-height: 1.6;
|
||||||
|
color: #1e293b;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user