Как присвоить псевдо элемент переменной
Как например присваивание getElementById, но нужно взять псевдо элемент ::after у элемента c id = 'el1'.
Ну или если проще, то нужно отследить щелчок мыши по псевдо-элементу ::after.
window.getComputedStyle(document.getElementById('el1'), ':before')
- не работает как надо! |
Цитата:
<style>
#el1:before{
content: 'Все работает!';
}
</style>
<div id="el1"></div>
<script>
var style = window.getComputedStyle(document.getElementById('el1'), ':before');
alert(style.content);
</script>
Только причем тут click? Насколько я знаю - к псевдоэлементам доступа из js нет (кроме получения вычисленных стилей). Нужно просто избегать таких задач - зачем усложнять себе жизнь? |
Цитата:
Псевдо элемент это не элемент страницы это просто набор CSS стилей т.е. псевдо элемент невозможно получить как элемент HTML страницы у псевдоэлемента нет событий это просто набор стилей. И работать с этими стилями можно точно так же как и с другими стилями на странице.
<style>
#el1:before{
content: 'Все работает!';
}
</style>
<div id="el1"></div>
<script>
var CSSrules = document.styleSheets[0].cssRules[0].style;
var str = "Доступ из JS возможен";
var i = 0;
setInterval( animate , 100 );
function animate (){
i++>30?i=1:0;
CSSrules.cssText = "content:'"+ str.substr(0,i)+"'";
};
alert(CSSrules.content);
</script>
|
Цитата:
Если только на основании стилей вычислить координаты псевдоэлемента. Если элемент не img, то можно во время клика получить вычисленный стиль псевдоэлемента, удалить псевдоэлемент временно, а вместо него вставить временный элемент и применить к нему стили. Далее сравнить место клика с его расположением (и учесть z-index). Короче изврат полнейший )) Не нужно просто функциональные элементы оформлять как псевдоэлементы. Это же очевидно - css для оформления, а не для функционала. |
| Часовой пояс GMT +3, время: 23:53. |