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

zmiana background diva jako Image- w javascript

Object Storage Arubacloud
0 głosów
1,031 wizyt
pytanie zadane 3 listopada 2015 w JavaScript przez Wiciorny Ekspert (269,790 p.)

Witajcie napisałem kod na zmiane tła diva, jednak nic się nie wykonuje ? 

Problem moim zdaniem leży w if statement... i tutaj prawdopodobnie zadeklarowana zmienna, nie ma tej wartości co oczekuje. 

function change()

{
	
	var foto= document.getElementById("mainImage").style.backgroundImage;
	console.log(foto);
	 if(foto == 'url(main.jpeg)')
	 {
		 foto.style.backgroundImage='url(main2.jpg)';
	 } 
	 else if( foto == 'url(main2.jpg)') 
	 {
	foto.style.backgroundImage= "url(main.jpeg)";
	 }
	
	setTimeout("change()", 7000);
}

oczywiście w HTML MAM 

<body onload="change();">

 

DIV PREZENTUJE SIĘ TAK :  <div id="mainImage"></div>

A jego stylizacja w css 

#mainImage
{

    
    height: 500px;
    background-image:url(main.jpeg);
    background-repeat:no-repeat;
    background-size: 100% 100%;

}

oczywiscie to wycięte fragmenty kodu dzięki bardzo za pomoc

Dodam, że zmieniając na style.background i w CSS na bacground: url(... obrazek); jest to samo 

2 odpowiedzi

+1 głos
odpowiedź 3 listopada 2015 przez Mlody89 Mądrala (6,920 p.)

1.Nie działa z tego względu że ta instrukcja odwołuje sie do atrybutu style w html. Spróbuj do diva dopisać

style='background-image: url("main.jpeg")'

2. Zmienna przyjmuje wartość zapisaną we właściwości background-image w atrybucie style więc później nie odwołujesz się do tej właściwości w zmiennej tylko bezpośrednio nadpisujesz wartość zmiennej

3. na koniec musisz podmienic wartość url ze zmienioną wartością zapisaną w zmiennej foto

http://codepen.io/anon/pen/epjrzb

Jeżeli chcesz się odwołać do CSSa najlepiej zrobić to przez jQuery i metodę .css()

komentarz 3 listopada 2015 przez Wiciorny Ekspert (269,790 p.)
Okej dzięki faktycznie tak zrobiłem, nawet działało podając ŚCIEŻKE DO pliku w if;ie

Czy samym JS bez JQuery da się odwołać do css?
komentarz 3 listopada 2015 przez Comandeer Guru (601,110 p.)

Tak, element.style

komentarz 3 listopada 2015 przez Wiciorny Ekspert (269,790 p.)
element jako funkcja obiektu, czy element- to obiekt? Bo generalnie element.style to ja zadeklarowałem tak jak u mnie w kodzie i to nie działa, tzn nie odwołuje się do css
0 głosów
odpowiedź 3 listopada 2015 przez Wiciorny Ekspert (269,790 p.)

Problem w tym, że działa jedynie kiedy napiszę. 

 if( foto == "url(file:///C:/Users/Rel/Desktop/webinar/main.jpeg)")
	 {
		document.getElementById("mainImage").style.backgroundImage="url('main2.jpg')";
		
	 } 
	 else if( foto == "url(file:///C:/Users/Rel/Desktop/webinar/main2.jpg)") 
	 {
		document.getElementById("mainImage").style.backgroundImage="url('main.jpeg')";
	 }
	


Zwraca mi odwołanie całą ścieżke do pliku, da się zwrócić sam string? 

komentarz 3 listopada 2015 przez Comandeer Guru (601,110 p.)

Możesz zastosować substr, żeby wyciąć odpowiednią część tego ciągu.

komentarz 4 listopada 2015 przez Wiciorny Ekspert (269,790 p.)
załóżmy, że zmienie i przeniose folder ... z całą stroną wtedy ... zmieni mi sie automatycznie url i wszystko sie wysypie- co powduje, że moje rozwiazanie  dzialania jest niepoprawne
komentarz 4 listopada 2015 przez Comandeer Guru (601,110 p.)
To po prostu zmieniaj klasę elementu, a nie bezpośrednio style

Podobne pytania

0 głosów
1 odpowiedź 299 wizyt
pytanie zadane 28 kwietnia 2023 w C# przez marcin20a Początkujący (280 p.)
0 głosów
1 odpowiedź 98 wizyt
pytanie zadane 9 stycznia 2017 w HTML i CSS przez Jakub Domacki Użytkownik (660 p.)
0 głosów
12 odpowiedzi 1,112 wizyt
pytanie zadane 20 września 2016 w HTML i CSS przez wgnsy123 Początkujący (410 p.)

92,568 zapytań

141,420 odpowiedzi

319,622 komentarzy

61,954 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...