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 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123
|
<div id="carrousel">
<ul>
<li><img src="http://lorempixel.com/700/200/" /></li>
<li><img src="http://lorempixel.com/g/700/200/" /></li>
<li><img src="http://lorempixel.com/700/200/abstract/" /></li>
</ul>
</div>
<!-- on inclut la bibliothèque depuis les serveurs de Google -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
</script>
<script>
<script>
var siteUrl = 'PublishingImages/banner/'; //Url de ta collection de site contenant la bibliothèque cible
function retrieveListItemsInclude() {
var clientContext = new SP.ClientContext(siteUrl);
var oList = clientContext.get_web().get_lists().getByTitle('Images'); //récupération de la bibliothèque
var camlQuery = new SP.CamlQuery();
camlQuery.set_viewXml('<View><RowLimit>10</RowLimit></View>'); //requête vers la bibliothèque (actuellement les 10 premiers éléments)
this.collListItem = oList.getItems(camlQuery);
clientContext.load(collListItem, 'Include(Id, DisplayName)'); //ensemble des champs de la bibliothèque que tu souhaites utiliser
clientContext.executeQueryAsync(Function.createDelegate(this, this.onQuerySucceeded), Function.createDelegate(this, this.onQueryFailed));
}
//Fonction qui sera appelée si tout se passe bien, c'est ici que tu récupèreras tes images
function onQuerySucceeded(sender, args) {
var listItemInfo = '';
var listItemEnumerator = collListItem.getEnumerator(); //récupère tous les éléments issue de ta requête
while (listItemEnumerator.moveNext()) {
var oListItem = listItemEnumerator.get_current();
//Exploitation des informations listItemInfo += '\nID: ' + oListItem.get_id() + '\nDisplay name: ' + oListItem.get_displayName() + '\nUnique role assignments: ' + oListItem.get_hasUniqueRoleAssignments(); } alert(listItemInfo.toString()); //élément qu'il faudra modifier par la suite pour insérer tes images dans le DOM et remplacer le code static}//Fonction appelée si jamais une erreur se produit lors de l'exécution de l'appel au webservicefunction onQueryFailed(sender, args) { alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace()); }
$(document).ready(function(){
var $carrousel = $('#carrousel'), // on cible le bloc du carrousel
$img = $('#carrousel img'), // on cible les images contenues dans le carrousel
indexImg = $img.length - 1, // on définit l'index du dernier élément
i = 0, // on initialise un compteur
$currentImg = $img.eq(i); // enfin, on cible l'image courante, qui possède l'index i (0 pour l'instant)
$img.css('display', 'none'); // on cache les images
$currentImg.css('display', 'block'); // on affiche seulement l'image courante
$carrousel.append('<div class="controls"> <span class="prev">Precedent</span> <span class="next">Suivant</span> </div>');
$('.next').click(function(){ // image suivante
i++; // on incrémente le compteur
if( i <= indexImg ){
$img.css('display', 'none'); // on cache les images
$currentImg = $img.eq(i); // on définit la nouvelle image
$currentImg.css('display', 'block'); // puis on l'affiche
}
else{
i = indexImg;
}
});
$('.prev').click(function(){ // image précédente
i--; // on décrémente le compteur, puis on réalise la même chose que pour la fonction "suivante"
if( i >= 0 ){
$img.css('display', 'none');
$currentImg = $img.eq(i);
$currentImg.css('display', 'block');
}
else{
i = 0;
}
});
function slideImg(){
setTimeout(function(){ // on utilise une fonction anonyme
if(i < indexImg){ // si le compteur est inférieur au dernier index
i++; // on l'incrémente
}
else{ // sinon, on le remet à 0 (première image)
i = 0;
}
$img.css('display', 'none');
$currentImg = $img.eq(i);
$currentImg.css('display', 'block');
slideImg(); // on oublie pas de relancer la fonction à la fin
}, 7000); // on définit l'intervalle à 7000 millisecondes (7s)
}
slideImg(); // enfin, on lance la fonction une première fois
});
</script>
<style type="text/css">
#carrousel{
position:relative;
height:200px;
width:700px;
margin:auto;
}
#carrousel ul li{
position:absolute;
top:0;
left:0;
}
</style> |
Partager