Skip to content

Commit 31d0f25

Browse files
committed
initial paragraphs test
1 parent 50d7a03 commit 31d0f25

File tree

6 files changed

+161
-0
lines changed

6 files changed

+161
-0
lines changed

paragraphs/control/index.html

Lines changed: 19 additions & 0 deletions
Large diffs are not rendered by default.

paragraphs/control/main.css

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.map {
2+
background-color: lightgray;
3+
margin: 5px;
4+
float: left;
5+
}
6+
7+
.map, .map > div {
8+
width: 500px;
9+
height: 500px;
10+
}
11+
.intersected {
12+
background-color: green;
13+
}

paragraphs/control/main.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
import { loadModules } from "https://unpkg.com/esri-loader/dist/esm/esri-loader.js";
2+
3+
const createMap = async (element) => {
4+
var childElement = document.createElement("div");
5+
element.appendChild(childElement);
6+
// More info on esri-loader's loadModules function:
7+
// https://github.com/Esri/esri-loader#loading-modules-from-the-arcgis-api-for-javascript
8+
const [Map, SceneView] = await loadModules([
9+
"esri/Map",
10+
"esri/views/SceneView"
11+
], {css: true});
12+
13+
const map = new Map({
14+
basemap: "streets-vector"
15+
});
16+
17+
const viewOptions = {
18+
container: childElement,
19+
map: map,
20+
center: [parseFloat(element.dataset.x), parseFloat(element.dataset.y)],
21+
zoom: parseInt(element.dataset.zoom)
22+
};
23+
24+
// 3D:
25+
new SceneView(viewOptions);
26+
};
27+
28+
29+
30+
31+
window.addEventListener("load", (event) => {
32+
33+
['map1', 'map2', 'map3', 'map4'].forEach((id) => {
34+
const rootElement = document.getElementById(id);
35+
createMap(rootElement);
36+
});
37+
38+
}, false);

paragraphs/intersection-observer/index.html

Lines changed: 19 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
.map {
2+
background-color: lightgray;
3+
margin: 5px;
4+
float: left;
5+
}
6+
7+
.map, .map > div {
8+
width: 500px;
9+
height: 500px;
10+
}
11+
.intersected {
12+
background-color: green;
13+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
import { loadModules } from "https://unpkg.com/esri-loader/dist/esm/esri-loader.js";
2+
3+
const createMap = async (element) => {
4+
var childElement = document.createElement("div");
5+
element.appendChild(childElement);
6+
// More info on esri-loader's loadModules function:
7+
// https://github.com/Esri/esri-loader#loading-modules-from-the-arcgis-api-for-javascript
8+
const [Map, SceneView] = await loadModules([
9+
"esri/Map",
10+
"esri/views/SceneView"
11+
], {css: true});
12+
13+
const map = new Map({
14+
basemap: "streets-vector"
15+
});
16+
17+
const viewOptions = {
18+
container: childElement,
19+
map: map,
20+
center: [parseFloat(element.dataset.x), parseFloat(element.dataset.y)],
21+
zoom: parseInt(element.dataset.zoom)
22+
};
23+
24+
// 3D:
25+
new SceneView(viewOptions);
26+
};
27+
28+
29+
30+
31+
window.addEventListener("load", (event) => {
32+
const callback = (entries) => {
33+
entries.forEach(entry => {
34+
35+
if (entry.isIntersecting && !entry.target.classList.contains('intersected')) {
36+
// console.log('entry:', entry.target);
37+
entry.target.classList.add('intersected');
38+
createMap(entry.target);
39+
} else {
40+
entry.target.classList.remove('intersected');
41+
while(entry.target.firstChild) {
42+
entry.target.removeChild(entry.target.firstChild);
43+
}
44+
45+
}
46+
});
47+
48+
}
49+
let observer = new IntersectionObserver(callback, {
50+
threshold: 0.1
51+
});
52+
53+
54+
['map1', 'map2', 'map3', 'map4'].forEach((id) => {
55+
const rootElement = document.getElementById(id);
56+
observer.observe(rootElement);
57+
});
58+
59+
}, false);

0 commit comments

Comments
 (0)