美文网首页
shadowDom&slot

shadowDom&slot

作者: funcx | 来源:发表于2021-02-05 17:19 被阅读0次
<html>
<meta charset="utf-8">
<title>shadow DOM</title>

<body>
    <p class="text">这是外面页面的text类文字</p>
    <div id="shadow-host">
        <span id="shadow-host2" slot="slot1"></span>
    </div>
    <div id="p1">
        <p class="text">这是原本就在html上的dom元素,也可以再添加到shadow DOM中</p>
    </div>
    <script>
    const shadowHost = document.querySelector('#shadow-host')
    // 通过attachShadow创建一个shadow Root
    const shadow = shadowHost.attachShadow({ mode: 'closed' });
    const shadowText = document.createElement('p');
    shadowText.setAttribute('class', 'text');
    shadowText.innerText = 'shadow DOM内部的text类文字'
    // 为shadow dom创建一个style标签,一开始这个style.isConnected为false,把他添加给shadow Root后 isConnected就为true了
    // 创建一个slot
    const slot = document.createElement('slot')
    slot.setAttribute('name', 'slot1')
    // 为shadow dom添加元素
    shadow.appendChild(shadowText);
    shadow.appendChild(document.querySelector('#p1'));
    shadow.appendChild(slot)

    const shadowHost2 = document.querySelector('#shadow-host2')
    const p = document.createElement('p')
    p.innerText = "s2content"
    const shadow2 = shadowHost2.attachShadow({ mode: 'closed' })
    shadow2.appendChild(p)
    </script>
</body>

</html>

相关文章

网友评论

      本文标题:shadowDom&slot

      本文链接:https://www.haomeiwen.com/subject/elrgtltx.html