Changeset 9363 in spip-zone


Ignore:
Timestamp:
Jan 31, 2007, 8:14:43 PM (14 years ago)
Author:
yvan.arnaud@…
Message:

maj d'après plugin 'lecteur multimedia'

Location:
_plugins_/_dev_/smoothslideshow
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/_dev_/smoothslideshow/css/jd.slideshow.css

    r4954 r9363  
    44        height: 240px;
    55        z-index:5;
     6}
     7
     8.jdSlideshow
     9{
    610        display: none;
    711        overflow:hidden;
     
    913}
    1014
    11 #mySlideshow img
     15.jdSlideshow img
    1216{
    1317        border: 0;
     
    1519}
    1620
    17 #mySlideshow #slideInfoZone
     21.jdSlideshow .slideElement
     22{
     23        width: 100%;
     24        height: 100%;
     25        background-color: #000;
     26        background-repeat: no-repeat;
     27}
     28
     29.jdSlideshow .loadingElement
     30{
     31        width: 100%;
     32        height: 100%;
     33        position: absolute;
     34        left: 0;
     35        top: 0;
     36        background-color: #000;
     37        background-repeat: no-repeat;
     38        background-position: center center;
     39        background-image: url('img/loading-bar-black.gif');
     40}
     41
     42.jdSlideshow .slideInfoZone
    1843{
    1944        position: absolute;
     
    2348        left: 0;
    2449        bottom: 0;
    25         height: 3em;
     50        height: 40px;
    2651        background: #333;
    2752        color: #fff;
     
    2954}
    3055
    31 #slideInfoZone h2
     56.jdSlideshow .slideInfoZone h2
    3257{
    3358        padding: 0;
    34         font-size: 80%;
     59        font-size: 90%;
    3560        margin: 0;
    3661        margin: 2px 5px;
    37         font-weight: strong;
    38         color: inherit;
     62        font-weight: bold;
     63        color: #inherit;
    3964}
    4065
    41 #slideInfoZone p
     66.jdSlideshow .slideInfoZone p
    4267{
    4368        padding: 0;
    44         font-size: 60%;
     69        font-size: 70%;
    4570        margin: 2px 5px;
    4671        color: #eee;
    4772}
    4873
    49 #mySlideshow a
     74.jdSlideshow a
    5075{
    5176        font-size: 100%;
     
    5479}
    5580
    56 #mySlideshow a.right, #mySlideshow a.left
     81.jdSlideshow a.right, .jdSlideshow a.left
    5782{
    5883        position: absolute;
     
    6792}
    6893
    69 * html #mySlideshow a.right, * html #mySlideshow a.left
     94* html .jdSlideshow a.right, * html .jdSlideshow a.left
    7095{
    7196        filter:alpha(opacity=50);
    7297}
    7398
    74 #mySlideshow a.right:hover, #mySlideshow a.left:hover
     99.jdSlideshow a.right:hover, .jdSlideshow a.left:hover
    75100{
    76101        filter:alpha(opacity=80);
     
    80105}
    81106
    82 #mySlideshow a.left
     107.jdSlideshow a.left
    83108{
    84109        left: 0;
    85110        top: 0;
    86         background: url('img/fleche1.gif') no-repeat top left;
     111        background: url('img/fleche1.png') no-repeat top left;
    87112}
    88113
    89 #mySlideshow a.right
     114* html .jdSlideshow a.left { background: url('img/fleche1.gif') no-repeat top left; }
     115
     116.jdSlideshow a.right
    90117{
    91118        right: 0;
    92119        top: 0;
    93         background: url('img/fleche2.gif') no-repeat top right;
     120        background: url('img/fleche2.png') no-repeat top right;
    94121}
     122
     123* html .jdSlideshow a.right { background: url('img/fleche2.gif') no-repeat top right; }
  • _plugins_/_dev_/smoothslideshow/css/layout.css

    r4954 r9363  
    1313 **************************************************************/
    1414
    15 #content { 
     15#content {
    1616  height: 100%;
    1717  min-height: 100%;
     
    2323#width {
    2424  /* max-width hack for IE since it doesn't understand the valid css property */
    25   width: expression(document.body.clientWidth > 1000 ? "1000px" : "94%"); 
     25  width: expression(document.body.clientWidth > 1000 ? "1000px" : "94%");
    2626  max-width: 1000px;
    2727  margin: 0 auto;
     
    7070  position: absolute;
    7171  top: 7px;
    72   right: 5px;
     72  right: 5em;
    7373
    7474  margin: 0;
     
    8080}
    8181
     82#header h2 a {
     83  color: #CC3030;
     84  text-decoration: none;
     85}
     86
    8287
    8388/* Sets where the header images will go */
     
    104109  top: 70px;
    105110  right: 400px;
     111
    106112}
    107113
     
    112118 **************************************************************/
    113119
    114 #mainMenu { 
     120#mainMenu {
    115121  float: left;
    116122  width: 100%;
    117   clear: both; 
     123  clear: both;
    118124}
    119125
     
    165171.sideMenu li {
    166172  display: inline;
    167  
    168   /* Needed since IE fails when you give it list-style: none; */ 
     173
     174  /* Needed since IE fails when you give it list-style: none; */
    169175  list-style-image: url(foo.gif);
    170176  font: 400 1.3em "trebuchet ms", serif;
     
    174180  display: block;
    175181  margin: 0.2em 0;
    176   padding: 3px 5px;   
    177  
     182  padding: 3px 5px;
     183
    178184  text-decoration: none;
    179185  color: #FFF;
    180 } 
     186}
    181187
    182188.sideMenu li a:hover {
     
    187193/* Active menu item */
    188194.sideMenu li.here {
    189   display: block; 
     195  display: block;
    190196  padding: 5px;
    191197  color: #65EBFF;
     
    201207.sideMenu li.here ul li a {
    202208  padding-left: 35px;
    203   font: 400 0.55em verdana, arial, sans-serif; 
    204   color: #FFF; 
     209  font: 400 0.55em verdana, arial, sans-serif;
     210  color: #FFF;
    205211  background: url(../images/bg/bullet.gif) no-repeat 10px 0px;
    206212}
     
    221227  width: 100%;
    222228  clear: both;
    223  
     229
    224230  padding-bottom: 4em;
    225231}
     
    237243  width: 100%;
    238244  clear: both;
    239  
     245
    240246  margin-top: -3.8em;
    241247  background: #000 url(../images/bg/footer.jpg) repeat-x top left;
     
    338344.gradient {
    339345  margin-bottom: 2em;
    340   background: #555 url(../images/bg/gradient.jpg) repeat-x bottom left; 
     346  background: #555 url(../images/bg/gradient.jpg) repeat-x bottom left;
    341347}
    342348
  • _plugins_/_dev_/smoothslideshow/css/print.css

    r4954 r9363  
    6262
    6363
     64
  • _plugins_/_dev_/smoothslideshow/plugin.xml

    r6815 r9363  
    11<plugin>
    2         <nom> <!-- Nom du plugin -->
    3           Smooth
     2<nom> <!-- Nom du plugin -->
     3Smooth Slideshow
     4</nom>
     5<auteur>        <!-- Auteur du plugin -->
     6Yvan d'après IZO, James et le plugin [lecteur multimedia->http://spip-zone.info/spip.php?article18]
     7_ portage de [->http://smoothslideshow.jondesign.net/]
     8_ Distribu&#233; sous licence GNU/GPL
     9</auteur>
     10<version>
     110.1
     12</version>
     13<etat>
     14test
     15</etat>
     16<description>
    417<multi>
    5 [fr] gallery photo en js. Portage de http://smoothslideshow.jondesign.net/
     18[fr]
    619
     203 mod&#232;les joints :
     21- slideshow des logos des articles d'une rubrique
     22- slideshow des images d'un article
     23- slideshow des rubriques d'un article
     24
     25à insérer dans les squelettes par <code>#MODELE{nom_du_modele}</code>
    726</multi>
    8         </nom>
    9         <auteur>        <!-- Auteur du plugin -->
    10 IZO, James      </auteur>
    11         <version>
    12           0.1
    13         </version>
    14         <etat>
    15           test
    16         </etat>
    17         <description>
    18           <multi>
    19           [fr]
    20 un plugin de gallerie d'image
    21 
    22 portage de http://smoothslideshow.jondesign.net/
    23 
    24 J'aimerai obtenir #SMOOTH comme pour le plugin #PORTOFOLIO mais j'y arrive pas mais je veux bien l'on m'explique
    25 ... au fait le plugin marche pas :)
    26           </multi>
    27         </description>
    28         <lien>http://smoothslideshow.jondesign.net/</lien>
    29 
    30         <fonctions> <!-- fichier charge a chaque recalul de page -->
    31         smooth_fonctions.php
    32         </fonctions>
    33         <!-- classe d'implementation : espace de nommage qui prefixera les appels de fonction
    34         sur le mode Rien::
    35         ainsi les fonctions hors espace de nommage ne peuvent etre appelees
    36         ce parametre est obligatoire et doit etre non vide
    37         -->
    38         <prefix>
    39           SMOOTH
    40         </prefix>
     27</description>
     28<lien> [Exemple->http://mamoud.free.fr/spip_svn/spip.php?article1]</lien>
     29<fonctions> <!-- fichier charge a chaque recalul de page -->
     30smooth_fonctions.php
     31</fonctions>
     32<!-- classe d'implementation : espace de nommage qui prefixera les appels de fonction
     33sur le mode Rien::
     34ainsi les fonctions hors espace de nommage ne peuvent etre appelees
     35ce parametre est obligatoire et doit etre non vide
     36-->
     37<prefix>
     38smooth
     39</prefix>
     40<pipeline>
     41<nom>insert_head</nom>
     42</pipeline>
    4143</plugin>
  • _plugins_/_dev_/smoothslideshow/scripts/moo.fx.js

    r4954 r9363  
    1 /*
    2 moo.fx, simple effects library built with prototype.js (http://prototype.conio.net).
    3 by Valerio Proietti (http://mad4milk.net) MIT-style LICENSE.
    4 for more info (http://moofx.mad4milk.net).
    5 Sunday, March 05, 2006
    6 v 1.2.3
    7 */
     1//(c) 2006 Valerio Proietti (http://mad4milk.net). MIT-style license.
     2//moo.fx.js - depends on prototype.js OR prototype.lite.js
     3//version 2.0
    84
    9 var fx = new Object();
    10 //base
    11 fx.Base = function(){};
    12 fx.Base.prototype = {
    13         setOptions: function(options) {
    14         this.options = {
    15                 duration: 500,
    16                 onComplete: '',
    17                 transition: fx.sinoidal
    18         }
    19         Object.extend(this.options, options || {});
     5var Fx = fx = {};
     6
     7Fx.Base = function(){};
     8Fx.Base.prototype = {
     9
     10        setOptions: function(options){
     11                this.options = Object.extend({
     12                        onStart: function(){},
     13                        onComplete: function(){},
     14                        transition: Fx.Transitions.sineInOut,
     15                        duration: 500,
     16                        unit: 'px',
     17                        wait: true,
     18                        fps: 50
     19                }, options || {});
    2020        },
    2121
    22         step: function() {
    23                 var time  = (new Date).getTime();
    24                 if (time >= this.options.duration+this.startTime) {
     22        step: function(){
     23                var time = new Date().getTime();
     24                if (time < this.time + this.options.duration){
     25                        this.cTime = time - this.time;
     26                        this.setNow();
     27                } else {
     28                        setTimeout(this.options.onComplete.bind(this, this.element), 10);
     29                        this.clearTimer();
    2530                        this.now = this.to;
    26                         clearInterval (this.timer);
    27                         this.timer = null;
    28                         if (this.options.onComplete) setTimeout(this.options.onComplete.bind(this), 10);
    29                 }
    30                 else {
    31                         var Tpos = (time - this.startTime) / (this.options.duration);
    32                         this.now = this.options.transition(Tpos) * (this.to-this.from) + this.from;
    3331                }
    3432                this.increase();
    3533        },
    3634
    37         custom: function(from, to) {
    38                 if (this.timer != null) return;
     35        setNow: function(){
     36                this.now = this.compute(this.from, this.to);
     37        },
     38
     39        compute: function(from, to){
     40                var change = to - from;
     41                return this.options.transition(this.cTime, from, change, this.options.duration);
     42        },
     43
     44        clearTimer: function(){
     45                clearInterval(this.timer);
     46                this.timer = null;
     47                return this;
     48        },
     49
     50        _start: function(from, to){
     51                if (!this.options.wait) this.clearTimer();
     52                if (this.timer) return;
     53                setTimeout(this.options.onStart.bind(this, this.element), 10);
    3954                this.from = from;
    4055                this.to = to;
    41                 this.startTime = (new Date).getTime();
    42                 this.timer = setInterval (this.step.bind(this), 13);
     56                this.time = new Date().getTime();
     57                this.timer = setInterval(this.step.bind(this), Math.round(1000/this.options.fps));
     58                return this;
    4359        },
    4460
    45         hide: function() {
    46                 this.now = 0;
    47                 this.increase();
     61        custom: function(from, to){
     62                return this._start(from, to);
    4863        },
    4964
    50         clearTimer: function() {
    51                 clearInterval(this.timer);
    52                 this.timer = null;
     65        set: function(to){
     66                this.now = to;
     67                this.increase();
     68                return this;
     69        },
     70
     71        hide: function(){
     72                return this.set(0);
     73        },
     74
     75        setStyle: function(e, p, v){
     76                if (p == 'opacity'){
     77                        if (v == 0 && e.style.visibility != "hidden") e.style.visibility = "hidden";
     78                        else if (e.style.visibility != "visible") e.style.visibility = "visible";
     79                        if (window.ActiveXObject) e.style.filter = "alpha(opacity=" + v*100 + ")";
     80                        e.style.opacity = v;
     81                } else e.style[p] = v+this.options.unit;
    5382        }
    54 }
    5583
    56 //stretchers
    57 fx.Layout = Class.create();
    58 fx.Layout.prototype = Object.extend(new fx.Base(), {
    59         initialize: function(el, options) {
    60                 this.el = $(el);
    61                 this.el.style.overflow = "hidden";
    62                 this.iniWidth = this.el.offsetWidth;
    63                 this.iniHeight = this.el.offsetHeight;
     84};
     85
     86Fx.Style = Class.create();
     87Fx.Style.prototype = Object.extend(new Fx.Base(), {
     88
     89        initialize: function(el, property, options){
     90                this.element = $(el);
    6491                this.setOptions(options);
     92                this.property = property.camelize();
     93        },
     94
     95        increase: function(){
     96                this.setStyle(this.element, this.property, this.now);
    6597        }
     98
    6699});
    67100
    68 fx.Height = Class.create();
    69 Object.extend(Object.extend(fx.Height.prototype, fx.Layout.prototype), {       
    70         increase: function() {
    71                 this.el.style.height = this.now + "px";
     101Fx.Styles = Class.create();
     102Fx.Styles.prototype = Object.extend(new Fx.Base(), {
     103
     104        initialize: function(el, options){
     105                this.element = $(el);
     106                this.setOptions(options);
     107                this.now = {};
    72108        },
    73109
    74         toggle: function() {
    75                 if (this.el.offsetHeight > 0) this.custom(this.el.offsetHeight, 0);
    76                 else this.custom(0, this.el.scrollHeight);
     110        setNow: function(){
     111                for (p in this.from) this.now[p] = this.compute(this.from[p], this.to[p]);
     112        },
     113
     114        custom: function(obj){
     115                if (this.timer && this.options.wait) return;
     116                var from = {};
     117                var to = {};
     118                for (p in obj){
     119                        from[p] = obj[p][0];
     120                        to[p] = obj[p][1];
     121                }
     122                return this._start(from, to);
     123        },
     124
     125        increase: function(){
     126                for (var p in this.now) this.setStyle(this.element, p, this.now[p]);
    77127        }
     128
    78129});
    79130
    80 fx.Width = Class.create();
    81 Object.extend(Object.extend(fx.Width.prototype, fx.Layout.prototype), {
    82         increase: function() {
    83                 this.el.style.width = this.now + "px";
    84         },
     131//Transitions (c) 2003 Robert Penner (http://www.robertpenner.com/easing/), BSD License.
    85132
    86         toggle: function(){
    87                 if (this.el.offsetWidth > 0) this.custom(this.el.offsetWidth, 0);
    88                 else this.custom(0, this.iniWidth);
    89         }
    90 });
    91 
    92 //fader
    93 fx.Opacity = Class.create();
    94 fx.Opacity.prototype = Object.extend(new fx.Base(), {
    95         initialize: function(el, options) {
    96                 this.el = $(el);
    97                 this.now = 1;
    98                 this.increase();
    99                 this.setOptions(options);
    100         },
    101 
    102         increase: function() {
    103                 if (this.now == 1 && (/Firefox/.test(navigator.userAgent))) this.now = 0.9999;
    104                 this.setOpacity(this.now);
    105         },
    106        
    107         setOpacity: function(opacity) {
    108                 if (opacity == 0 && this.el.style.visibility != "hidden") this.el.style.visibility = "hidden";
    109                 else if (this.el.style.visibility != "visible") this.el.style.visibility = "visible";
    110                 if (window.ActiveXObject) this.el.style.filter = "alpha(opacity=" + opacity*100 + ")";
    111                 this.el.style.opacity = opacity;
    112         },
    113 
    114         toggle: function() {
    115                 if (this.now > 0) this.custom(1, 0);
    116                 else this.custom(0, 1);
    117         }
    118 });
    119 
    120 //transitions
    121 fx.sinoidal = function(pos){
    122         return ((-Math.cos(pos*Math.PI)/2) + 0.5);
    123         //this transition is from script.aculo.us
    124 }
    125 fx.linear = function(pos){
    126         return pos;
    127 }
    128 fx.cubic = function(pos){
    129         return Math.pow(pos, 3);
    130 }
    131 fx.circ = function(pos){
    132         return Math.sqrt(pos);
    133 }
     133Fx.Transitions = {
     134        linear: function(t, b, c, d) { return c*t/d + b; },
     135        sineInOut: function(t, b, c, d) { return -c/2 * (Math.cos(Math.PI*t/d) - 1) + b; }
     136};
  • _plugins_/_dev_/smoothslideshow/scripts/moo.fx.pack.js

    r4954 r9363  
    1 /*
    2 moo.fx pack, effects extensions for moo.fx.
    3 by Valerio Proietti (http://mad4milk.net) MIT-style LICENSE
    4 for more info visit (http://moofx.mad4milk.net).
    5 Friday, April 14, 2006
    6 v 1.2.4
    7 */
     1//by Valerio Proietti (http://mad4milk.net). MIT-style license.
     2//moo.fx.pack.js - depends on prototype.js or prototype.lite.js + moo.fx.js
     3//version 2.0
    84
    9 //smooth scroll
    10 fx.Scroll = Class.create();
    11 fx.Scroll.prototype = Object.extend(new fx.Base(), {
    12         initialize: function(options) {
     5Fx.Scroll = Class.create();
     6Fx.Scroll.prototype = Object.extend(new Fx.Base(), {
     7
     8        initialize: function(el, options) {
     9                this.element = $(el);
    1310                this.setOptions(options);
     11                this.element.style.overflow = 'hidden';
    1412        },
    15 
    16         scrollTo: function(el){
    17                 var dest = Position.cumulativeOffset($(el))[1];
    18                 var client = window.innerHeight || document.documentElement.clientHeight;
    19                 var full = document.documentElement.scrollHeight;
    20                 var top = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
    21                 if (dest+client > full) this.custom(top, dest - client + (full-dest));
    22                 else this.custom(top, dest);
     13       
     14        down: function(){
     15                return this.custom(this.element.scrollTop, this.element.scrollHeight-this.element.offsetHeight);
     16        },
     17       
     18        up: function(){
     19                return this.custom(this.element.scrollTop, 0);
    2320        },
    2421
    2522        increase: function(){
    26                 window.scrollTo(0, this.now);
     23                this.element.scrollTop = this.now;
    2724        }
     25
    2826});
    2927
    30 //text size modify, now works with pixels too.
    31 fx.Text = Class.create();
    32 fx.Text.prototype = Object.extend(new fx.Base(), {
    33         initialize: function(el, options) {
    34                 this.el = $(el);
     28//fx.Color, originally by Tom Jensen (http://neuemusic.com) MIT-style LICENSE.
     29
     30Fx.Color = Class.create();
     31Fx.Color.prototype = Object.extend(new Fx.Base(), {
     32       
     33        initialize: function(el, property, options){
     34                this.element = $(el);
    3535                this.setOptions(options);
    36                 if (!this.options.unit) this.options.unit = "em";
     36                this.property = property.camelize();
     37                this.now = [];
    3738        },
    3839
    39         increase: function() {
    40                 this.el.style.fontSize = this.now + this.options.unit;
    41         }
    42 });
    43 
    44 //composition effect: widht/height/opacity
    45 fx.Combo = Class.create();
    46 fx.Combo.prototype = {
    47         setOptions: function(options) {
    48                 this.options = {
    49                         opacity: true,
    50                         height: true,
    51                         width: false
    52                 }
    53                 Object.extend(this.options, options || {});
     40        custom: function(from, to){
     41                return this._start(from.hexToRgb(true), to.hexToRgb(true));
    5442        },
    5543
    56         initialize: function(el, options) {
    57                 this.el = $(el);
    58                 this.setOptions(options);
    59                 if (this.options.opacity) {
    60                         this.o = new fx.Opacity(el, options);
    61                         this.o.options.onComplete = null;
    62                 }
    63                 if (this.options.height) {
    64                         this.h = new fx.Height(el, options);
    65                         this.h.options.onComplete = null;
    66                 }
    67                 if (this.options.width) this.w = new fx.Width(el, options);
    68         },
    69        
    70         toggle: function() { this.checkExec('toggle'); },
    71 
    72         hide: function(){ this.checkExec('hide'); },
    73        
    74         clearTimer: function(){ this.checkExec('clearTimer'); },
    75        
    76         checkExec: function(func){
    77                 if (this.o) this.o[func]();
    78                 if (this.h) this.h[func]();
    79                 if (this.w) this.w[func]();
    80         },
    81        
    82         //only if width+height
    83         resizeTo: function(hto, wto) {
    84                 if (this.h && this.w) {
    85                         this.h.custom(this.el.offsetHeight, this.el.offsetHeight + hto);
    86                         this.w.custom(this.el.offsetWidth, this.el.offsetWidth + wto);
    87                 }
    88         },
    89 
    90         customSize: function(hto, wto) {
    91                 if (this.h && this.w) {
    92                         this.h.custom(this.el.offsetHeight, hto);
    93                         this.w.custom(this.el.offsetWidth, wto);
    94                 }
    95         }
    96 }
    97 
    98 fx.Accordion = Class.create();
    99 fx.Accordion.prototype = {
    100         setOptions: function(options) {
    101                 this.options = {
    102                         delay: 100,
    103                         opacity: false
    104                 }
    105                 Object.extend(this.options, options || {});
    106         },
    107 
    108         initialize: function(togglers, elements, options) {
    109                 this.elements = elements;
    110                 this.setOptions(options);
    111                 var options = options || '';
    112                 this.fxa = [];
    113                 if (options && options.onComplete) options.onFinish = options.onComplete;
    114                 elements.each(function(el, i){
    115                         options.onComplete = function(){
    116                                 if (el.offsetHeight > 0) el.style.height = '1%';
    117                                 if (options.onFinish) options.onFinish(el);
    118                         }
    119                         this.fxa[i] = new fx.Combo(el, options);
    120                         this.fxa[i].hide();
    121                 }.bind(this));
    122 
    123                 togglers.each(function(tog, i){
    124                         if (typeof tog.onclick == 'function') var exClick = tog.onclick;
    125                         tog.onclick = function(){
    126                                 if (exClick) exClick();
    127                                 this.showThisHideOpen(elements[i]);
    128                         }.bind(this);
     44        setNow: function(){
     45                [0,1,2].each(function(i){
     46                        this.now[i] = Math.round(this.compute(this.from[i], this.to[i]));
    12947                }.bind(this));
    13048        },
    13149
    132         showThisHideOpen: function(toShow){
    133                 this.elements.each(function(el, j){
    134                         if (el.offsetHeight > 0 && el != toShow) this.clearAndToggle(el, j);
    135                         if (el == toShow && toShow.offsetHeight == 0) setTimeout(function(){this.clearAndToggle(toShow, j);}.bind(this), this.options.delay);
    136                 }.bind(this));
     50        increase: function(){
     51                this.element.style[this.property] = "rgb("+this.now[0]+","+this.now[1]+","+this.now[2]+")";
     52        }
     53
     54});
     55
     56Object.extend(String.prototype, {
     57
     58        rgbToHex: function(array){
     59                var rgb = this.match(new RegExp('([\\d]{1,3})', 'g'));
     60                if (rgb[3] == 0) return 'transparent';
     61                var hex = [];
     62                for (var i = 0; i < 3; i++){
     63                        var bit = (rgb[i]-0).toString(16);
     64                        hex.push(bit.length == 1 ? '0'+bit : bit);
     65                }
     66                var hexText = '#'+hex.join('');
     67                if (array) return hex;
     68                else return hexText;
    13769        },
    13870
    139         clearAndToggle: function(el, i){
    140                 this.fxa[i].clearTimer();
    141                 this.fxa[i].toggle();
    142         }
    143 }
     71        hexToRgb: function(array){
     72                var hex = this.match(new RegExp('^[#]{0,1}([\\w]{1,2})([\\w]{1,2})([\\w]{1,2})$'));
     73                var rgb = [];
     74                for (var i = 1; i < hex.length; i++){
     75                        if (hex[i].length == 1) hex[i] += hex[i];
     76                        rgb.push(parseInt(hex[i], 16));
     77                }
     78                var rgbText = 'rgb('+rgb.join(',')+')';
     79                if (array) return rgb;
     80                else return rgbText;
     81        }       
    14482
    145 var Remember = new Object();
    146 Remember = function(){};
    147 Remember.prototype = {
    148         initialize: function(el, options){
    149                 this.el = $(el);
    150                 this.days = 365;
    151                 this.options = options;
    152                 this.effect();
    153                 var cookie = this.readCookie();
    154                 if (cookie) {
    155                         this.fx.now = cookie;
    156                         this.fx.increase();
    157                 }
    158         },
    159 
    160         //cookie functions based on code by Peter-Paul Koch
    161         setCookie: function(value) {
    162                 var date = new Date();
    163                 date.setTime(date.getTime()+(this.days*24*60*60*1000));
    164                 var expires = "; expires="+date.toGMTString();
    165                 document.cookie = this.el+this.el.id+this.prefix+"="+value+expires+"; path=/";
    166         },
    167 
    168         readCookie: function() {
    169                 var nameEQ = this.el+this.el.id+this.prefix + "=";
    170                 var ca = document.cookie.split(';');
    171                 for(var i=0;c=ca[i];i++) {
    172                         while (c.charAt(0)==' ') c = c.substring(1,c.length);
    173                         if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    174                 }
    175                 return false;
    176         },
    177 
    178         custom: function(from, to){
    179                 if (this.fx.now != to) {
    180                         this.setCookie(to);
    181                         this.fx.custom(from, to);
    182                 }
    183         }
    184 }
    185 
    186 fx.RememberHeight = Class.create();
    187 fx.RememberHeight.prototype = Object.extend(new Remember(), {
    188         effect: function(){
    189                 this.fx = new fx.Height(this.el, this.options);
    190                 this.prefix = 'height';
    191         },
    192        
    193         toggle: function(){
    194                 if (this.el.offsetHeight == 0) this.setCookie(this.el.scrollHeight);
    195                 else this.setCookie(0);
    196                 this.fx.toggle();
    197         },
    198        
    199         resize: function(to){
    200                 this.setCookie(this.el.offsetHeight+to);
    201                 this.fx.custom(this.el.offsetHeight,this.el.offsetHeight+to);
    202         },
    203 
    204         hide: function(){
    205                 if (!this.readCookie()) {
    206                         this.fx.hide();
    207                 }
    208         }
    20983});
    210 
    211 fx.RememberText = Class.create();
    212 fx.RememberText.prototype = Object.extend(new Remember(), {
    213         effect: function(){
    214                 this.fx = new fx.Text(this.el, this.options);
    215                 this.prefix = 'text';
    216         }
    217 });
    218 
    219 //useful for-replacement
    220 Array.prototype.iterate = function(func){
    221         for(var i=0;i<this.length;i++) func(this[i], i);
    222 }
    223 if (!Array.prototype.each) Array.prototype.each = Array.prototype.iterate;
    224 
    225 //Easing Equations (c) 2003 Robert Penner, all rights reserved.
    226 //This work is subject to the terms in http://www.robertpenner.com/easing_terms_of_use.html.
    227 
    228 //expo
    229 fx.expoIn = function(pos){
    230         return Math.pow(2, 10 * (pos - 1));
    231 }
    232 fx.expoOut = function(pos){
    233         return (-Math.pow(2, -10 * pos) + 1);
    234 }
    235 
    236 //quad
    237 fx.quadIn = function(pos){
    238         return Math.pow(pos, 2);
    239 }
    240 fx.quadOut = function(pos){
    241         return -(pos)*(pos-2);
    242 }
    243 
    244 //circ
    245 fx.circOut = function(pos){
    246         return Math.sqrt(1 - Math.pow(pos-1,2));
    247 }
    248 fx.circIn = function(pos){
    249         return -(Math.sqrt(1 - Math.pow(pos, 2)) - 1);
    250 }
    251 
    252 //back
    253 fx.backIn = function(pos){
    254         return (pos)*pos*((2.7)*pos - 1.7);
    255 }
    256 fx.backOut = function(pos){
    257         return ((pos-1)*(pos-1)*((2.7)*(pos-1) + 1.7) + 1);
    258 }
    259 
    260 //sine
    261 fx.sineOut = function(pos){
    262         return Math.sin(pos * (Math.PI/2));
    263 }
    264 fx.sineIn = function(pos){
    265         return -Math.cos(pos * (Math.PI/2)) + 1;
    266 }
    267 fx.sineInOut = function(pos){
    268         return -(Math.cos(Math.PI*pos) - 1)/2;
    269 }
  • _plugins_/_dev_/smoothslideshow/scripts/prototype.lite.js

    r4954 r9363  
    1 /*  Prototype JavaScript framework
     1/*  Prototype JavaScript framework, version 1.4.0
    22 *  (c) 2005 Sam Stephenson <sam@conio.net>
     3 *
    34 *  Prototype is freely distributable under the terms of an MIT-style license.
    45 *  For details, see the Prototype web site: http://prototype.conio.net/
     6 *
    57/*--------------------------------------------------------------------------*/
    68
    7 //note: modified & stripped down version of prototype, to be used with moo.fx by mad4milk (http://moofx.mad4milk.net).
     9//note: stripped down version of prototype, to be used with moo.fx by mad4milk (http://moofx.mad4milk.net).
    810
    911var Class = {
     
    1315                }
    1416        }
    15 }
     17};
    1618
    1719Object.extend = function(destination, source) {
    18         for (property in source) destination[property] = source[property];
     20        for (var property in source) destination[property] = source[property];
    1921        return destination;
    20 }
     22};
    2123
    2224Function.prototype.bind = function(object) {
     
    2527                return __method.apply(object, arguments);
    2628        }
     29};
     30
     31if (!Array.prototype.forEach){
     32        Array.prototype.forEach = function(fn, bind){
     33                for(var i = 0; i < this.length ; i++) fn.call(bind, this[i], i);
     34        };
    2735}
    2836
    29 Function.prototype.bindAsEventListener = function(object) {
    30 var __method = this;
    31         return function(event) {
    32                 __method.call(object, event || window.event);
    33         }
    34 }
     37Array.prototype.each = Array.prototype.forEach;
     38
     39String.prototype.camelize = function(){
     40        return this.replace(/-\D/gi, function(match){
     41                return match.charAt(match.length - 1).toUpperCase();
     42        });
     43};
     44
     45var $A = function(iterable) {
     46        var nArray = [];
     47        for (var i = 0; i < iterable.length; i++) nArray.push(iterable[i]);
     48        return nArray;
     49};
    3550
    3651function $() {
     
    4661                return el;
    4762        }
    48 }
     63};
    4964
    50 if (!window.Element) var Element = new Object();
     65if (!window.Element) var Element = {};
    5166
    5267Object.extend(Element, {
     68
    5369        remove: function(element) {
    5470                element = $(element);
     
    5874        hasClassName: function(element, className) {
    5975                element = $(element);
    60                 if (!element) return;
    61                 var hasClass = false;
    62                 element.className.split(' ').each(function(cn){
    63                         if (cn == className) hasClass = true;
    64                 });
    65                 return hasClass;
     76                return !!element.className.match(new RegExp("\\b"+className+"\\b"));
    6677        },
    6778
    6879        addClassName: function(element, className) {
    6980                element = $(element);
    70                 Element.removeClassName(element, className);
    71                 element.className += ' ' + className;
     81                if (!Element.hasClassName(element, className)) element.className = (element.className+' '+className);
    7282        },
    73  
     83
    7484        removeClassName: function(element, className) {
    7585                element = $(element);
    76                 if (!element) return;
    77                 var newClassName = '';
    78                 element.className.split(' ').each(function(cn, i){
    79                         if (cn != className){
    80                                 if (i > 0) newClassName += ' ';
    81                                 newClassName += cn;
    82                         }
    83                 });
    84                 element.className = newClassName;
    85         },
     86                if (Element.hasClassName(element, className)) element.className = element.className.replace(className, '');
     87        }
    8688
    87         cleanWhitespace: function(element) {
    88                 element = $(element);
    89                 $c(element.childNodes).each(function(node){
    90                         if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) Element.remove(node);
    91                 });
    92         },
    93 
    94         find: function(element, what) {
    95                 element = $(element)[what];
    96                 while (element.nodeType != 1) element = element[what];
    97                 return element;
    98         }
    9989});
    10090
    101 var Position = {
    102         cumulativeOffset: function(element) {
    103                 var valueT = 0, valueL = 0;
    104                 do {
    105                         valueT += element.offsetTop  || 0;
    106                         valueL += element.offsetLeft || 0;
    107                         element = element.offsetParent;
    108                 } while (element);
    109                 return [valueL, valueT];
    110         }
     91document.getElementsByClassName = function(className){
     92        var elements = [];
     93        var all = document.getElementsByTagName('*');
     94        $A(all).each(function(el){
     95                if (Element.hasClassName(el, className)) elements.push(el);
     96        });
     97        return elements;
    11198};
    112 
    113 document.getElementsByClassName = function(className) {
    114         var children = document.getElementsByTagName('*') || document.all;
    115         var elements = [];
    116         $c(children).each(function(child){
    117                 if (Element.hasClassName(child, className)) elements.push(child);
    118         }); 
    119         return elements;
    120 }
    121 
    122 //useful array functions
    123 Array.prototype.iterate = function(func){
    124         for(var i=0;i<this.length;i++) func(this[i], i);
    125 }
    126 if (!Array.prototype.each) Array.prototype.each = Array.prototype.iterate;
    127 
    128 function $c(array){
    129         var nArray = [];
    130         for (var i=0;i<array.length;i++) nArray.push(array[i]);
    131         return nArray;
    132 }
  • _plugins_/_dev_/smoothslideshow/scripts/showcase.slideshow.js

    r4954 r9363  
    1 var currentIter = 0;
    2 var lastIter = 0;
    3 var maxIter = 0;
    4 var slideShowElement = "";
    5 var slideShowData = new Array();
    6 var slideShowInit = 1;
    7 
    8 function initSlideShow(element, data) {
    9         slideShowElement = element;
    10         slideShowData = data;
    11         element.style.display="block";
    12         maxIter = data.length;
    13         for(i=0;i<data.length;i++)
    14         {
    15                 var currentImg = document.createElement('img');
    16                 currentImg.setAttribute('id','slideElement' + parseInt(i));
    17                 currentImg.style.position="absolute";
    18                 currentImg.style.left="0px";
    19                 currentImg.style.bottom="0px";
    20                 currentImg.style.margin="0px";
    21                 currentImg.src=data[i][0];
     1/*
     2        This file is part of JonDesign's SmoothSlideshow v2.1.
     3
     4        JonDesign's SmoothSlideshow is free software; you can redistribute it and/or modify
     5        it under the terms of the GNU General Public License as published by
     6        the Free Software Foundation; either version 2 of the License, or
     7        (at your option) any later version.
     8
     9        JonDesign's SmoothSlideshow is distributed in the hope that it will be useful,
     10        but WITHOUT ANY WARRANTY; without even the implied warranty of
     11        MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12        GNU General Public License for more details.
     13
     14        You should have received a copy of the GNU General Public License
     15        along with Foobar; if not, write to the Free Software
     16        Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
     17
     18        Main Developer: Jonathan Schemoul (JonDesign: http://www.jondesign.net/)
     19        Contributed code by:
     20    - Christian Ehret (bugfix)
     21    - Simon Willison (addLoadEvent)
     22    - Nitrix (Bugfix: added a .bind(this);)
     23*/
     24
     25// declaring the class
     26var showcaseSlideShow = Class.create();
     27
     28// implementing the class
     29showcaseSlideShow.prototype = {
     30        initialize: function(element, data) {
     31                this.currentIter = 0;
     32                this.lastIter = 0;
     33                this.maxIter = 0;
     34                this.slideShowElement = element;
     35                this.slideShowData = data;
     36                this.slideShowInit = 1;
     37                this.slideElements = Array();
     38
     39                element.style.display="block";
     40
     41                this.maxIter = data.length;
     42                for(i=0;i<data.length;i++)
     43                {
     44                        var currentImg = document.createElement('div');
     45                        currentImg.className = "slideElement";
     46                        currentImg.style.position="absolute";
     47                        currentImg.style.left="0px";
     48                        currentImg.style.top="0px";
     49                        currentImg.style.margin="0px";
     50                        currentImg.style.border="0px";
     51                        currentImg.style.backgroundImage="url('" + data[i][0] + "')";
     52                        currentImg.style.backgroundPosition="center center";
     53
     54                        element.appendChild(currentImg);
     55                        currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 500});
     56                        currentImg.currentOpacity.set(0);
     57                        this.slideElements[parseInt(i)] = currentImg;
     58                }
     59                if (data.length>1)
     60                {
     61                        var leftArrow = document.createElement('a');
     62                        leftArrow.className = 'left';
     63                        leftArrow.onclick = this.pushPrevSlideShow.bind(this);
     64                        element.appendChild(leftArrow);
     65
     66                        var rightArrow = document.createElement('a');
     67                        rightArrow.className = 'right';
     68                        rightArrow.onclick = this.pushNextSlideShow.bind(this);
     69                        element.appendChild(rightArrow);
     70                }
     71                currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 400});
     72                currentImg.currentOpacity.set(0);
    2273               
    23                 element.appendChild(currentImg);
    24                 currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 400});
    25                 currentImg.currentOpacity.setOpacity(0);
     74                this.loadingElement = document.createElement('div');
     75                this.loadingElement.className = 'loadingElement';
     76                element.appendChild(this.loadingElement);
     77
     78                this.slideInfoZone = document.createElement('div');
     79                this.slideInfoZone.className = 'slideInfoZone';
     80                element.appendChild(this.slideInfoZone);
     81                this.slideInfoZone.style.opacity = 0;
     82
     83                this.doSlideShow(1);
     84        },
     85        destroySlideShow: function(element) {
     86                var myClassName = element.className;
     87                var newElement = document.createElement('div');
     88                newElement.className = myClassName;
     89                element.parentNode.replaceChild(newElement, element);
     90        },
     91        pushNextSlideShow: function() {
     92                setTimeout(this.hideInfoSlideShow.bind(this),10);
     93                setTimeout(this.nextSlideShow.bind(this),500);
     94        },
     95        pushPrevSlideShow: function() {
     96                setTimeout(this.hideInfoSlideShow.bind(this),10);
     97                setTimeout(this.prevSlideShow.bind(this),500);
     98        },
     99        startSlideShow: function() {
     100                this.loadingElement.style.display = "none";
     101                this.lastIter = this.maxIter - 1;
     102                this.currentIter = 0;
     103                this.slideShowInit = 0;
     104                this.slideElements[parseInt(this.currentIter)].currentOpacity.set(1);
     105                setTimeout(this.showInfoSlideShow.bind(this),1000);
     106        },
     107        nextSlideShow: function() {
     108                this.lastIter = this.currentIter;
     109                this.currentIter++;
     110                if (this.currentIter >= this.maxIter)
     111                {
     112                        this.currentIter = 0;
     113                        this.lastIter = this.maxIter - 1;
     114                }
     115                this.slideShowInit = 0;
     116                this.doSlideShow.bind(this)(1);
     117        },
     118        prevSlideShow: function() {
     119                this.lastIter = this.currentIter;
     120                this.currentIter--;
     121                if (this.currentIter <= -1)
     122                {
     123                        this.currentIter = this.maxIter - 1;
     124                        this.lastIter = 0;
     125                }
     126                this.slideShowInit = 0;
     127                this.doSlideShow.bind(this)(2);
     128        },
     129        doSlideShow: function(position) {
     130                if (this.slideShowInit == 1)
     131                {
     132                        imgPreloader = new Image();
     133                        // once image is preloaded, start slideshow
     134                        imgPreloader.onload=function(){
     135                                setTimeout(this.startSlideShow.bind(this),10);
     136                        }.bind(this);
     137                        imgPreloader.src = this.slideShowData[0][0];
     138                } else {
     139                        if (position == 1)
     140                        {
     141                                if (this.currentIter != 0) {
     142                                        this.slideElements[parseInt(this.currentIter)].currentOpacity.options.onComplete = function() {
     143                                                this.slideElements[parseInt(this.lastIter)].currentOpacity.set(0);
     144                                        }.bind(this);
     145                                        this.slideElements[parseInt(this.currentIter)].currentOpacity.custom(0, 1);
     146                                } else {
     147                                        this.slideElements[parseInt(this.currentIter)].currentOpacity.set(1);
     148                                        this.slideElements[parseInt(this.lastIter)].currentOpacity.custom(1, 0);
     149                                }
     150                        } else {
     151                                if (this.currentIter != this.maxIter - 1) {
     152                                        this.slideElements[parseInt(this.currentIter)].currentOpacity.set(1);
     153                                        this.slideElements[parseInt(this.lastIter)].currentOpacity.custom(1, 0);
     154                                } else {
     155                                        this.slideElements[parseInt(this.currentIter)].currentOpacity.options.onComplete = function() {
     156                                                this.slideElements[parseInt(this.lastIter)].currentOpacity.set(0);
     157                                        }.bind(this);
     158                                        this.slideElements[parseInt(this.currentIter)].currentOpacity.custom(0, 1);
     159                                }
     160                        }
     161                        setTimeout(this.showInfoSlideShow.bind(this),1000);
     162                }
     163        },
     164        showInfoSlideShow: function() {
     165                this.slideShowElement.removeChild(this.slideInfoZone);
     166                this.slideInfoZone = document.createElement('div');
     167                this.slideInfoZone.className = 'slideInfoZone';
     168                this.slideInfoZone.styles = new fx.Styles(this.slideInfoZone);
     169                this.slideInfoZone.style.visibility = "hidden";
     170                var slideInfoZoneTitle = document.createElement('h2');
     171                slideInfoZoneTitle.innerHTML = this.slideShowData[this.currentIter][2]
     172                this.slideInfoZone.appendChild(slideInfoZoneTitle);
     173                var slideInfoZoneDescription = document.createElement('p');
     174                slideInfoZoneDescription.innerHTML = this.slideShowData[this.currentIter][3];
     175                this.slideInfoZone.appendChild(slideInfoZoneDescription);
     176                this.slideShowElement.appendChild(this.slideInfoZone);
     177                this.slideInfoZone.normalHeight = this.slideInfoZone.offsetHeight;
     178                this.slideInfoZone.styles.custom({'opacity': [0, 0.7], 'height': [0, this.slideInfoZone.normalHeight]});
     179        },
     180        hideInfoSlideShow: function() {
     181                this.slideInfoZone.styles.custom({'opacity': [0.7, 0]});
     182                //this.slideInfoZone.styles.custom({'opacity': [0.7, 0], 'height': [this.slideInfoZone.normalHeight, 0]});
     183        },
     184        goTo: function(num) {
     185                this.currentIter = num;
     186                if (num == 0) this.lastIter = this.maxIter-1;
     187                else this.lastIter = num-1;
     188                this.slideShowInit = 0;
     189                for(i=0;i<this.maxIter;i++)
     190                {
     191                        this.slideElements[i].currentOpacity.setOpacity(0);
     192                }
     193                this.doSlideShow.bind(this)();
    26194        }
    27        
    28         var leftArrow = document.createElement('a');
    29         leftArrow.className = 'left';
    30         leftArrow.onclick = function () { pushPrevSlideShow(); };
    31         element.appendChild(leftArrow);
    32        
    33         var rightArrow = document.createElement('a');
    34         rightArrow.className = 'right';
    35         rightArrow.onclick = function () { pushNextSlideShow(); };
    36         element.appendChild(rightArrow);
    37        
    38         currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 400});
    39         currentImg.currentOpacity.setOpacity(0);
    40        
    41         var slideInfoZone = document.createElement('div');
    42         slideInfoZone.setAttribute('id','slideInfoZone');
    43         element.appendChild(slideInfoZone);
    44        
    45         doSlideShow(1);
     195};
     196
     197function initShowcaseSlideShow(element, data) {
     198        var slideshow = new showcaseSlideShow(element, data);
     199        return slideshow;
    46200}
    47201
    48 function destroySlideShow(element) {
    49         var myClassName = element.className;
    50         var newElement = document.createElement('div');
    51         newElement.className = myClassName;
    52         element.parentNode.replaceChild(newElement, element);
     202function addLoadEvent(func) {
     203        var oldonload = window.onload;
     204        if (typeof window.onload != 'function') {
     205                window.onload = func;
     206        } else {
     207                window.onload = function() {
     208                        oldonload();
     209                        func();
     210                }
     211        }
    53212}
    54 
    55 function pushNextSlideShow () {
    56         setTimeout(hideInfoSlideShow,10);
    57         setTimeout(nextSlideShow,500);
    58 }
    59 
    60 function pushPrevSlideShow () {
    61         setTimeout(hideInfoSlideShow,10);
    62         setTimeout(prevSlideShow,500);
    63 }
    64 
    65 function nextSlideShow() {
    66         lastIter = currentIter;
    67         currentIter++;
    68         if (currentIter >= maxIter)
    69         {
    70                 currentIter = 0;
    71                 lastIter = maxIter - 1;
    72         }
    73         slideShowInit = 0;
    74         doSlideShow(1);
    75 }
    76 
    77 function prevSlideShow() {
    78         lastIter = currentIter;
    79         currentIter--;
    80         if (currentIter <= -1)
    81         {
    82                 currentIter = maxIter - 1;
    83                 lastIter = 0;
    84         }
    85         slideShowInit = 0;     
    86         doSlideShow(2);
    87 }
    88 
    89 function doSlideShow(position) {
    90         //alert(currentIter);
    91         if (slideShowInit == 1)
    92         {
    93                 setTimeout(nextSlideShow,10);
    94         } else {
    95                 if (position == 1)
    96                 {
    97                         if (currentIter != 0) {
    98                                 $('slideElement' + parseInt(currentIter)).currentOpacity.options.onComplete = function() {
    99                                         $('slideElement' + parseInt(lastIter)).currentOpacity.setOpacity(0);
    100                                 }
    101                                 $('slideElement' + parseInt(currentIter)).currentOpacity.custom(0, 1);
    102                         } else {
    103                                 $('slideElement' + parseInt(currentIter)).currentOpacity.setOpacity(1);
    104                                 $('slideElement' + parseInt(lastIter)).currentOpacity.custom(1, 0);
    105                         }
    106                 } else {
    107                         if (currentIter != maxIter - 1) {
    108                                 $('slideElement' + parseInt(currentIter)).currentOpacity.setOpacity(1);
    109                                 $('slideElement' + parseInt(lastIter)).currentOpacity.custom(1, 0);
    110                         } else {
    111                                 $('slideElement' + parseInt(currentIter)).currentOpacity.options.onComplete = function() {
    112                                         $('slideElement' + parseInt(lastIter)).currentOpacity.setOpacity(0);
    113                                 }
    114                                 $('slideElement' + parseInt(currentIter)).currentOpacity.custom(0, 1); 
    115                         }
    116                 }
    117                 setTimeout(showInfoSlideShow,1000);
    118         }       
    119 }
    120 
    121 function showInfoSlideShow() {
    122         slideShowElement.removeChild($('slideInfoZone'));
    123         var slideInfoZone = document.createElement('div');
    124         slideInfoZone.setAttribute('id','slideInfoZone');
    125         slideInfoZone.combo = new fx.Combo(slideInfoZone);
    126         slideInfoZone.combo.o.setOpacity(0);
    127         var slideInfoZoneTitle = document.createElement('h2');
    128         slideInfoZoneTitle.innerHTML = slideShowData[currentIter][2]
    129         slideInfoZone.appendChild(slideInfoZoneTitle);
    130         var slideInfoZoneDescription = document.createElement('p');
    131         slideInfoZoneDescription.innerHTML = slideShowData[currentIter][3]
    132         slideInfoZone.appendChild(slideInfoZoneDescription);
    133         slideShowElement.appendChild(slideInfoZone);
    134         slideInfoZone.combo.o.custom(0, 0.7);
    135         slideInfoZone.combo.h.custom(0, slideInfoZone.combo.h.el.offsetHeight);
    136 }
    137 
    138 function hideInfoSlideShow() {
    139         $('slideInfoZone').combo.o.custom(0.7, 0);
    140         //$('slideInfoZone').combo.h.custom(slideInfoZone.combo.h.el.offsetHeight, 0);
    141 }
  • _plugins_/_dev_/smoothslideshow/scripts/timed.slideshow.js

    r4954 r9363  
    1 var currentIter = 0;
    2 var lastIter = 0;
    3 var maxIter = 0;
    4 var slideShowElement = "";
    5 var slideShowData = new Array();
    6 var slideShowInit = 1;
    7 var slideShowDelay = 9000;
    8 var articleLink = "";
     1/*
     2    This file is part of JonDesign's SmoothSlideshow v2.1.
    93
    10 function initSlideShow(element, data) {
    11         slideShowElement = element;
    12         slideShowData = data;
    13         element.style.display="block";
    14        
    15         articleLink = document.createElement('a');
    16         articleLink.className = 'global';
    17         element.appendChild(articleLink);
    18         articleLink.href = "";
    19        
    20         maxIter = data.length;
    21         for(i=0;i<data.length;i++)
    22         {
    23                 var currentImg = document.createElement('img');
    24                 currentImg.setAttribute('id','slideElement' + parseInt(i));
    25                 currentImg.style.position="absolute";
    26                 currentImg.style.left="0px";
    27                 currentImg.style.top="0px";
    28                 currentImg.style.margin="0px";
    29                 currentImg.style.border="0px";
    30                 currentImg.src=data[i][0];
    31        
    32                 articleLink.appendChild(currentImg);
    33                 currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 400});
    34                 currentImg.currentOpacity.setOpacity(0);
     4    JonDesign's SmoothSlideshow is free software; you can redistribute it and/or modify
     5    it under the terms of the GNU General Public License as published by
     6    the Free Software Foundation; either version 2 of the License, or
     7    (at your option) any later version.
     8
     9    JonDesign's SmoothSlideshow is distributed in the hope that it will be useful,
     10    but WITHOUT ANY WARRANTY; without even the implied warranty of
     11    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     12    GNU General Public License for more details.
     13
     14    You should have received a copy of the GNU General Public License
     15    along with Foobar; if not, write to the Free Software
     16    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
     17
     18    Main Developer: Jonathan Schemoul (JonDesign: http://www.jondesign.net/)
     19    Contributed code by:
     20    - Christian Ehret (bugfix)
     21    - Simon Willison (addLoadEvent)
     22*/
     23
     24// declaring the class
     25var timedSlideShow = Class.create();
     26
     27// implementing the class
     28timedSlideShow.prototype = {
     29        initialize: function(element, data) {
     30                this.currentIter = 0;
     31                this.lastIter = 0;
     32                this.maxIter = 0;
     33                this.slideShowElement = element;
     34                this.slideShowData = data;
     35                this.slideShowInit = 1;
     36                this.slideElements = Array();
     37                this.slideShowDelay = 9000;
     38                this.articleLink = "";
     39                this.slideInfoZone = "";
     40
     41                element.style.display="block";
     42
     43                this.articleLink = document.createElement('a');
     44                this.articleLink.className = 'global';
     45                element.appendChild(this.articleLink);
     46                this.articleLink.href = "";
     47
     48                this.maxIter = data.length;
     49                for(i=0;i<data.length;i++)
     50                {
     51                        var currentImg = document.createElement('div');
     52                        currentImg.className = "slideElement";
     53                        currentImg.style.position="absolute";
     54                        currentImg.style.left="0px";
     55                        currentImg.style.top="0px";
     56                        currentImg.style.margin="0px";
     57                        currentImg.style.border="0px";
     58                        currentImg.style.backgroundImage="url('" + data[i][0] + "')";
     59                        currentImg.style.backgroundPosition="center center";
     60
     61                        this.articleLink.appendChild(currentImg);
     62                        currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 400});
     63                        currentImg.currentOpacity.set(0);
     64                        this.slideElements[parseInt(i)] = currentImg;
     65                }
     66               
     67                this.loadingElement = document.createElement('div');
     68                this.loadingElement.className = 'loadingElement';
     69                this.articleLink.appendChild(this.loadingElement);
     70               
     71                this.slideInfoZone = document.createElement('div');
     72                this.slideInfoZone.className = 'slideInfoZone';
     73                this.articleLink.appendChild(this.slideInfoZone);
     74                this.slideInfoZone.style.opacity = 0;
     75
     76                this.doSlideShow();
     77        },
     78        destroySlideShow: function(element) {
     79                var myClassName = element.className;
     80                var newElement = document.createElement('div');
     81                newElement.className = myClassName;
     82                element.parentNode.replaceChild(newElement, element);
     83        },
     84        startSlideShow: function() {
     85                this.loadingElement.style.display = "none";
     86                this.lastIter = this.maxIter - 1;
     87                this.currentIter = 0;
     88                this.slideShowInit = 0;
     89                this.slideElements[parseInt(this.currentIter)].currentOpacity.set(1);
     90                setTimeout(this.showInfoSlideShow.bind(this),1000);
     91                setTimeout(this.hideInfoSlideShow.bind(this),this.slideShowDelay-1000);
     92                setTimeout(this.nextSlideShow.bind(this),this.slideShowDelay);
     93        },
     94        nextSlideShow: function() {
     95                this.lastIter = this.currentIter;
     96                this.currentIter++;
     97                if (this.currentIter >= this.maxIter)
     98                {
     99                        this.currentIter = 0;
     100                        this.lastIter = this.maxIter - 1;
     101                }
     102                this.slideShowInit = 0;
     103                this.doSlideShow.bind(this)();
     104        },
     105        doSlideShow: function() {
     106                if (this.slideShowInit == 1)
     107                {
     108                        imgPreloader = new Image();
     109                        // once image is preloaded, start slideshow
     110                        imgPreloader.onload=function(){
     111                                setTimeout(this.startSlideShow.bind(this),10);
     112                        }.bind(this);
     113                        imgPreloader.src = this.slideShowData[0][0];
     114                } else {
     115                        if (this.currentIter != 0) {
     116                                this.slideElements[parseInt(this.currentIter)].currentOpacity.options.onComplete = function() {
     117                                        this.slideElements[parseInt(this.lastIter)].currentOpacity.set(0);
     118                                }.bind(this);
     119                                this.slideElements[parseInt(this.currentIter)].currentOpacity.custom(0, 1);
     120                        } else {
     121                                this.slideElements[parseInt(this.currentIter)].currentOpacity.set(1);
     122                                this.slideElements[parseInt(this.lastIter)].currentOpacity.custom(1, 0);
     123                        }
     124                        setTimeout(this.showInfoSlideShow.bind(this),1000);
     125                        setTimeout(this.hideInfoSlideShow.bind(this),this.slideShowDelay-1000);
     126                        setTimeout(this.nextSlideShow.bind(this),this.slideShowDelay);
     127                }
     128        },
     129        showInfoSlideShow: function() {
     130                this.articleLink.removeChild(this.slideInfoZone);
     131                this.slideInfoZone = document.createElement('div');
     132                this.slideInfoZone.styles = new fx.Styles(this.slideInfoZone);
     133                this.slideInfoZone.style.visibility = "hidden";
     134                var slideInfoZoneTitle = document.createElement('h2');
     135                slideInfoZoneTitle.innerHTML = this.slideShowData[this.currentIter][2]
     136                this.slideInfoZone.appendChild(slideInfoZoneTitle);
     137                var slideInfoZoneDescription = document.createElement('p');
     138                slideInfoZoneDescription.innerHTML = this.slideShowData[this.currentIter][3];
     139                this.slideInfoZone.appendChild(slideInfoZoneDescription);
     140                this.articleLink.appendChild(this.slideInfoZone);
     141                this.articleLink.href = this.slideShowData[this.currentIter][1];
     142                this.slideInfoZone.className = 'slideInfoZone';
     143                this.slideInfoZone.normalHeight = this.slideInfoZone.offsetHeight;
     144                this.slideInfoZone.styles.custom({'opacity': [0, 0.7], 'height': [0, this.slideInfoZone.normalHeight]});
     145        },
     146        hideInfoSlideShow: function() {
     147                this.slideInfoZone.styles.custom({'opacity': [0.7, 0]});
    35148        }
    36        
    37         currentImg.currentOpacity = new fx.Opacity(currentImg, {duration: 400});
    38         currentImg.currentOpacity.setOpacity(0);
    39        
    40         var slideInfoZone = document.createElement('div');
    41         slideInfoZone.setAttribute('id','slideInfoZone');
    42         slideInfoZone.combo = new fx.Combo(slideInfoZone);
    43         slideInfoZone.combo.o.setOpacity(0);
    44         articleLink.appendChild(slideInfoZone);
    45        
    46         doSlideShow();
     149};
     150
     151function initTimedSlideShow(element, data) {
     152        var slideshow = new timedSlideShow(element, data);
    47153}
    48154
    49 function nextSlideShow() {
    50         //soundManager.play('select');
    51         lastIter = currentIter;
    52         currentIter++;
    53         if (currentIter >= maxIter)
    54         {
    55                 currentIter = 0;
    56                 lastIter = maxIter - 1;
     155function addLoadEvent(func) {
     156        var oldonload = window.onload;
     157        if (typeof window.onload != 'function') {
     158                window.onload = func;
     159        } else {
     160                window.onload = function() {
     161                        oldonload();
     162                        func();
     163                }
    57164        }
    58         doSlideShow();
    59         slideShowInit = 0;
    60165}
    61 
    62 function doSlideShow() {
    63         //alert(currentIter);
    64         if (slideShowInit == 1)
    65         {
    66                 setTimeout(nextSlideShow,10);
    67         } else {
    68                 if (currentIter != 0) {
    69                         $('slideElement' + parseInt(currentIter)).currentOpacity.options.onComplete = function() {
    70                                 $('slideElement' + parseInt(lastIter)).currentOpacity.setOpacity(0);
    71                         }
    72                         $('slideElement' + parseInt(currentIter)).currentOpacity.custom(0, 1);
    73                 } else {
    74                         $('slideElement' + parseInt(currentIter)).currentOpacity.setOpacity(1);
    75                         $('slideElement' + parseInt(lastIter)).currentOpacity.custom(1, 0);
    76                 }
    77                 setTimeout(showInfoSlideShow,1000);
    78                 setTimeout(hideInfoSlideShow,slideShowDelay-1000);
    79                 setTimeout(nextSlideShow,slideShowDelay);
    80         }       
    81 }
    82 
    83 function showInfoSlideShow() {
    84         articleLink.removeChild($('slideInfoZone'));
    85         var slideInfoZone = document.createElement('div');
    86         slideInfoZone.setAttribute('id','slideInfoZone');
    87         slideInfoZone.combo = new fx.Combo(slideInfoZone);
    88         slideInfoZone.combo.o.setOpacity(0);
    89         var slideInfoZoneTitle = document.createElement('h2');
    90         slideInfoZoneTitle.innerHTML = slideShowData[currentIter][2]
    91         slideInfoZone.appendChild(slideInfoZoneTitle);
    92         var slideInfoZoneDescription = document.createElement('p');
    93         slideInfoZoneDescription.innerHTML = slideShowData[currentIter][3]
    94         slideInfoZone.appendChild(slideInfoZoneDescription);
    95         articleLink.appendChild(slideInfoZone);
    96        
    97         articleLink.href = slideShowData[currentIter][1];
    98        
    99         slideInfoZone.combo.o.custom(0, 0.7);
    100         slideInfoZone.combo.h.custom(0, slideInfoZone.combo.h.el.offsetHeight);
    101 }
    102 
    103 function hideInfoSlideShow() {
    104         $('slideInfoZone').combo.o.custom(0.7, 0);
    105         //$('slideInfoZone').combo.h.custom(slideInfoZone.combo.h.el.offsetHeight, 0);
    106 }
  • _plugins_/_dev_/smoothslideshow/smooth_fonctions.php

    r5021 r9363  
    11<?php
    22
    3 function balise_SMOOTH($p) {
    4        
    5        
    6 $p->code = "'SMOOTH'";
    7 
    8        
    9 return $p;
     3if (!defined('_DIR_PLUGIN_SMOOTH')){ // defini automatiquement par SPIP 1.9.2
     4        $p=explode(basename(_DIR_PLUGINS)."/",str_replace('\\','/',realpath(dirname(__FILE__))));
     5        define('_DIR_PLUGIN_SMOOTH',(_DIR_PLUGINS.end($p)."/"));
    106}
    117
     8function smooth_insert_head($flux) {
     9        $flux .= '<script src="'._DIR_PLUGIN_SMOOTH.'scripts/prototype.lite.js" type="text/javascript"></script>';
     10        $flux .= '<script src="'._DIR_PLUGIN_SMOOTH.'scripts/moo.fx.js" type="text/javascript"></script>';
     11        $flux .= '<script src="'._DIR_PLUGIN_SMOOTH.'scripts/moo.fx.pack.js" type="text/javascript"></script>';
     12        $flux .= '<script src="'._DIR_PLUGIN_SMOOTH.'scripts/moo.fx.utils.js" type="text/javascript"></script>';
     13        $flux .= '<script src="'._DIR_PLUGIN_SMOOTH.'scripts/timed.slideshow.js" type="text/javascript"></script>';
     14        $flux .= '<link rel="stylesheet" href="'._DIR_PLUGIN_SMOOTH.'css/jd.slideshow.css" type="text/css" media="screen" />';
     15        return $flux;
     16}
    1217
    1318?>
Note: See TracChangeset for help on using the changeset viewer.