• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Jak za pomocą javascriptu zmienić style(css) elementu który jest hover?

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
0 głosów
2,254 wizyt
pytanie zadane 21 kwietnia 2017 w JavaScript przez Mimoid Użytkownik (760 p.)

Cześć.

To mój css:

#komputer:hover {
text-decoration: underline;
}	

Tak jak jest niżej, zmieniłbym rodzaj podkreślenia na automatyczny gdyby chodziło mi o zwykły element komputer. Chodzi mi jednak o najechany element komputer(hover). W jaki sposób zmienić tę wartość?

document.getElementById("komputer").style.text-decoration = "none";    

 

2 odpowiedzi

+1 głos
odpowiedź 22 kwietnia 2017 przez robkop Użytkownik (930 p.)
wybrane 22 kwietnia 2017 przez Mimoid
 
Najlepsza

Można to zrobić bez stylu w arkuszu, a za pomocą eventu. Nie wiem czy to ładny kod, ale działa.


document.getElementById("komputer").addEventListener("mouseover",function(){
  this.style.textDecoration = "underline";
})

document.getElementById("komputer").addEventListener("mouseout",function(){
  this.style.textDecoration = "none";
})

Edytowałem moją odpowiedź o drugiego eventa - z pierwszym underline zostawał na stałe po opuszczeniu tekstu.

 

 

 

komentarz 22 kwietnia 2017 przez Mimoid Użytkownik (760 p.)
Dzięki, działa.
+1 głos
odpowiedź 21 kwietnia 2017 przez Kornelia Kobiela Nałogowiec (33,340 p.)

Nie stylujemy po ID. To po pierwsze. Druga sprawa, to możesz sobie zrobić dodatkową klasę w css i nazwać ją jakkolwiek ci pasuje np. custom-underline (strzelam, bo nie wiem, co to dokładnie ma być) i robisz regułę dla klasy mniej więcej taką:

.custom-underline {
    text-decoration:underline;
}

Potem za pomocą js możesz nadawać tę klasę poszczególnym elementom za pomocą classList(link do dokumentacji). Tak chyba będzie najlepiej

komentarz 21 kwietnia 2017 przez Mimoid Użytkownik (760 p.)
Dzięki za odpowiedź, jednak twoje rozwiązanie raczej nie pomoże w tej sytuacji, albo nie rozumiem jak je zastosować.

Chodzi o to, że mam na stronie napis "Komputer" i po najechaniu na niego, pokazuje się pod nim podkreślenie. Po wciśnięciu tego napisu chciałbym, aby podkreślenie zniknęło, nie pojawiało się.

W jaki sposób mam użyć stworzonej przez Ciebie klasy, aby podkreślała napis po najechaniu?
2
komentarz 22 kwietnia 2017 przez dkarski Obywatel (1,610 p.)

Cześć Mimod, idąc tropem Kornelii potrzebujesz klasy, która będzie posiadała pseudoklasę typu hover, która jest odpowiedzialna za treść przy najechaniu.

.custom-underline:hover

Domyślnie możesz ją ustawić obok komputer

<div class="komputer custom-underline">komputer</div>

Ustawiasz event click za pomocą którego usuwasz klasę custom-underline

document.getElementsByClassName("komputer")[0].addEventListener("click",function(){
  this.classList.remove('custom-underline');
})

cały kod: https://codepen.io/anon/pen/YVWYRm

1
komentarz 22 kwietnia 2017 przez Kornelia Kobiela Nałogowiec (33,340 p.)
Właśnie o coś takiego mi chodziło.

Podobne pytania

0 głosów
1 odpowiedź 199 wizyt
0 głosów
1 odpowiedź 1,532 wizyt
pytanie zadane 4 sierpnia 2019 w HTML i CSS przez Grzegorz Mikina Dyskutant (8,060 p.)
0 głosów
0 odpowiedzi 1,475 wizyt
pytanie zadane 27 czerwca 2017 w JavaScript przez nitrio578 Początkujący (270 p.)

93,434 zapytań

142,429 odpowiedzi

322,661 komentarzy

62,797 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

...