私はタイムラインのスクラバーで作業しています。ここでは、マーカーの後ろにスタイルが付けられた:: after要素が左右にドラッグされています。いくつのレイヤーが存在するかに応じて、行の高さを設定する必要がありますが、DOM要素にアクセスする方法はわかりません。私はいくつかの検索を行いましたが、体に要素を追加することによっていくつかの解決策がありましたが、単純にCSSを直接変更するのと比較すると、すぐに扱いにくくて複雑になりました。単純化のためにhttp://codepen.io/ajhalls/pen/QdgXBQCSS Psuedo :: Afterプロパティを操作する
が、私は左と右のスライダをドラッグする上での高さにアクセスしようとし、それを単純化:
は、私がここにデモを持っています。これはjQueryを使用していますが、私は確かにプレーンJSを使用する他のソリューションでも問題ありません。
$(".scrubber-icon").draggable({
axis: 'x',
containment: "parent",
drag: function(event, ui) {
var scrubberValue = ($(".scrubber-icon").position().left-15);
$(".scrubber-icon").css("::after", "height", scrubberValue);
$("#text").html("position:" + scrubberValue);
}
});
JSを使って 'after after'疑似要素を簡単に変更することはできません。私はあなたが正直であることを求めていることを少しは確信していますが、このインスタンスでは実際のDOMノードを使用する方が良いです... – somethinghere
ありがとう、ありがとう、あなたはaddRuleやそのような方法ではなく要素を変更する例を教えていただけますか?私は、もっと長いルールを追加することではなく、既存のルールを変更することで、赤い線を短く長くすることを目標にしたいと考えています。 – Alan
after要素を別のノードに置き換えるだけで、必要な作業を行うことができます。 ':: after'の必要性はなぜですか? – somethinghere