PseudoChop!
Manipulate PseudoElements via MooTools
by khrome
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/mootools/1.4.5/mootools-core-full-compat.js"></script>
<span id="blah"> I exist in the DOM </span>
CSS
#blah::before{
content:'I exist in it\'s shadow';
display: block;
background-color: red;
}
#blah{
background-color: blue;
}
JavaScript
var PseudoDOM = {};
PseudoDOM.pseudo = function(element, properties, pseudo){
var id = element.getAttribute('id');
if(!id){
id = 'pseudo-chop-'+String.uniqueID();
element.setAttribute('id', id);
}
var style = document.getElementById(id+'-rule');
if(!style){
style = new Element('style', {
id : id+'-rule',
class : 'pseudo-chop'
});
}
var css = '#'+id+'::'+pseudo+'{\n';
Object.each(properties, function(value, key){
css += key+' : '+value+';\n';
});
css += '}';
style.innerHTML = css;
style.inject(document.head);
};
PseudoDOM.before = function(element, properties){
return PseudoDOM.pseudo(element, properties, 'before');
};
PseudoDOM.after = function(element, properties){
return PseudoDOM.pseudo(element, properties, 'after');
};
PseudoDOM.clear = function(element, properties){
document.getElements('.pseudo-chop').destroy();
};
PseudoDOM.before(document.getElementById('blah'), {
'background-color' : 'green'
})