Da un’idea di Carlo… un plugin senza troppi fronzoli e soprattutto senza flash
- Proxy php per il recupero del feed
- Navigabile da tastiera con il tasto “>” e il tasto “<”
/*
*
* Dilbert plugin 1.0
* $Date: 2008-04-29 10:20:55 +0200 (mar, 29 apr 2008) $
* $Rev: 10 $
* @requires jQuery v1.2.3
*
* Copyright (c) 2008 Massimiliano Balestrieri
* Examples and docs at: http://maxb.net/blog/
* Licensed GPL licenses:
* http://www.gnu.org/licenses/gpl.html
*
*/
//if(!window.console)window.console = {log : function(){}};
Dilbert = {
date : '',
title : 'Dilbert Daily Strip',
link : '',
desc : '',
pages : 1,
jpages : [],
current : 1,
options : {},
build : function(options)
{
Dilbert.options = options || {};
return this.each(
function(nr)
{
//setto un po’ di variabili
if(!Dilbert.options.feed)
Dilbert.options.feed = ‘http://feeds.feedburner.com/DilbertDailyStrip’;
if(!Dilbert.options.proxy)
Dilbert.options.proxy || ‘proxy.php’;
var that = this;
Dilbert.get(1,that);
}
);
},
get : function(num,el){
//console.log(num);
jQuery.ajax({
dataType : ‘xml’,
url : Dilbert.options.proxy,
data : ‘url=’ + Dilbert.options.feed,
success: function(rss){
//console.log(data.firstChild);
var titles = rss.getElementsByTagName("title");
var link = rss.getElementsByTagName("link");
var desc = rss.getElementsByTagName("description");
Dilbert.pages = titles.length - 1;
Dilbert.title = titles[0].firstChild.nodeValue;
Dilbert.date = titles[num].firstChild.nodeValue;
//Dilbert.link = link[num].firstChild.nodeValue;
Dilbert.desc = desc[num].firstChild.nodeValue;
//console.log(Dilbert.title);
//console.log(Dilbert.date);
if(el){
Dilbert.gui(el);
}else{
jQuery(".dilbert-title", el).text(Dilbert.title + ‘ - ‘ + Dilbert.date);
jQuery(".dilbert-desc", el).html(Dilbert.desc);
Dilbert.reset_toolbar(el);
//console.log(Dilbert.current);
Dilbert.jpages[(Dilbert.current - 1)].css({"color":"red","text-decoration":"none"});
}
}
});
},
gui : function(el)
{
jQuery(el).append(’<div class="dilbert-jquery">’);
var jcontainer = jQuery(".dilbert-jquery", el);
jcontainer.append(’<div class="dilbert-title-cont"><div class="dilbert-title" re="#"></div><div class="dilbert-pager"></div>’);
jQuery(".dilbert-title", el).text(Dilbert.title + ‘ - ‘ + Dilbert.date);
//console.log(Dilbert.title);
//console.log(Dilbert.date);
jcontainer.append(’<div class="dilbert-desc">’);
jQuery(".dilbert-desc", el).html(Dilbert.desc);
jcontainer.append(”);
var pager = jQuery(".dilbert-pager", el);
var first = jQuery(’<a href="#"></a>’)
.text("<<")
.click(function(){
Dilbert.current = 1;
Dilbert.get(1);
return false;
});
var prev = jQuery(’<a href="#"></a>’)
.text("<")
.click(function(){
if(Dilbert.current > 1)
Dilbert.get(–Dilbert.current);
return false;
});
var next = jQuery(’<a href="#"></a>’)
.text(">")
.click(function(){
if(Dilbert.current < Dilbert.pages)
Dilbert.get(++Dilbert.current);
return false;
});
var last = jQuery(’<a href="#"></a>’)
.text(">>")
.click(function(){
Dilbert.current = Dilbert.pages;
Dilbert.get(Dilbert.pages);
return false;
});
pager.append(first);
pager.append(prev);
for(var i = 0;i < Dilbert.pages;i++){
var link = jQuery(’<a href="#"></a>’)
.text((i + 1))
.click(function(){
Dilbert.current = parseInt(jQuery(this).text());
Dilbert.get(Dilbert.current);
return false;
});
if((Dilbert.current-1) == i)
link.css({"color":"red","text-decoration":"none"});
Dilbert.jpages[i] = link;
pager.append(link);
}
pager.append(next);
pager.append(last);
document.onkeydown = function(e){
if (e == null) { // ie
keycode = event.keyCode;
} else { // mozilla
keycode = e.which;
}
if(keycode == 190){ // display previous image
if(Dilbert.current > 1){
//console.log(Dilbert.current);
Dilbert.get(–Dilbert.current);
}
} else if(keycode == 188){ // display next image
if(Dilbert.current < Dilbert.pages){
//console.log(Dilbert.current);
Dilbert.get(++Dilbert.current);
}
}
};
},
reset_toolbar : function(el){
jQuery(".dilbert-pager>a", el).css({"color":"black","text-decoration":"underline"});
}
};
jQuery.fn.dilbert = Dilbert.build;
{ 1 } Trackback
[...] Corretto l’evento onkeydown della 1.0. [...]
Post a Comment