Автор Тема: Достъпване на псведо селектори чрез JavaScript  (Прочетена 2574 пъти)

0 Потребители и 1 Гост преглежда(т) тази тема.

georgirgeorgiev

  • Full Member
  • ***
  • Благодарности
  • -Казани: 77
  • -Получени: 13
  • Публикации: 164
Здравейте!
Знаете ли как може да се достъпят псевдо селекторите чрез JavScript, обаче без използване на jQuery ?
Например имаме този код:

HTML елемент:
Код: HTML
  1. <h1 id="slider-info-header">ЛЪВЪТ ОТ ЮДА !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</h1>

CSS за елемента:
Код: CSS
  1. h1 {
  2.         padding: 7px;
  3.         padding-left: 12px;
  4.         color: black;
  5.         font-weight: bold;
  6.         float: left;
  7. }
  8.    h1::before {
  9.         content: "";
  10.         display: inline-block;
  11.         width: 9px;
  12.         height: 12px;
  13.         padding-right: 10px;
  14.         background: url("../sprites/sprites.png") -14px -305px;
  15.    }

Целта ми е когат, цъкна на <h1></h1> елемента, background-а на ::before елемента да се смени.
Не знам как да достъпя елемента в ::before.
Знаете ли как може да се достъпи елемента и да му сменя някой от CSS стиловете чрез JavaScript ?
« Последна редакция: 06 Юли 2015, 22:39:59 от Avalanche »

Avalanche

  • Administrator
  • Hero Member
  • *****
  • Благодарности
  • -Казани: 65
  • -Получени: 275
  • Публикации: 2602
  • meow
Re: Достъпване на псведо селектори чрез JavaScript
« Отговор #1 -: 06 Юли 2015, 22:45:17 »
Аз лично не съм чул за такъв начин. Дори и да има, май по-лесния вариант е да ползваш външна библиотека
"Компютрите не правят каквото искаме, а каквото им кажем." Ако разбереш какво значи това няма да имаш големи проблеми, нито с никоя ОС, нито език, или софтуер.
Аз не съм програмист между другото!

georgirgeorgiev

  • Full Member
  • ***
  • Благодарности
  • -Казани: 77
  • -Получени: 13
  • Публикации: 164
Re: Достъпване на псведо селектори чрез JavaScript
« Отговор #2 -: 06 Юли 2015, 22:53:18 »
Аз лично не съм чул за такъв начин. Дори и да има, май по-лесния вариант е да ползваш външна библиотека
Майче наистина по-лесният вариант е външна библиотека, и по-конкретно jQuery. Преди около час когато търсих начин за изпълняване на горната задача, излезнаха много резултати в които целта се постига, чрез jQuery.
Ако е БОЖИЯТА Воля, по-натам ще започна да уча jQuery, но за момента уча JavaScript и затова се питах дали има някакъв начин.
В интернет намерих начин как да взема стиловете на даден псевдо селектор. Например за background-а за горният <h1></h1> елемент:

Код: Javascript
  1. var sliderInfoHeaderBackground= window.getComputedStyle(sliderInfoHeader, '::before').getPropertyValue('background');

Не знам този начин до колко е правилен и дали въобще е правилен.

Но не само да се вземе стилът, но и да се промени, не намерих как става.
« Последна редакция: 06 Юли 2015, 23:00:57 от georgirgeorgiev »

echeveria

  • Hero Member
  • *****
  • Благодарности
  • -Казани: 72
  • -Получени: 94
  • Публикации: 4836
Re: Достъпване на псведо селектори чрез JavaScript
« Отговор #3 -: 31 Юли 2015, 20:45:03 »
Не става да се променят в движение псевдо елементи. Може да се взима пропътри по няколко начина: може да се парсне целия css и да се намери стринга който е за конкретния елемент и да се добавя нов стил, или една вариация на твоя  пример. За да се промени елемент с бефор и афтър просто се създава нов клас с съответния стил и се добавя към този който ще променяш.
http://stackoverflow.com/questions/7330355/javascript-set-css-after-styles/7330454#7330454
Днес Печатарите използват парите за да купят мозъците на онези, които ги превъзхождат, за да ги накарат да им служат и така да се превърнат в жертва на посредствеността. Това ли е причината, поради която ги наричате благо?
<iframe src="http://www.corbindavenport.com/ubuntu/widget.html" style="width:

georgirgeorgiev

  • Full Member
  • ***
  • Благодарности
  • -Казани: 77
  • -Получени: 13
  • Публикации: 164
Re: Достъпване на псведо селектори чрез JavaScript
« Отговор #4 -: 05 Август 2015, 00:37:26 »
Не става да се променят в движение псевдо елементи. Може да се взима пропътри по няколко начина: може да се парсне целия css и да се намери стринга който е за конкретния елемент и да се добавя нов стил, или една вариация на твоя  пример. За да се промени елемент с бефор и афтър просто се създава нов клас с съответния стил и се добавя към този който ще променяш.
http://stackoverflow.com/questions/7330355/javascript-set-css-after-styles/7330454#7330454

Благодаря ти много за отговора!
Изглежда чрез добавяне/махане на клас е много чест/най-честият начин за достъпване на ::before/::after елементите, понеже вече няколко човека ми писаха, че може да се направи по този начин, както и видях някои хора да го правят по този начин, нали?