Shadow DOM 1

影を捉えるのだ

CSS

#root {
    width:200px;
    height: 200px;
    position: relative;
    border: 1px solid #000;
    background-color: #000;
    background-size: 200px 200px;
    background-position: 0px 0px;
    background-repeat: no-repeat;
    background-image: -webkit-linear-gradient(
        left, #09f 0, #09f 200px
    );
}

#host {
    display: block;
    position: absolute;
    top: 220px;
    width: 200px;
    height: 20px;
    border: 1px solid #000;
}

JavaScript

var rootElm = document.getElementById("root");
var sRoot = new WebKitShadowRoot(rootElm);

sRoot.applyAuthorStyles = true;

var sHost = document.createElement("span");

sHost.setAttribute("id", "host");
sHost.innerHTML = "くりっくみー";

sRoot.appendChild(sHost);

function handler(e) {
    // alert("これは" + this + "\nこれの親ノードは" + this.parentNode);
    rootElm.style.backgroundPositionY = 200 - e.layerX + "px";
}


sHost.addEventListener("click", handler, true);