Archive pour la catégorie 'jQuery'

Quelques plugins jQuery utiles

Dimanche 24 janvier 2010

Voici trois plugin jQuery que j'utilise relativement souvent :

- Time ago



Permet de modifier un timestamp en : "Il y a 4 minutes" ou "Il y a 8 jours", "Il y a un mois" comme ce qu'on peut voir dans les timeline de Twitter ou Facebook.

- jQuery Validation



Permet la validation des champs d'un formulaire avant d'être envoyé.

- jCrop



Permet de retailler une image sur un site internet. J'avais fait ce genre de code en javascript + php (sur le site de Live9 pour l'envoi des pochettes) avant de trouver ce plugin jQuery.

N'hésitez pas a partager vous aussi les différents plugins que vous utilisez régulièrement.

jQuery + CodeIgniter + Référencement

Jeudi 31 décembre 2009

Sur un site j'utilise CodeIgniter et un plug in jQuery pour la navigation (sans recharger tout le contenu).

La navigation comme ça c'est bien mais ça ne fonctionne pas partout et pour le référencement c'est pas terrible.

Donc je vais vous expliquer les différentes modifications que j'ai fait dans mon code source de base pour pouvoir référencer correctement le site avec la navigation en "AJAX".

Dans un premier temps j'ai utiliser le Framework PHP CodeIgniter : http://www.codeigniter.com

Ensuite j'ai téléchargé la librairie jQuery : http://www.jQuery.com ainsi que le plugin jQuery.History disponible ici : http://www.mikage.to/jquery/jquery_history.html

Par défaut les adresses de Code Igniter sont du genre : /index.php/class/méthode etc... ce qui est vraiment pas optimum pour le référencement j'ai donc décidé de supprimer le "index.php/" pour cela j'utilise un fichier .htaccess avec les paramètres suivants :

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]

Ce qui me permet d'avoir : /accueil/login à la place de : /index.php/accueil/login
Ou d'avoir /accueil à la place de : /index.php/accueil

J'ai créer dans /application/controllers un contrôleur que j'ai nommé "page". Ce contrôleur appellera la page demandé avec un header et un footer.

class Page extends Controller {

	function Page()
	{
		parent::Controller();
	}

	function index()
	{
		// Charge la page : /application/views/accueil.php
		$data['main_content'] = 'accueil';
		$this->load->view('includes/template', $data);
	}

	function contact()
	{
		// Charge la page : /application/views/contact.php
		$data['main_content'] = 'contact';
		$this->load->view('includes/template', $data);
	}

}

Ensuite dans le dossier /application/views j'ai un dossier "includes" qui contient :
header.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"  dir="ltr" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title></title>
</head>
<body>

template.php

// Header du site
<?php $this->load->view('includes/header'); ?>
// Vue chargé par la variable $main_content
<?php $this->load->view($main_content); ?>
// Footer du site
<?php $this->load->view('includes/footer'); ?>

footer.php

</body>
</html>

Ajouter dans votre htaccess une ligne par page que vous voulez créer à noté on appel toujours "page" qui est notre contrôleur et "accueil" qui est notre méthode ;)

RewriteRule ^accueil$ /index.php/page/accueil/ [L]
RewriteRule ^contact$ /index.php/page/contact/ [L]

Donc on peut créer un menu dans /application/views/includes/header.php

<div id="navigation">
  <ul>
    <li><a href="/accueil">Accueil</a></li>
    <li><a href="/contact">Contact</a></li>
  </ul>
</div>

Ce menu fonctionnera parfaitement avec tous les navigateurs par contre il rechargera a chaque fois tous les éléments : header.php template.php et footer.php

Pour ne pas recharger a chaque fois tous les éléments on peut utilise le plugin jQuery.History. Ce plug in fonctionne avec des liens avec l'attribut rel="history" et avec des ancres donc des liens avec des #page etc...

J'ai donc fait un petit code en jQuery qui modifie le menu précédent par le code :

<div id="navigation">
  <ul>
    <li><a rel="history" href="#accueil">Accueil</a></li>
    <li><a rel="history" href="#contact">Contact</a></li>
  </ul>
</div>

Le script jQuery qui permet de modifier le menu a la volée est le suivant :

    $(document).ready(function() {
        /* Pour chaque element a qui se trouve dans un li dans un ul dans un element id="navigation" */
        $("#navigation ul li a").each(function(){
            /* On recupere le href et on coupe le slash */
            var ancre = $(this).attr("href").split('/');
            /* On ajoute l'attribut rel avec la valeur history */
            $(this).attr("rel","history");
            /* On modifie l'attribut href par le nouveau avec le # a la place du slash */
            $(this).attr("href","#" + ancre[1]);
        });
    });

Si le navigateur accepte jQuery et le Javascript alors les liens seront de la forme #lien et chargé grâce au plugin jQuery History sinon les liens seront de la forme /lien :)

A l'an prochain bon réveillon ;)

Have fun with jQuery animate()

Samedi 1 août 2009

La fonction animate() de jQuery en inspire plus d'un !

Voilà deux blog ou vous pourrez voir divers utilisations de cette fonction :

http://www.viget.com/inspire/fun-with-jquerys-animation-function/

Pour les amateurs de bacon :
http://acko.net/blog/abusing-jquery-animate-for-fun-and-profit-and-bacon (la démo)

Et pour finir un script que j'ai utilisé dans un projet qui permet d'attribuer un classement avec des étoiles :
http://www.m3nt0r.de/devel/raterDemo/

jQuery - Cookie plugin

Vendredi 19 juin 2009

Créer, modifier, supprimer vos cookies grâce à ce plugin jQuery !

http://plugins.jquery.com/project/Cookie

Il est plutôt simple d'utilisation j'avais fait il y a 2ans un script pour gerer les cookies avec Javascript et il était bien plus complexe que ce plugin.Pour créer un cookie :

$.cookie("nom_du_cookie", "valeur");

Création d'un cookie valide pendant 30 jours :

$.cookie("nom_du_cookie", "nom_du_cookie", { expires: 30 });

Afficher la valeur du cookie :

alert( $.cookie("nom_du_cookie") );

Supprimer le cookie il suffit de modifier la valeur par null (ou de mettre une expiration a 0) :

$.cookie("nom_du_cookie", null);

Nouveaux liens !

Jeudi 4 juin 2009

Une semaine déjà sans faire un billet c'est long je sais...
Voilà donc des nouveaux liens sur la gauche (l'autre gauche ? la droite ! :P ) qui vous permettrons de découvrir pas mal de sites en jQuery ou d'autres technologies.

- Function est un site Anglais plutôt bien fait avec pas mal de design de boutons (avec certains à vendre) et quelques articles qui m'intéressent.
- Nettuts+ est un blog avec pas mal d'articles et de tutoriaux (certains payant également) mais pas mal de contenu est gratuit c'est également un très bon site. N'hésitez pas a voir les sites de la même famille (PSDtuts, Audiotuts etc...).
- Six Revisions je le connais beaucoup moins mais il y a des bons articles également.

Bonnes ressources pour débuter avec jQuery

Jeudi 28 mai 2009

Voilà quelques liens sur les différents selecteurs que vous pouvez utiliser avec jQuery :

via codylindley.com

via sawmac.com

via jQuery.com

Egalement une selection des 30 meilleurs plugin jQuery pour le mois de Mai 2009, avec parmis ces plugins le jplayer qui permet la lecture d'un mp3 grâce à jQuery.

jplayer
via ajaxline.com

Plugin jQuery : "Sparks" le plugin qui fait des étincelles !

Jeudi 28 mai 2009

Aujourd'hui je vous présente le plugin jQuery "Sparks" qui signifie "étincelles".

Ce plugin est trés graphique et plutôt sympa au premier coup d'oeil j'ai cru a du flash...

rf_sparks

Le site http://redflex.co.uk/ utilise ce plugin vous pouvez donc vous rendre là bas pour voir une démonstration.

On peut modifier le nombre d'étincelles a notre guise avec différentes images... Comme l'explique son auteur sur le site officiel du plugin.

Voir la démonstration

Voir le site officiel

Création d'un nouveau projet web.

Lundi 25 mai 2009

ProjectDeploy.org est un site web qui permet de créer une structure de base pour votre projet web.

picture-14

Par exemple on peut choisir si on fait nos page en html 4.01 ou xhtml 1.0, si on veut faire du transitional ou du strict, si on utilise du css, si on veut inclure du jquery, des plugins etc...

Bref vous définissez vos options et lorsque vous avez fini cliquez sur "deploy!". A ce moment la vous pourez télécharger un fichier zip avec une "structure" de base pour votre projet.

Animons nos page avec jQuery

Dimanche 24 mai 2009

Aujourd'hui un exemple pour animer vos pages web grâce à jQuery.

Nous allons utiliser la fonction .animate() celle-ci permet de modifier le css d'un ou plusieurs élément(s) de votre page.

Dans cet exemple nous allons travailler avec cinq liens qui vont nous permettre de faire bouger une balise html <p>.

Dans la balise body placez :

<a href="javascript:void(0)" onclick="anim1();">anim1();</a>
<a href="javascript:void(0)" onclick="anim2();">anim2();</a>
<a href="javascript:void(0)" onclick="anim3();">anim3();</a>
<a href="javascript:void(0)" onclick="anim4();">anim4();</a>
<a href="javascript:void(0)" onclick="anim5();">anim5();</a>
<p id="p1">Paragraph with some text</p>

Puis dans le head ajouter la bibliotheque jQuery ainsi que nos différentes fonctions :

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript">
function anim1(){
	$("#p1").animate(
		{
			paddingLeft:"100px",
			paddingTop:"0px"
		},
		1000
	);
}
function anim2(){
	$("#p1").animate(
		{
			paddingLeft: "200px",
			paddingTop:"0px"
		},
		1000
	);
}
function anim3(){
	$("#p1").animate(
		{
			paddingLeft:"200px",
			paddingTop:"100px"
		},
		1000
	);
}
function anim4(){
	$("#p1").animate(
		{
			paddingLeft:"100px",
			paddingTop:"100px"
		},
		1000
	);
}
function anim5(){
	$("#p1").animate(
		{
			paddingLeft: "200px",
			paddingTop:"0px"
		},
		1000
	);
}
</script>

La premiere ligne inclus la librairie jQuery : "jquery-1.3.2.min.js". Ensuite j'ai créer 5 fonctions qui modifieront #p1 comme en CSS la balise avec l'id qui sera égale à p1 soit une balise avec id="p1".
Avec la fonction animate je modifie une ou plusieurs valeurs de CSS pour pouvoir déplacer mon élément sur ma page.
N'hésitez pas à ajouter des commentaires si vous avez besoin de plus d'explications.

Voir la démonstration

Une seconde démonstration. Dans celle-ci j'ai ajouté la fonction fadeTo() qui permet de modifier l'opacité du texte.
Voir la démonstration 2

jQuery : On commence...

Samedi 23 mai 2009

Voilà le premier article sur jQuery. Mais qu'est-ce que jQuery ?
jQuery est un "framework" javascript qui permet d'utiliser le DOM, et d'agrémenter vos pages par des animations, ou différentes fonctionnalités AJAX.

Pour utiliser jQuery nous allons dans un premier temps télécharger la librairie sur le site officiel.

Ensuite ajouter la dans votre page html entre les balises <head> et </head> grâce à


<script type="text/javascript" src="jquery.js"></script>

Maintenant nous pouvons utiliser jQuery grâce à : $(...)

Ceci $() va nous permettre d'utiliser les différentes fonctions de jQuery.
Par exemple si dans notre page nous avons <div id="mondiv">contenu de mon div</div> je vais pouvoir selectionner cet element avec jQuery.
$("#mondiv") va nous permettre de selectionner notre element comme en CSS #mondiv selectionnera la balise avec l'id correspondant.

Exemple de page html avec l'utilisation de jQuery qui permet de cacher l'élément.


<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
</head>
<body>
<div id="mondiv">contenu de mon div</div>
<script>$("#mondiv").hide(slow)</script>
</body>
</html>