graag feedback op full page slider

  • Onderwerp starter Onderwerp starter pum
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

pum

Gebruiker
Lid geworden
18 dec 2009
Berichten
193
ik ben bezig met een full page slider. Ik weet dat hier plugins voor zijn maar wil het graag zelf maken om jquery zo beter onder de knie te krijgen. Nu heb ik mijn code hieronder gepost zouden jullie hier eens naar willen kijken en feedback hierop willen geven.

Ook had ik een vraag m.b.t de scope van variabels binnen jquery, wanneer zet ik var voor een variabel? is dit alleen binnen een functie ? wanneer gebruik ik dan juist geen var?

index.html
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
   <head>
   <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
   <link type="text/css" rel="stylesheet" href="assets/css/screen.css"/> 
   <script type="text/javascript" src="http://code.jquery.com/jquery-1.6.1.min.js"></script>
   <script type="text/javascript" src="assets/js/functions.js"></script>
   <title>Basis Html</title>
   </head>
   
   <body>
         <div class="page blue">
           page1
         </div>
         <div class="page green">
           page2
         </div> 
         <div class="page yellow">
           page3
         </div>
         <div class="page purple">
           page4
         </div>                           
   </body>
</html>

screen.css
HTML:
body {
   margin: 0;
   padding: 0;
  	overflow: hidden;  /* haalt de scrollbars weg */
}

#pagewrapper {
   overflow: hidden;
}

/* page */
.page {
	position: relative;
	float: left;
}

.blue {
	background-color: blue;
}

.green {
	background-color: green;
}

.yellow {
	background-color: yellow;
}

.purple {
	background-color: fuchsia;
}

.button {
   display: block;
   width: 50px;
   height: 50px;
   position: absolute;
   top: 45%;
   background-color: red;
   cursor: pointer;
}

#prev {
   left: 0;
}

#next {
   right: 0;
}

functions.js
[JS]$(function(){
var pageWidth = $(document).width();
var pageHeight = $(document).height();
var page = $('.page');
var totalPages = page.length;
var pageWrapWidth = totalPages * pageWidth ;
var currentPage = 0;
var lastSlide = totalPages -1;

page.wrapAll('<div id="pagewrapper"></div>');
$('#pagewrapper').css('width', pageWrapWidth);
$('.page').css({ 'width': pageWidth, 'height': pageHeight });
$('#pagewrapper').after('<span class="button" id="prev">prev</span><span class="button next" id="next">next</span>');

checkCurrentPage(currentPage);

function checkCurrentPage(currentPage){
var movingSpace = currentPage * pageWidth;
if(currentPage == 0){
$('#prev').hide();
}else{
$('#pagewrapper').animate({
'marginLeft': movingSpace
}, 400, function(){
$('#prev').show();
});
}
if(currentPage == -lastSlide){
$('#next').hide();
}else{
$('#pagewrapper').animate({
'marginLeft': movingSpace
}, 400, function(){
$('#next').show();
});
}
}

$('.button').click(function(){
var id = $(this).attr('id');
switch(id){
case 'prev':
currentPage ++;
checkCurrentPage(currentPage);
break;
case 'next':
currentPage --;
checkCurrentPage(currentPage);
break;
}
});

});[/JS]
 
Laatst bewerkt:
Ziet er leuk uit :) Maar ga eens naar pagina 3, en dan dubbelklik op terug. Dan kom je op pagina 1, maar kun je nog steeds een keer terug, dat zou even gefixt moeten worden ;)

var gebruik je bij het declareren van een variabele om de scope aan te geven. Als je géén var gebruikt, bedoel je een globale variabele. Voorbeeldje:
[JS]function f() {
var local = true;
global = true;
}
f();
//global is hier true;
//local is undefined;[/JS]
 
Hoi pum,
Ik heb de gewoonte om altijd var mijnVar = ... te gebruiken voor het definiëren van een variabele. Dat mag ook bij een globale variabele, en zo zie ik het eenvoudigst waar een variabele is begonnen.
Voor het aanroepen van een variabele gebruik je alleen de naam.

Scope
Een globale variabele staat buiten de functies van een script, en blijft onthouden in het werkgeheugen (in de laatst opgegeven waarde).
Voorbeeld:
[JS]var geklikt = 0; // globale variabele

function isGeklikt(){
if (geklikt == 0){
alert('Er is niet geklikt op de link');
}
else {
alert('Er is ' +geklikt+ ' keer op de link geklikt');
}
geklikt = geklikt + 1;
}
[/JS]
met:
HTML:
<body onload="isGeklikt()">
<p><a href="#" onclick="isGeklikt(); return false;">klik-link</a></p>
=====
Een locale variabele staat binnen een bepaalde functie van een script, en is alleen in die functie geldig. Locale variabelen zijn dus "wegwerp-variabelen" die elke keer bij het aanroepen van de functie opnieuw gebruikt worden.
Voorbeeld:
[JS]function linkInhoud(n){
var inhoud = document.getElementById(n).innerHTML; // locale variabele
alert ('Er is geklikt op: ' +inhoud);
}[/JS]
met:
HTML:
<p><a id="link1" href="#" onclick="linkInhoud('link1'); return false;">klik-link 1</a></p>
<p><a id="link2" href="#" onclick="linkInhoud('link2'); return false;">klik-link 2</a></p>
Met vriendelijke groet,
CSShunter
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan