Leggerai questo articolo in: 2 minuti

Oggi ti segnalo questa risorsa messa a disposizione da tympanus, che ti permetterà di avere una navigazione verticale o orizzontale sul tuo sito.

smooth vertical or horizzontal scroll

Al giorno d’oggi, ci sono numerosi siti che utilizzano uno scroll verticale o orizzontale per la navigazione. Sicuramente questo va a discapito dell’usabilità, ad ogni modo l’effetto ottenuto è di forte impatto visivo.

Vediamo come ottenere questo effetto:

Prima di tutto abbiamo bisogno del plugin jQuery Easing

Importiamo il necessario (facendo attenzione ad inserire i percorsi corretti):

1
2
3
 <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>		
 <script type="text/javascript" src="jquery.easing.1.3.js"></script> 
<link rel="stylesheet" href="css/style.css" type="text/css" media="screen"/>

Codice Html:
Molto semplice, dobbiamo semplicemente indicare quante sezioni avrà il nostro sito (in questo caso 3).

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<div class="section black" id="section1">
	<h2>Section 1</h2>
	<p>
		MY Spectre around me night and day
		Like a wild beast guards my way;
		My Emanation far within
		Weeps incessantly for my sin.
	</p>
	<ul class="nav">
		<li>1</li>
		<li><a href="#section2">2</a></li>
		<li><a href="#section3">3</a></li>
	</ul>
</div>
<div class="section white" id="section2">
	<h2>Section 2</h2>
	<p>
		A fathomless and boundless deep,
		There we wander, there we weep;
		On the hungry craving wind
		My Spectre follows thee behind.
 
	</p>
	<ul class="nav">
		<li><a href="#section1">1</a></li>
		<li>2</li>
		<li><a href="#section3">3</a></li>
	</ul>
</div>
<div class="section black" id="section3">
	<h2>Section 3</h2>
	<p>
		He scents thy footsteps in the snow
		Wheresoever thou dost go,
		Thro' the wintry hail and rain.
		When wilt thou return again?
 
	</p>
	<ul class="nav">
		<li><a href="#section1">1</a></li>
		<li><a href="#section2">2</a></li>
		<li>3</li>
	</ul>
</div>

Codice Css:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
*{
    margin:0;
    padding:0;
}
body{
    background:#000;
    font-family:Georgia;
    font-size: 34px;
    font-style: italic;
    letter-spacing:-1px;
}
.section{
    margin:0px;
    height:4000px;
    width:100%;
    float:left;
    text-shadow:1px 1px 2px #f0f0f0;
}
.section h2{
    margin:50px 0px 30px 50px;
}
.section p{
    margin:20px 0px 0px 50px;
    width:600px;
}
.black{
    color:#fff;
    background:#000 url(../images/black_vert.jpg) repeat-x bottom left;
}
.white{
    color:#000;
    background:#fff url(../images/white_vert.jpg) repeat-x bottom left;
}
.section ul{
    list-style:none;
    margin:20px 0px 0px 550px;
}
.black ul li{
    float:left;
    padding:5px;
    margin:5px;
    color:#aaa;
}
.black ul li a{
    display:block;
    color:#f0f0f0;
}
.black ul li a:hover{
    text-decoration:none;
    color:#fff;
}
.white ul li{
    float:left;
    padding:5px;
    margin:5px;
    color:#aaa;
}
.white ul li a{
    display:block;
    color:#222;
}
.white ul li a:hover{
    text-decoration:none;
    color:#000;
}

Ora possiamo scegliere tramite jQuery se avere lo scroll verticale o orizzontale in modo estremamente semplice.

Per ottenre lo scroll verticale:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$(function() {
	$('ul.nav a').bind('click',function(event){
		var $anchor = $(this);
 
		$('html, body').stop().animate({
			scrollTop: $($anchor.attr('href')).offset().top
		}, 1500,'easeInOutExpo');
		/*
		if you don't want to use the easing effects:
		$('html, body').stop().animate({
			scrollTop: $($anchor.attr('href')).offset().top
		}, 1000);
		*/
		event.preventDefault();
	});
});

Per ottenere lo scroll orizzontale:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(function() {
	$('ul.nav a').bind('click',function(event){
		var $anchor = $(this);
		/*
		if you want to use one of the easing effects:
		$('html, body').stop().animate({
			scrollLeft: $($anchor.attr('href')).offset().left
		}, 1500,'easeInOutExpo');
		 */
		$('html, body').stop().animate({
			scrollLeft: $($anchor.attr('href')).offset().left
		}, 1000);
		event.preventDefault();
	});
});

Visualizzauna demo scroll verticale da qui.
Visualizzauna demo scroll orizzontale da qui.
Scarica il sorgente da qui.

Ti piace questo tipo di navigazione? Non dimenticare di condividere l’articolo con i tuoi amici!

[adsense]