Skocz do zawartości
"Idzie nowe..." - o zmianach i nie tylko ×
Przeniesienie zakupów z IPS Marketplace / Moving bought items from IPS Marketplace ×

Zmienne tło branding_bg


Przejdź do rozwiązania Rozwiązane przez Frankenstein777,

Rekomendowane odpowiedzi

Opublikowano (edytowane)

Witam !

 

Jak pewnie wtajemniczonym wiadomo, za logiem społeczności na forum znajduje się grafika identyfikowana jako branding_bg. Domyślnie znajduje się w public/style_images/master/.

Chciałbym aby ten obrazek zmieniał się automatycznie w określonym odstępie czasu podczas gdy strona jest wyświetlana. Szukałem jak do tego dojść, jednak nieskutecznie. Znalazłem różne slidery, fajna sprawa ale nie wiem jak to wpleść w kod IPB.

 

CSS który to obsługuje wygląda tak:

#branding {
background: #0f3854 url({style_images_url}/branding_bg.png) repeat-x;
border-bottom: 1px solid #1b3759;
min-height: 64px;
}

Czy ktoś z infokoksów forumowych wie i miałby ochotę mi powiedzieć jak takie cudo wykonać ?

Z góry dziękuję za każdą odpowiedź.

Edytowane przez Frankenstein777
Opublikowano

Tak coś w podobie.

 

Tu widzę mamy <div id="branding" style="background-position: -413px 0px;"> wartość na niebiesko cały czas spada. Ja chciałbym zrobić, żeby nie zmieniała się pozycja div'a tylko jakby src obrazka który się w div'ie znajduje. Trzeba by wyciągnąć skrypt który zmienia te wartość, może dałoby się go przerobić, albo chociaż zobaczyć zasadę działania. Ale stylu po kawałek kodu nie będę kupował.. 

 

Hmm a może to zrobić zwyczajnie timerem w JavaScript i edytować zmienną źródła obrazka.  :icon_surprised:

 

Tylko musiałbym namierzyć plik który zawiera kod nagłówka strony..

  • Rozwiązanie
Opublikowano

Siemka, skończyłem pisać. Wygląda to tak:

 

 

W "globalTemplate":

<!-- ::: BRANDING STRIP: Logo and search box ::: -->
<div id='branding' style='background: url(http://twoja_strona.pl/public/style_images/master/branding_bg.png) repeat-x'>
	<div class='main_width'>
		<div id='logo'>
			<if test="brandingBar:|:ipsRegistry::$applications[ $this->registry->getCurrentApplication() ]['hasCustomHeader']">
				{parse template="overwriteHeader" group="{current_app}_global" params=""}
			<else />
				{parse template="defaultHeader" group="global" params=""}
			</if>
		</div>
			<if test="canSearch:|:$this->memberData['g_use_search'] && $this->settings['allow_search']">
				{parse template="quickSearch" group="global" params=""}
			</if>
		</div>
	</div>
<script type="text/javascript">
	document.getElementById("branding").style.opacity = "1";
	var op = Number(document.getElementById("branding").style.opacity)
	var bg1 = 'url(http://twoja_strona.pl/public/style_images/master/branding_bg.png) repeat-x';
	var bg2 = 'url(http://twoja_strona.pl/public/style_images/master/branding_bg2.png) repeat-x';
	var bg3 = 'url(http://twoja_strona.pl/public/style_images/master/branding_bg3.png) repeat-x';
	var bg4 = 'url(http://twoja_strona.pl/public/style_images/master/branding_bg4.png) repeat-x';
	var bg5 = 'url(http://twoja_strona.pl/public/style_images/master/branding_bg5.png) repeat-x';
	setTimeout(onblur,60000);
	
	function onblur()
	{
		op = Number(document.getElementById("branding").style.opacity) - 0.05;
							
		if (op >= 0)
			{
			document.getElementById("branding").style.opacity = String(op);
			setTimeout(onblur,50);
			}
		else
			{
			if (document.getElementById("branding").style.background == bg1)
				{
				document.getElementById("branding").style.background = bg2;
				}
			else if (document.getElementById("branding").style.background == bg2)
				{
				document.getElementById("branding").style.background = bg3;
				}
			else if (document.getElementById("branding").style.background == bg3)
				{
				document.getElementById("branding").style.background = bg4;
				}
			else if (document.getElementById("branding").style.background == bg4)
				{
				document.getElementById("branding").style.background = bg5;
				}
			else if (document.getElementById("branding").style.background == bg5)
				{
				document.getElementById("branding").style.background = bg1;
				}
			setTimeout(offblur,50);
			}
	}		

	function offblur()
	{
		op = Number(document.getElementById("branding").style.opacity) + 0.05;
						
		if (op < 1.1)
			{
		document.getElementById("branding").style.opacity = String(op);
		setTimeout(offblur,50);
			}
		else
			{
			setTimeout(onblur,60000);
			}
	}

</script>
			<!-- ::: APPLICATION TABS ::: -->

 

Jest zdefiniowane 5 grafik, co minute dana grafika zmieniana jest na następną. Żeby jakoś to wyglądało dałem progresywne wygaszenie starego i przywrócenie nowego obrazka zmieniając przeźroczystość. DawPi pewnie mnie tu zruga, że można by to krócej napisać :P

 

Efekt jest nawet całkiem przystojny, wyszło względnie tak jak chciałem, jednak okazało się, że nie pasuje mi na stronie xD

Wstawiam więc i zezwalam na kopiowanie, edycje i użytkowanie. Może komuś się przyda : >

Zalecałbym jednak zrobić cookie który zapisuje bieżący obrazek, bo teraz po otwarciu innej podstrony czy tematu leci z powrotem pierwszy obrazek.

 

Jak się przydało komuś to może zostawić strzałeczkę w gorę :)

Ave !

 

  • Lubię to 2
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.