「特定の要素が画面の真ん中」がDOM中のノードの順番で真ん中という意味で良いと仮定しています。
以下のコードのHTMLをブラウザで表示し、
html
1<!DOCTYPE html>
2<html lang="ja">
3
4<head>
5 <meta charset="utf-8">
6 <script>
7 document.addEventListener('DOMContentLoaded', () => {
8 const observable = document.querySelector('#observable');
9 const observer = new MutationObserver((mutationsList, o) => {
10 const nodes = observable.querySelectorAll('div[class^=hoge]');
11 if (nodes[Math.floor(nodes.length / 2)].classList.contains('hoge3')) {
12 console.log('hoge3 is center now!');
13 }
14 });
15 observer.observe(observable, {childList: true,});
16 });
17 </script>
18</head>
19
20<body>
21 <div id="observable">
22 <div class="hoge1">
23 <p>hoge1</p>
24 </div>
25 <div class="hoge2">
26 <p>hoge2</p>
27 </div>
28 <div class="hoge3">
29 <p>hoge3</p>
30 </div>
31 </div>
32</body>
33
34</html>
コンソールから
javascript
1node = document.querySelector('#observable')
2node.insertBefore(node.children[2],node.children[1])
などとすれば、コンソールに
text
1hoge3 is center now!
と表示されます
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。