W pełni responsywne zakładki (responsive tabs)

Demo:

Zakładki to jedne z najczęściej wykorzystywanych elementów na stronie internetowej. W pełni responsywne są znakomitą propozycją dla każdego.

Zakładki to jedna z popularniejszych rzeczy, jakie wykorzystujemy na stronach internetowych. każdy chyba używa i wie jak są pożyteczne. Mało jednak kto przykłada się to tego elementu strony i traktuje to obojętnie.

Poniżej przedstawiam bardzo przydatny przykład, który można z łatwością modyfikować i w dowolnym miejscy wykorzystać na stronie.

Bez zbędnych słów prezentuje kolejne etapy budowania zakładek.

Struktura

Niniejsze zakładki to bardzo prosta kompozycja, która bazuje na liście ul > li oraz zawartość poszczególnych zakładek.

<div class="ewd_main-tabs">
	<nav>
		<ul class="ewd_tabs-menu">
			<li class="current">
				<p title="#tab-1">
					<i class="fa fa-film fa-2x"></i>
					<span>Galeria</span>
				</p>
			</li>
			<li>
				<p title="#tab-2">
					<i class="fa fa-bar-chart-o fa-2x"></i>
					<span>Statystyki</span>
				</p>
			</li>
			<li>
				<p title="#tab-3">
					<i class="fa fa-share-square-o fa-2x"></i>
					<span>Udostępnij</span>
				</p>
			</li>
			<li>
				<p title="#tab-4">
					<i class="fa fa-star-o fa-2x"></i>
					<span>Ulubione</span>
				</p>
			</li>
		</ul>
	</nav>
        <div id="tab-1" class="referencjetab_content">
            <p><div id="red"></div><div id="green"></div><div id="yellow"></div><div id="blue"></div></p>
        </div>
        <div id="tab-2" class="referencjetab_content" style="display:none;">
            <p>Donec semper dictum sem, quis pretium sem malesuada non. Proin venenatis orci vel nisl porta sollicitudin. Pellentesque sit amet massa et orci malesuada facilisis vel vel lectus. Etiam tristique volutpat auctor. Morbi nec massa eget sem ultricies fermentum id ut ligula. Praesent aliquet adipiscing dictum. Suspendisse dignissim dui tortor. Integer faucibus interdum justo, mattis commodo elit tempor id. Quisque ut orci orci, sit amet mattis nulla. Suspendisse quam diam, feugiat at ullamcorper eget, sagittis sed eros. Proin tortor tellus, pulvinar at imperdiet in, egestas sed nisl. Aenean tempor neque ut felis dignissim ac congue felis viverra. </p>

        </div>
        <div id="tab-3" class="referencjetab_content" style="display:none;">
            <p>Duis egestas fermentum ipsum et commodo. Proin bibendum consectetur elit, hendrerit porta mi dictum eu. Vestibulum adipiscing euismod laoreet. Vivamus lobortis tortor a odio consectetur pulvinar. Proin blandit ornare eros dictum fermentum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Curabitur laoreet, ante aliquet molestie laoreet, lectus odio fringilla purus, id porttitor erat velit vitae mi. Nullam posuere nunc ut justo sollicitudin interdum. Donec suscipit eros nec leo condimentum fermentum. Nunc quis libero massa. Integer tempus laoreet lectus id interdum. Integer facilisis egestas dui at convallis. Praesent elementum nisl et erat iaculis a blandit ligula mollis. Vestibulum vitae risus dui, nec sagittis arcu. Nullam tortor enim, placerat quis eleifend in, viverra ac lacus. Ut aliquam sapien ut metus hendrerit auctor dapibus justo porta. </p>
        </div>
        <div id="tab-4" class="referencjetab_content" style="display:none;">
            <p>Proin sollicitudin tincidunt quam, in egestas dui tincidunt non. Maecenas tempus condimentum mi, sed convallis tortor iaculis eu. Cras dui dui, tempor quis tempor vitae, ullamcorper in justo. Integer et lorem diam. Quisque consequat lectus eget urna molestie pharetra. Cras risus lectus, lobortis sit amet imperdiet sit amet, eleifend a erat. Suspendisse vel luctus lectus. Sed ac arcu nisi, sit amet ornare tellus. Pellentesque nec augue a nibh pharetra scelerisque quis sit amet felis. Nullam at enim at lacus pretium iaculis sit amet vel nunc. Praesent sapien felis, tincidunt vitae blandit ut, mattis at diam. Suspendisse ac sapien eget eros venenatis tempor quis id odio. Donec lacus leo, tincidunt eget molestie at, pharetra cursus odio. </p>
        </div>

</div>

po załadowaniu strony widoczna zakładka z pierwszym contentem, reszta posiada style (display:none).

Działanie skryptu

Kod JavaScript sprawia, że dana zakładka po kliknięciu zostaje aktywowana i do danej zawartości zostaje dodana klasa current. Pozostałe posiadają style (display:none).

        $(function() {

		$(".ewd_tabs-menu p").click(function(event) {
        event.preventDefault();
        $(this).parent().addClass("current");
        $(this).parent().siblings().removeClass("current");
        var tab = $(this).attr("title");
        $(".referencjetab_content").not(tab).css("display", "none");
        $(tab).fadeIn(1000);
    });

        });

Style CSS

W stylach poza standardowymi pozycjami są jeszcze dodane pola z skalowalnością strony (responsive webdesign). Potrzebne koniecznie, aby strona się ładnie skalowała.

.ewd_tabs-menu
{
	display:inline-block;
	margin:0;
	padding:0;

}
.ewd_tabs-menu li
{
	float:left;
	list-style:none;
	border: 1px solid #fff;
	background:rgba(255,255,255, 0.4);
	padding:0;
	margin: 0 5px;
	width:100px;
	height:100px;
	color:#fff;
	display:table;
	transition: all .5s ease-in-out;

}
.ewd_tabs-menu li:last-child
{

}
.ewd_tabs-menu li.current
{
	background-color:rgba(255,255,255, 0.6);
	color:#708090;
	transition: all .5s ease-in-out;
	background-image:url(active.jpg);
	background-position:bottom;
	background-repeat:repeat-x;
	border-bottom:1px solid #708090;
}
.ewd_tabs-menu li.current p span
{
	color:#708090;
	transition: all .5s ease-in-out;
}
.ewd_tabs-menu li p
{
	vertical-align:middle;
	display:table-cell;
	height:100%;
	padding:0;
	margin:0;
}
.ewd_tabs-menu li span
{
	display:inline-block;
	width:100%;
	color:#fff;
	transition: all .5s ease-in-out;
}

.ewd_main-tabs nav
{
	text-align:center;
}
.referencjetab_content p:first-letter
{
	font-size:60px;
	float:left;
	padding-right:10px;
	color:#708090;
}
#red, #yellow, #green, #blue
    {
      height: 200px;
    }
    #red
    {
      background: #4682b4;
    }
    #green
    {
      background: #72a9ca;
    }
    #yellow
    {
      background: #1974d2;
    }
    #blue
    {
      background: #2e5894;
    }

@media screen and (max-width:800px)
    {
      .ewd_tabs-menu li
	{
		width:45%;
		margin: 5px;
	}
      #red, #blue, #green, #yellow {
        width:50%;
        display: inline-block;
      }
    }
@media screen and (min-width:800px)
    {
      #red, #yellow, #green, #blue {
        width: 25%;
        display: inline-block;
        white-space: nowrap;
      }

    }
@media screen and (max-width:500px)
{
	#red, #blue, #green, #yellow {
		width:100%;
	}
	.ewd_tabs-menu li
	{
		width:100%;
		margin: 5px 0;
	}
}

Jak już pisałem, bardzo prosty ale jakże użyteczny skrypt, który w bardzo łatwy sposób można zmieniać, w zależności od potrzeb i gustu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

CAPTCHA
Change the CAPTCHA codeSpeak the CAPTCHA code