Changeset 122957 in spip-zone for _squelettes_/parallelism4spip/branches


Ignore:
Timestamp:
Mar 11, 2020, 4:56:27 PM (3 months ago)
Author:
bruno@…
Message:

version 0.5.5 : bugfix sur la modale utilisée par le squelette

Le bug était qu'après avoir affiché une image au format protrait, si l'image suivante était en paysage la box gardait la largeur de k'image précédente. On se retrouvait don avec une image tout petite à l'écran, pas terrible pour une box qui permet d'agrandir.

Pour corriger ça, on importe la version presque à jour utilisée actuellement sur le site de démo (celle-ci est minifiée, ça ne fera pas de mal pour les perfs).

Le trunk ne profitera pas de ce correctif, puisqu'il semble totalement différent et qu'il n'a jamais été disctibuer en zip.

Et hop, wala pour la patate chaude de Jean Marie :p

Location:
_squelettes_/parallelism4spip/branches/v1
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • _squelettes_/parallelism4spip/branches/v1/js/jquery.poptrox.js

    r104243 r122957  
    1 /* jquery.poptrox.js v2.3.3 | (c) n33 | n33.co | MIT licensed */
    2 
    3 (function($) {
    4 
    5         // Disables selection
    6                 $.fn.poptrox_disableSelection = function() { return $(this).css('user-select', 'none').css('-khtml-user-select', 'none').css('-moz-user-select', 'none').css('-o-user-select', 'none').css('-webkit-user-select', 'none'); }
    7 
    8         // Poptrox prototype method
    9                 $.fn.poptrox = function(options) {
    10 
    11                         // Handle multiple elements
    12                                 if (this.length > 1) {
    13                                
    14                                         for (var i=0; i < this.length; i++)
    15                                                 $(this[i]).poptrox(options);
    16                                        
    17                                         return $(this);
    18                                
    19                                 }
    20 
    21                         // Settings
    22                                 var settings = $.extend({
    23 
    24                                         preload:                                                false,                                          // If true, preload fullsize images in the background
    25                                         baseZIndex:                                             1000,                                           // Base Z-Index
    26                                         fadeSpeed:                                              300,                                            // Global fade speed
    27                                         overlayColor:                                   '#000000',                                      // Overlay color
    28                                         overlayOpacity:                                 0.6,                                            // Overlay opacity
    29                                         windowMargin:                                   50,                                                     // Window margin size (in pixels; only comes into play when an image is larger than the viewport)
    30                                         windowHeightPad:                                0,                                                      // Window height pad
    31                                         selector:                                               'a',                                            // Anchor tag selector
    32                                         popupSpeed:                                             300,                                            // Popup (resize) speed
    33                                         popupWidth:                                             1024,                                           // Popup width
    34                                         popupHeight:                                    768,                                            // Popup height
    35                                         popupIsFixed:                                   false,                                          // If true, popup won't resize to fit images
    36                                         useBodyOverflow:                                true,                                           // If true, the BODY tag is set to overflow: hidden when the popup is visible
    37                                         usePopupEasyClose:                              true,                                           // If true, popup can be closed by clicking on it anywhere
    38                                         usePopupLoader:                                 true,                                           // If true, show the popup loader
    39                                         usePopupCloser:                                 true,                                           // If true, show the popup closer button/link
    40                                         usePopupCaption:                                false,                                          // If true, show the popup image caption
    41                                         usePopupNav:                                    false,                                          // If true, show (and use) popup navigation
    42                                         usePopupDefaultStyling:                 true,                                           // If true, default popup styling will be applied (background color, text color, etc)
    43                                         popupBackgroundColor:                   '#FFFFFF',                                      // (Default Style) Popup background color (when usePopupStyling = true)
    44                                         popupTextColor:                                 '#000000',                                      // (Default Style) Popup text color (when usePopupStyling = true)
    45                                         popupLoaderTextSize:                    '2em',                                          // (Default Style) Popup loader text size
    46                                         popupCloserBackgroundColor:             '#000000',                                      // (Default Style) Popup closer background color (when usePopupStyling = true)
    47                                         popupCloserTextColor:                   '#FFFFFF',                                      // (Default Style) Popup closer text color (when usePopupStyling = true)
    48                                         popupCloserTextSize:                    '20px',                                         // (Default Style) Popup closer text size
    49                                         popupPadding:                                   10,                                                     // (Default Style) Popup padding (when usePopupStyling = true)
    50                                         popupCaptionHeight:                             60,                                                     // (Default Style) Popup height of caption area
    51                                         popupCaptionTextSize:                   null,                                           // (Default Style) Popup caption text size
    52                                         popupBlankCaptionText:                  '(untitled)',                           // Applied to images that don't have captions (when captions are enabled)
    53                                         popupCloserText:                                '&#215;',                                       // Popup closer text
    54                                         popupLoaderText:                                '&bull;&bull;&bull;&bull;',     // Popup loader text
    55                                         popupClass:                                             'poptrox-popup',                        // Popup class
    56                                         popupSelector:                                  null,                                           // (Advanced) Popup selector (use this if you want to replace the built-in popup)
    57                                         popupLoaderSelector:                    '.loader',                                      // (Advanced) Popup Loader selector
    58                                         popupCloserSelector:                    '.closer',                                      // (Advanced) Popup Closer selector
    59                                         popupCaptionSelector:                   '.caption',                                     // (Advanced) Popup Caption selector
    60                                         popupNavPreviousSelector:               '.nav-previous',                        // (Advanced) Popup Nav Previous selector
    61                                         popupNavNextSelector:                   '.nav-next',                            // (Advanced) Popup Nav Next selector
    62                                         onPopupClose:                                   null,                                           // Called when popup closes
    63                                         onPopupOpen:                                    null                                            // Called when popup opens
    64 
    65                                 }, options);
    66                                
    67                         // Variables
    68 
    69                                 var     _top = $(this),
    70                                         _body = $('body'),
    71                                         _overlay = $('<div></div>'),
    72                                         _window = $(window);
    73                                
    74                                 var     windowWidth,
    75                                         windowHeight,
    76                                         queue = [],
    77                                         navPos = 0,
    78                                         isLocked = false,
    79                                         cache = new Array(),
    80                                         isMSIE = navigator.userAgent.match(/MSIE ([0-9]+)\./),
    81                                         isMSIE6 = isMSIE && (RegExp.$1 == 6),
    82                                         isMSIE67 = isMSIE && (RegExp.$1 < 8),
    83                                         pos = (isMSIE6 ? 'absolute' : 'fixed');
    84                                
    85                                 function updateWH() {
    86 
    87                                         windowWidth = $(window).width();
    88                                         windowHeight = $(window).height() + settings.windowHeightPad;
    89 
    90                                 }
    91 
    92                                 // Disable unused features
    93                                         if (!settings.usePopupLoader)
    94                                                 settings.popupLoaderSelector = null;
    95 
    96                                         if (!settings.usePopupCloser)
    97                                                 settings.popupCloserSelector = null;
    98 
    99                                         if (!settings.usePopupCaption)
    100                                                 settings.popupCaptionSelector = null;
    101 
    102                                         if (!settings.usePopupNav) {
    103 
    104                                                 settings.popupNavPreviousSelector = null;
    105                                                 settings.popupNavNextSelector = null;
    106 
    107                                         }
    108 
    109                                 // Get popup
    110                                         var _popup;
    111                                
    112                                         if (settings.popupSelector)
    113                                                 _popup = $(settings.popupSelector);
    114                                         else
    115                                                 _popup = $('<div class="' + settings.popupClass + '">' + (settings.popupLoaderSelector ? '<div class="loader">' + settings.popupLoaderText + '</div>' : '') + '<div class="pic"></div>' + (settings.popupCaptionSelector ? '<div class="caption"></div>' : '') + (settings.popupCloserSelector ? '<span class="closer">' + settings.popupCloserText + '</span>' : '') + (settings.popupNavPreviousSelector ? '<div class="nav-previous"></div>' : '') + (settings.popupNavNextSelector ? '<div class="nav-next"></div>' : '') + '</div>');
    116 
    117                                 // Get popup components
    118                                         var     _pic = _popup.find('.pic'),
    119                                                 _x = $(),
    120                                                 _loader = _popup.find(settings.popupLoaderSelector),
    121                                                 _caption = _popup.find(settings.popupCaptionSelector),
    122                                                 _closer = _popup.find(settings.popupCloserSelector),
    123                                                 _nav_next = _popup.find(settings.popupNavNextSelector),
    124                                                 _nav_previous = _popup.find(settings.popupNavPreviousSelector),
    125                                                 _nav = _nav_next.add(_nav_previous);
    126 
    127                                 // Apply default styling?
    128                                         if (settings.usePopupDefaultStyling) {
    129                                                
    130                                                 _popup.css('background', settings.popupBackgroundColor);
    131                                                 _popup.css('color', settings.popupTextColor);
    132                                                 _popup.css('padding', settings.popupPadding + 'px');
    133                                                        
    134                                                 if (_caption.length > 0) {
    135                                                        
    136                                                         _popup.css('padding-bottom', settings.popupCaptionHeight + 'px');
    137                                                         _caption
    138                                                                 .css('position', 'absolute')
    139                                                                 .css('left', '0')
    140                                                                 .css('bottom', '0')
    141                                                                 .css('width', '100%')
    142                                                                 .css('text-align', 'center')
    143                                                                 .css('height', settings.popupCaptionHeight + 'px')
    144                                                                 .css('line-height', settings.popupCaptionHeight + 'px');
    145                                                                
    146                                                         if (settings.popupCaptionTextSize)
    147                                                                 _caption.css('font-size', popupCaptionTextSize);
    148                                                
    149                                                 }
    150                                                        
    151                                                 if (_closer.length > 0)
    152                                                         _closer
    153                                                                 .html(settings.popupCloserText)
    154                                                                 .css('font-size', settings.popupCloserTextSize)
    155                                                                 .css('background', settings.popupCloserBackgroundColor)
    156                                                                 .css('color', settings.popupCloserTextColor)
    157                                                                 .css('display', 'block')
    158                                                                 .css('width', '40px')
    159                                                                 .css('height', '40px')
    160                                                                 .css('line-height', '40px')
    161                                                                 .css('text-align', 'center')
    162                                                                 .css('position', 'absolute')
    163                                                                 .css('text-decoration', 'none')
    164                                                                 .css('outline', '0')
    165                                                                 .css('top', '0')
    166                                                                 .css('right', '-40px');
    167                                                                
    168                                                 if (_loader.length > 0) {
    169                                                        
    170                                                         _loader
    171                                                                 .html('')
    172                                                                 .css('position', 'relative')
    173                                                                 .css('font-size', settings.popupLoaderTextSize)
    174                                                                 .on('startSpinning', function(e) {
    175                                                                        
    176                                                                         var x = $('<div>' + settings.popupLoaderText + '</div>');
    177                                                                        
    178                                                                         x
    179                                                                                 .css('height', Math.floor(settings.popupHeight / 2) + 'px')
    180                                                                                 .css('overflow', 'hidden')
    181                                                                                 .css('line-height', Math.floor(settings.popupHeight / 2) + 'px')
    182                                                                                 .css('text-align', 'center')
    183                                                                                 .css('margin-top', Math.floor((_popup.height() - x.height() + (_caption.length > 0 ? _caption.height() : 0)) / 2))
    184                                                                                 .css('color', (settings.popupTextColor ? settings.popupTextColor : ''))
    185                                                                                 .on('xfin', function() { x.fadeTo(300, 0.5, function() { x.trigger('xfout'); }); })
    186                                                                                 .on('xfout', function() { x.fadeTo(300, 0.05, function() { x.trigger('xfin'); }); })
    187                                                                                 .trigger('xfin');
    188                                                                        
    189                                                                         _loader.append(x);
    190                                                                
    191                                                                 })
    192                                                                 .on('stopSpinning', function(e) {
    193                                                                        
    194                                                                         var x = _loader.find('div');
    195                                                                         x.remove();
    196                                                                
    197                                                                 });
    198                                                
    199                                                 }
    200                                                
    201                                                 if (_nav.length == 2) {
    202                                                        
    203                                                         _nav
    204                                                                 .css('font-size', '75px')
    205                                                                 .css('text-align', 'center')
    206                                                                 .css('color', '#fff')
    207                                                                 .css('text-shadow', 'none')
    208                                                                 .css('height', '100%')
    209                                                                 .css('position', 'absolute')
    210                                                                 .css('top', '0')
    211                                                                 .css('opacity', '0.35')
    212                                                                 .css('cursor', 'pointer')
    213                                                                 .css('box-shadow', 'inset 0px 0px 10px 0px rgba(0,0,0,0)')
    214                                                                 .poptrox_disableSelection();
    215 
    216                                                         var wn, wp;
    217 
    218                                                         if (settings.usePopupEasyClose) {
    219                                                        
    220                                                                 wn = '100px';
    221                                                                 wp = '100px';
    222                                                        
    223                                                         }
    224                                                         else {
    225                                                                
    226                                                                 wn = '75%';
    227                                                                 wp = '25%';
    228                                                        
    229                                                         }
    230                                                        
    231                                                         _nav_next
    232                                                                 .css('right', '0')
    233                                                                 .css('width', wn)
    234                                                                 .html('<div style="position: absolute; height: 100px; width: 125px; top: 50%; right: 0; margin-top: -50px;">&gt;</div>');
    235 
    236                                                         _nav_previous
    237                                                                 .css('left', '0')
    238                                                                 .css('width', wp)
    239                                                                 .html('<div style="position: absolute; height: 100px; width: 125px; top: 50%; left: 0; margin-top: -50px;">&lt;</div>');
    240                                                
    241                                                 }
    242                                        
    243                                         }
    244                        
    245                         // Main
    246                                 _window
    247                                         .on('orientationchange', function() {
    248                                                 _window.trigger('resize');
    249                                         })
    250                                         .resize(function() {
    251                                                
    252                                                 updateWH();
    253                                        
    254                                                 _popup.trigger('poptrox_close');
    255                                        
    256                                         });
    257 
    258                                 _caption
    259                                         .on('update', function(e, s) {
    260                                                
    261                                                 if (!s || s.length == 0)
    262                                                         s = settings.popupBlankCaptionText;
    263                                                
    264                                                 _caption.html(s);
    265                                        
    266                                         });
    267                                
    268                                 _closer
    269                                         .css('cursor', 'pointer')
    270                                         .on('click', function(e) {
    271                                                
    272                                                 e.preventDefault();
    273                                                 e.stopPropagation();
    274                                        
    275                                                 _popup.trigger('poptrox_close');
    276                                                
    277                                                 return true;
    278                                        
    279                                         });
    280 
    281                                 _nav_next
    282                                         .on('click', function() {
    283                                                 _popup.trigger('poptrox_next');
    284                                         });
    285 
    286                                 _nav_previous
    287                                         .on('click', function() {
    288                                                 _popup.trigger('poptrox_previous');
    289                                         });
    290 
    291                                 _overlay
    292                                         .prependTo('body')
    293                                         .hide();
    294 
    295                                 if (isMSIE6)
    296                                         _overlay.css('position', 'absolute');
    297                                 else
    298                                         _overlay
    299                                                 .css('position', pos)
    300                                                 .css('left', 0)
    301                                                 .css('top', 0)
    302                                                 .css('z-index', settings.baseZIndex)
    303                                                 .css('width', '200%')
    304                                                 .css('height', '200%')
    305                                                 .css('background-color', settings.overlayColor);
    306 
    307                                 _overlay
    308                                         .css('cursor', 'pointer')
    309                                         .on('click', function(e) {
    310 
    311                                                 e.preventDefault();
    312                                                 e.stopPropagation();
    313 
    314                                                 _popup.trigger('poptrox_close');
    315 
    316                                         });
    317 
    318                                 if (settings.usePopupEasyClose) {
    319 
    320                                         _pic
    321                                                 .css('cursor', 'pointer')
    322                                                 .on('click', function(e) {
    323 
    324                                                         e.preventDefault();
    325                                                         e.stopPropagation();
    326 
    327                                                         _popup.trigger('poptrox_close');
    328 
    329                                                 });
    330 
    331                                 }
    332 
    333                                 _popup
    334                                         .on('poptrox_next', function() {
    335                                                
    336                                                 var x = navPos + 1;
    337                                                
    338                                                 if (x >= queue.length)
    339                                                         x = 0;
    340                                                
    341                                                 _popup.trigger('poptrox_switch', [x]);
    342                                        
    343                                         })
    344                                         .on('poptrox_previous', function() {
    345                                        
    346                                                 var x = navPos - 1;
    347                                        
    348                                                 if (x < 0)
    349                                                         x = queue.length - 1;
    350                                        
    351                                                 _popup.trigger('poptrox_switch', [x]);
    352                                        
    353                                         })
    354                                         .on('poptrox_reset', function() {
    355                                                
    356                                                 updateWH();
    357 
    358                                                 _popup
    359                                                         .css('position', pos)
    360                                                         .css('z-index', settings.baseZIndex + 1)
    361                                                         .css('width', settings.popupWidth + 'px')
    362                                                         .css('height', settings.popupHeight + 'px')
    363                                                         .css('left', (windowWidth / 2) + 'px')
    364                                                         .css('top', (windowHeight / 2) + 'px')
    365                                                         .css('top', (windowHeight / 2) + 'px')
    366                                                         .css('margin-left', (-1 * (_popup.outerWidth() / 2)) + 'px')
    367                                                         .css('margin-top', (-1 * (_popup.outerHeight() / 2)) + 'px')
    368                                                
    369                                                 _loader.hide().trigger('stopSpinning');
    370                                                 _caption.hide();
    371                                                 _closer.hide();
    372                                                 _nav.hide();
    373                                                 _pic.hide();
    374                                                 _x.detach();
    375                                        
    376                                         })
    377                                         .on('poptrox_open', function(e, index) {
    378                                        
    379                                                 if (isLocked)
    380                                                         return true;
    381                                        
    382                                                 isLocked = true;
    383                                        
    384                                                 if (settings.useBodyOverflow)
    385                                                         _body.css('overflow', 'hidden');
    386 
    387                                                 if (settings.onPopupOpen)
    388                                                         (settings.onPopupOpen)();
    389 
    390                                                 _overlay
    391                                                         .fadeTo(settings.fadeSpeed, settings.overlayOpacity, function() {
    392                                                                 _popup.trigger('poptrox_switch', [index, true]);
    393                                                         });
    394 
    395                                         })
    396                                         .on('poptrox_switch', function(e, index, ignoreLock) {
    397                                                
    398                                                 var x, img;
    399 
    400                                                 if (!ignoreLock && isLocked)
    401                                                         return true;
    402                                                
    403                                                 isLocked = true;
    404 
    405                                                 // Cleanup from previous
    406                                                         _caption.hide();
    407                                                         if (_x.attr('src'))
    408                                                                 _x.attr('src', '');
    409                                                         _x.detach();
    410                                                
    411                                                 // Activate new object
    412                                                         x = queue[index];
    413                                                         _x = x.object;
    414                                                         _x.off('load');
    415                                                
    416                                                         _pic
    417                                                                 .css('text-indent', '-9999em')
    418                                                                 .show()
    419                                                                 .append(_x);
    420 
    421                                                         if (x.type == 'ajax')
    422                                                                 $.get(x.src, function(data) {
    423                                                                        
    424                                                                         _x.html(data);
    425                                                                         _x.trigger('load');
    426                                                                
    427                                                                 });
    428                                                         else
    429                                                                 _x.attr('src', x.src);
    430                                                        
    431                                                         if (x.type != 'image')
    432                                                                 _x
    433                                                                         .css('position', 'relative')
    434                                                                         .css('outline', '0')
    435                                                                         .css('z-index', settings.baseZIndex + 100)
    436                                                                         .width(x.width)
    437                                                                         .height(x.height);
    438 
    439                                                 // Initialize
    440                                                         _loader.trigger('startSpinning').fadeIn(300);
    441                                                         _popup.show();
    442 
    443                                                 if (settings.popupIsFixed) {
    444                                                        
    445                                                         _popup
    446                                                                 .width(settings.popupWidth)
    447                                                                 .height(settings.popupHeight)
    448                                                                 .css('margin-left', (-1 * (_popup.innerWidth() / 2)) + 'px')
    449                                                                 .css('margin-top', (-1 * (_popup.innerHeight() / 2)) + 'px');
    450 
    451                                                         _x.load(function() {
    452                                                        
    453                                                                 _x.off('load');
    454                                                                 _loader.hide().trigger('stopSpinning');
    455                                                                 _caption.trigger('update', [x.captionText]).fadeIn(settings.fadeSpeed);
    456                                                                 _closer.fadeIn(settings.fadeSpeed);
    457                                                                 _pic.css('text-indent', 0).hide().fadeIn(settings.fadeSpeed, function() { isLocked = false; });
    458                                                                 navPos = index;
    459                                                                 _nav.fadeIn(settings.fadeSpeed);
    460 
    461                                                         });
    462                                                
    463                                                 }
    464                                                 else {
    465                                                        
    466                                                         _x.load(function() {
    467                                                                
    468                                                                 _x.off('load');
    469 
    470                                                                 updateWH();
    471 
    472                                                                 var dw = Math.abs(_popup.width() - _popup.outerWidth()), dh = Math.abs(_popup.height() - _popup.outerHeight());
    473                                                                 var nw = _x.width(), nh = _x.height();
    474                                                                 var maxw = windowWidth - (settings.windowMargin * 2) - dw, maxh = windowHeight - (settings.windowMargin * 2) - dh;
    475                                                                
    476                                                                 _loader.hide().trigger('stopSpinning');
    477                                                                
    478                                                                 if (nw > maxw || nh > maxh) {
    479                                                                        
    480                                                                         var multW, multH, m;
    481                                                                        
    482                                                                         multW = maxw / nw;
    483                                                                         multH = maxh / nh;
    484                                                                         m = Math.min(multW, multH);
    485                                                                        
    486                                                                         nw = Math.floor(m * nw);
    487                                                                         nh = Math.floor(m * nh);
    488 
    489                                                                         _x.width(nw).height(nh);
    490                                                                
    491                                                                 }
    492 
    493                                                                 if (_popup.innerWidth() == nw + dw
    494                                                                 &&      _popup.innerHeight() == nh + dh) {
    495                                                                        
    496                                                                         _caption.trigger('update', [x.captionText]).fadeIn(settings.fadeSpeed);
    497                                                                         _closer.fadeIn(settings.fadeSpeed);
    498                                                                         _pic.css('text-indent', 0).hide().fadeIn(settings.fadeSpeed, function() { isLocked = false; });
    499                                                                         navPos = index;
    500 
    501                                                                 }
    502                                                                 else
    503                                                                         _popup
    504                                                                                 .animate({
    505                                                                                         width: nw,
    506                                                                                         height: nh,
    507                                                                                         marginLeft: (-1 * (nw / 2)) - (dw / 2),
    508                                                                                         marginTop: (-1 * (nh / 2)) - (dh / 2)
    509                                                                                 }, settings.popupSpeed, 'swing', function() {
    510                                                                                        
    511                                                                                         _caption.trigger('update', [x.captionText]).fadeIn(settings.fadeSpeed);
    512                                                                                         _closer.fadeIn(settings.fadeSpeed);
    513                                                                                         _pic.css('text-indent', 0).hide().fadeIn(settings.fadeSpeed, function() { isLocked = false; });
    514                                                                                         navPos = index;
    515                                                                                         _nav.fadeIn(settings.fadeSpeed);
    516                                                                                
    517                                                                                 });
    518                                                        
    519                                                         });
    520                                                
    521                                                 }
    522                                                
    523                                                 if (x.type != 'image')
    524                                                         _x.trigger('load');
    525                                        
    526                                         })
    527                                         .on('poptrox_close', function() {
    528                                        
    529                                                 if (isLocked)
    530                                                         return true;
    531                                        
    532                                                 isLocked = true;
    533                                        
    534                                                 _popup
    535                                                         .hide()
    536                                                         .trigger('poptrox_reset');
    537                                        
    538                                                 if (settings.onPopupClose)
    539                                                         (settings.onPopupClose)();
    540                                        
    541                                                 _overlay
    542                                                         .fadeOut(settings.fadeSpeed, function() {
    543                                                        
    544                                                                 if (settings.useBodyOverflow)
    545                                                                         _body.css('overflow', 'auto');
    546                                                                        
    547                                                                 isLocked = false;
    548                                                        
    549                                                         });
    550                                        
    551                                         })
    552                                         .prependTo('body')
    553                                         .hide()
    554                                         .trigger('poptrox_reset');
    555 
    556                                 _window
    557                                         .keydown(function(e) {
    558 
    559                                                 if (_popup.is(':visible')) {
    560                                                        
    561                                                         switch (e.keyCode) {
    562                                                                
    563                                                                 case 37:
    564                                                                 case 32:
    565                                                                
    566                                                                         if (settings.usePopupNav) {
    567                                                                                
    568                                                                                 _popup.trigger('poptrox_previous');
    569                                                                                 return false;
    570                                                                        
    571                                                                         }
    572                                                                        
    573                                                                         break;
    574 
    575                                                                 case 39:
    576                                                                        
    577                                                                         if (settings.usePopupNav) {
    578                                                                                
    579                                                                                 _popup.trigger('poptrox_next');
    580                                                                                 return false;
    581                                                                        
    582                                                                         }
    583                                                                        
    584                                                                         break;
    585 
    586                                                                 case 27:
    587                                                                        
    588                                                                         _popup.trigger('poptrox_close');
    589                                                                         return false;
    590 
    591                                                                         break;
    592                                                        
    593                                                         }
    594                                                
    595                                                 }
    596                                        
    597                                         });
    598                                
    599                                 _top.find(settings.selector).each(function(index) {
    600                                        
    601                                         var x, tmp, a = $(this), i = a.find('img'), data = a.data('poptrox');
    602 
    603                                         x = {
    604 
    605                                                 src:                    a.attr('href'),
    606                                                 captionText:    i.attr('title'),
    607                                                 width:                  a.attr('width'),
    608                                                 height:                 a.attr('height'),
    609                                                 type:                   null,
    610                                                 object:                 null
    611 
    612                                         };
    613 
    614                                         // If a data attribute exists, use it
    615                                                 if (data) {
    616                                                        
    617                                                         var k, b = data.split(',');
    618                                                        
    619                                                         for (k in b) {
    620                                                                
    621                                                                 tmp = b[k].match(/([0-9]+)x([0-9]+)/);
    622                                                                
    623                                                                 // Size
    624                                                                         if (tmp && tmp.length == 3) {
    625                                                                                
    626                                                                                 x.width = tmp[1];
    627                                                                                 x.height = tmp[2];
    628                                                                        
    629                                                                         }
    630                                                                 // Type
    631                                                                         else
    632                                                                                 x.type = b[k];
    633                                                
    634                                                         }
    635                                                
    636                                                 }
    637                                                
    638                                         // No type? Attempt to guess it based on the href's domain
    639                                                 if (!x.type) {
    640                                                        
    641                                                         tmp = x.src.match(/http[s]?:\/\/([a-z0-9\.]+)\/.*/);
    642 
    643                                                         if (!tmp || tmp.length < 3)
    644                                                                 tmp = [false];
    645 
    646                                                         switch (tmp[1]) {
    647                                                                
    648                                                                 case 'api.soundcloud.com':
    649                                                                         x.type = 'soundcloud';
    650                                                                         break;
    651 
    652                                                                 case 'youtu.be':
    653                                                                         x.type = 'youtube';
    654                                                                         break;
    655 
    656                                                                 case 'vimeo.com':
    657                                                                         x.type = 'vimeo';
    658                                                                         break;
    659 
    660                                                                 default:
    661                                                                         x.type = 'image';
    662                                                                         break;
    663                                                        
    664                                                         }
    665                                                
    666                                                 }
    667                                        
    668                                         // Create object (based on type)
    669                                                 tmp = x.src.match(/http([s]?):\/\/[a-z0-9\.]+\/(.*)/);
    670 
    671                                                 if (tmp)
    672                                                         x.prefix = 'http' + (tmp[1] == 's' ? 's' : '');
    673 
    674                                                 switch (x.type) {
    675                                                        
    676                                                         case 'ignore':
    677                                                                 break;
    678                                                
    679                                                         case 'iframe':
    680                                                                 x.object = $('<iframe src="" frameborder="0"></iframe>');
    681                                                                 x.object
    682                                                                         .on('click', function(e) { e.stopPropagation(); })
    683                                                                         .css('cursor', 'auto');
    684                                                                
    685                                                                 break;
    686                                                                
    687                                                         case 'ajax':
    688                                                                 x.object = $('<div class="poptrox-ajax"></div>');
    689                                                                 x.object
    690                                                                         .on('click', function(e) { e.stopPropagation(); })
    691                                                                         .css('cursor', 'auto')
    692                                                                         .css('overflow', 'auto');
    693                                                                
    694                                                                 break;
    695                                                
    696                                                         case 'soundcloud':
    697                                                                 x.object = $('<iframe scrolling="no" frameborder="no" src=""></iframe>');
    698                                                                 x.src = x.prefix + '://w.soundcloud.com/player/?url=' + escape(x.src);
    699                                                                 x.width = '600';
    700                                                                 x.height = "166";
    701                                                                
    702                                                                 break;
    703 
    704                                                         case 'youtube':
    705                                                                 x.object = $('<iframe src="" frameborder="0" allowfullscreen="1"></iframe>');
    706                                                                 x.src = x.prefix + '://www.youtube.com/embed/' + tmp[2];
    707                                                                
    708                                                                 break;
    709 
    710                                                         case 'vimeo':
    711                                                                 x.object = $('<iframe src="" frameborder="0" allowFullScreen="1"></iframe>');
    712                                                                 x.src = x.prefix + '://player.vimeo.com/video/' + tmp[2];
    713                                                                
    714                                                                 break;
    715 
    716                                                         default:
    717                                                                 x.object = $('<img src="" alt="" />');
    718                                                                
    719                                                                 if (settings.preload) {
    720                                                                        
    721                                                                         var tmp = document.createElement('img');
    722                                                                         tmp.src = x.src; cache.push(tmp);
    723                                                                
    724                                                                 }
    725                                                                
    726                                                                 break;
    727                                                
    728                                                 }
    729 
    730                                         queue.push(x);
    731                                        
    732                                         i.attr('title', '');
    733                                        
    734                                         if (x.type != 'ignore')
    735                                                 a
    736                                                         .attr('href', '')
    737                                                         .css('outline', 0)
    738                                                         .on('click', function(e) {
    739 
    740                                                                 e.preventDefault();
    741                                                                 e.stopPropagation();
    742 
    743                                                                 _popup.trigger('poptrox_open', [index]);
    744 
    745                                                         });
    746 
    747                                 });
    748                                
    749                         return $(this);
    750                
    751                 };
    752 
    753 })(jQuery);
     1/* jquery.poptrox.js v2.5.2-dev | (c) @ajlkn | github.com/ajlkn/jquery.poptrox | MIT licensed */
     2!function(e){e.fn.poptrox_disableSelection=function(){return e(this).css("user-select","none").css("-khtml-user-select","none").css("-moz-user-select","none").css("-o-user-select","none").css("-webkit-user-select","none")},e.fn.poptrox=function(o){if(0==this.length)return e(this);if(this.length>1){for(var t=0;t<this.length;t++)e(this[t]).poptrox(o);return e(this)}var p,i,s=e.extend({preload:!1,baseZIndex:1e3,fadeSpeed:300,overlayColor:"#000000",overlayOpacity:.6,overlayClass:"poptrox-overlay",windowMargin:50,windowHeightPad:0,selector:"a",caption:null,parent:"body",popupSpeed:300,popupWidth:200,popupHeight:100,popupIsFixed:!1,useBodyOverflow:!1,usePopupEasyClose:!0,usePopupForceClose:!1,usePopupLoader:!0,usePopupCloser:!0,usePopupCaption:!1,usePopupNav:!1,usePopupDefaultStyling:!0,popupBackgroundColor:"#FFFFFF",popupTextColor:"#000000",popupLoaderTextSize:"2em",popupCloserBackgroundColor:"#000000",popupCloserTextColor:"#FFFFFF",popupCloserTextSize:"20px",popupPadding:10,popupCaptionHeight:60,popupCaptionTextSize:null,popupBlankCaptionText:"(untitled)",popupCloserText:"&#215;",popupLoaderText:"&bull;&bull;&bull;&bull;",popupClass:"poptrox-popup",popupSelector:null,popupLoaderSelector:".loader",popupCloserSelector:".closer",popupCaptionSelector:".caption",popupNavPreviousSelector:".nav-previous",popupNavNextSelector:".nav-next",onPopupClose:null,onPopupOpen:null},o),r=e(this),n=e("body"),a=e('<div class="'+s.overlayClass+'"></div>'),l=e(window),u=[],d=0,h=!1,g=new Array,f=function(){p=l.width(),i=l.height()+s.windowHeightPad;var e=Math.abs(x.width()-x.outerWidth()),o=Math.abs(x.height()-x.outerHeight()),t=p-2*s.windowMargin-e,r=i-2*s.windowMargin-o;x.css("min-width",s.popupWidth).css("min-height",s.popupHeight),v.children().css("max-width",t).css("max-height",r)};s.usePopupLoader||(s.popupLoaderSelector=null),s.usePopupCloser||(s.popupCloserSelector=null),s.usePopupCaption||(s.popupCaptionSelector=null),s.usePopupNav||(s.popupNavPreviousSelector=null,s.popupNavNextSelector=null);var x;x=e(s.popupSelector?s.popupSelector:'<div class="'+s.popupClass+'">'+(s.popupLoaderSelector?'<div class="loader">'+s.popupLoaderText+"</div>":"")+'<div class="pic"></div>'+(s.popupCaptionSelector?'<div class="caption"></div>':"")+(s.popupCloserSelector?'<span class="closer">'+s.popupCloserText+"</span>":"")+(s.popupNavPreviousSelector?'<div class="nav-previous"></div>':"")+(s.popupNavNextSelector?'<div class="nav-next"></div>':"")+"</div>");var v=x.find(".pic"),w=e(),b=x.find(s.popupLoaderSelector),m=x.find(s.popupCaptionSelector),C=x.find(s.popupCloserSelector),y=x.find(s.popupNavNextSelector),S=x.find(s.popupNavPreviousSelector),P=y.add(S);if(s.usePopupDefaultStyling&&(x.css("background",s.popupBackgroundColor).css("color",s.popupTextColor).css("padding",s.popupPadding+"px"),m.length>0&&(x.css("padding-bottom",s.popupCaptionHeight+"px"),m.css("position","absolute").css("left","0").css("bottom","0").css("width","100%").css("text-align","center").css("height",s.popupCaptionHeight+"px").css("line-height",s.popupCaptionHeight+"px"),s.popupCaptionTextSize&&m.css("font-size",popupCaptionTextSize)),C.length>0&&C.html(s.popupCloserText).css("font-size",s.popupCloserTextSize).css("background",s.popupCloserBackgroundColor).css("color",s.popupCloserTextColor).css("display","block").css("width","40px").css("height","40px").css("line-height","40px").css("text-align","center").css("position","absolute").css("text-decoration","none").css("outline","0").css("top","0").css("right","-40px"),b.length>0&&b.html("").css("position","relative").css("font-size",s.popupLoaderTextSize).on("startSpinning",function(o){var t=e("<div>"+s.popupLoaderText+"</div>");t.css("height",Math.floor(s.popupHeight/2)+"px").css("overflow","hidden").css("line-height",Math.floor(s.popupHeight/2)+"px").css("text-align","center").css("margin-top",Math.floor((x.height()-t.height()+(m.length>0?m.height():0))/2)).css("color",s.popupTextColor?s.popupTextColor:"").on("xfin",function(){t.fadeTo(300,.5,function(){t.trigger("xfout")})}).on("xfout",function(){t.fadeTo(300,.05,function(){t.trigger("xfin")})}).trigger("xfin"),b.append(t)}).on("stopSpinning",function(e){var o=b.find("div");o.remove()}),2==P.length)){P.css("font-size","75px").css("text-align","center").css("color","#fff").css("text-shadow","none").css("height","100%").css("position","absolute").css("top","0").css("opacity","0.35").css("cursor","pointer").css("box-shadow","inset 0px 0px 10px 0px rgba(0,0,0,0)").poptrox_disableSelection();var k,T;s.usePopupEasyClose?(k="100px",T="100px"):(k="75%",T="25%"),y.css("right","0").css("width",k).html('<div style="position: absolute; height: 100px; width: 125px; top: 50%; right: 0; margin-top: -50px;">&gt;</div>'),S.css("left","0").css("width",T).html('<div style="position: absolute; height: 100px; width: 125px; top: 50%; left: 0; margin-top: -50px;">&lt;</div>')}return l.on("resize orientationchange",function(){f()}),m.on("update",function(e,o){o&&0!=o.length||(o=s.popupBlankCaptionText),m.html(o)}),C.css("cursor","pointer").on("click",function(e){return e.preventDefault(),e.stopPropagation(),x.trigger("poptrox_close"),!0}),y.on("click",function(e){e.stopPropagation(),e.preventDefault(),x.trigger("poptrox_next")}),S.on("click",function(e){e.stopPropagation(),e.preventDefault(),x.trigger("poptrox_previous")}),a.css("position","fixed").css("left",0).css("top",0).css("z-index",s.baseZIndex).css("width","100%").css("height","100%").css("text-align","center").css("cursor","pointer").appendTo(s.parent).prepend('<div style="display:inline-block;height:100%;vertical-align:middle;"></div>').append('<div style="position:absolute;left:0;top:0;width:100%;height:100%;background:'+s.overlayColor+";opacity:"+s.overlayOpacity+";filter:alpha(opacity="+100*s.overlayOpacity+');"></div>').hide().on("touchmove",function(e){return!1}).on("click",function(e){e.preventDefault(),e.stopPropagation(),x.trigger("poptrox_close")}),x.css("display","inline-block").css("vertical-align","middle").css("position","relative").css("z-index",1).css("cursor","auto").appendTo(a).hide().on("poptrox_next",function(){var e=d+1;e>=u.length&&(e=0),x.trigger("poptrox_switch",[e])}).on("poptrox_previous",function(){var e=d-1;e<0&&(e=u.length-1),x.trigger("poptrox_switch",[e])}).on("poptrox_reset",function(){f(),x.data("width",s.popupWidth).data("height",s.popupHeight),b.hide().trigger("stopSpinning"),m.hide(),C.hide(),P.hide(),v.hide(),w.attr("src","").detach()}).on("poptrox_open",function(e,o){return!!h||(h=!0,s.useBodyOverflow&&n.css("overflow","hidden"),s.onPopupOpen&&s.onPopupOpen(),x.addClass("loading"),void a.fadeTo(s.fadeSpeed,1,function(){x.trigger("poptrox_switch",[o,!0])}))}).on("poptrox_switch",function(o,t,p){var i;if(!p&&h)return!0;if(h=!0,x.addClass("loading").css("width",x.data("width")).css("height",x.data("height")),m.hide(),w.attr("src")&&w.attr("src",""),w.detach(),i=u[t],w=i.object,w.off("load"),v.css("text-indent","-9999px").show().append(w),"ajax"==i.type?e.get(i.src,function(e){w.html(e),w.trigger("load")}):w.attr("src",i.src),"image"!=i.type){var r,n;r=i.width,n=i.height,"%"==r.slice(-1)&&(r=parseInt(r.substring(0,r.length-1))/100*l.width()),"%"==n.slice(-1)&&(n=parseInt(n.substring(0,n.length-1))/100*l.height()),w.css("position","relative").css("outline","0").css("z-index",s.baseZIndex+100).width(r).height(n)}b.trigger("startSpinning").fadeIn(300),x.show(),s.popupIsFixed?(x.removeClass("loading").width(s.popupWidth).height(s.popupHeight),w.on("load",function(){w.off("load"),b.hide().trigger("stopSpinning"),m.trigger("update",[i.captionText]).fadeIn(s.fadeSpeed),C.fadeIn(s.fadeSpeed),v.css("text-indent",0).hide().fadeIn(s.fadeSpeed,function(){h=!1}),d=t,P.fadeIn(s.fadeSpeed)})):w.on("load",function(){f(),w.off("load"),b.hide().trigger("stopSpinning");var e=w.width(),o=w.height(),p=function(){m.trigger("update",[i.captionText]).fadeIn(s.fadeSpeed),C.fadeIn(s.fadeSpeed),v.css("text-indent",0).hide().fadeIn(s.fadeSpeed,function(){h=!1}),d=t,P.fadeIn(s.fadeSpeed),x.removeClass("loading").data("width",e).data("height",o).css("width","auto").css("height","auto")};e==x.data("width")&&o==x.data("height")?p():x.animate({width:e,height:o},s.popupSpeed,"swing",p)}),"image"!=i.type&&w.trigger("load")}).on("poptrox_close",function(){return!(!h||s.usePopupForceClose)||(h=!0,x.hide().trigger("poptrox_reset"),s.onPopupClose&&s.onPopupClose(),void a.fadeOut(s.fadeSpeed,function(){s.useBodyOverflow&&n.css("overflow","auto"),h=!1}))}).trigger("poptrox_reset"),s.usePopupEasyClose?(m.on("click","a",function(e){e.stopPropagation()}),x.css("cursor","pointer").on("click",function(e){e.stopPropagation(),e.preventDefault(),x.trigger("poptrox_close")})):x.on("click",function(e){e.stopPropagation()}),l.keydown(function(e){if(x.is(":visible"))switch(e.keyCode){case 37:case 32:if(s.usePopupNav)return x.trigger("poptrox_previous"),!1;break;case 39:if(s.usePopupNav)return x.trigger("poptrox_next"),!1;break;case 27:return x.trigger("poptrox_close"),!1}}),r.find(s.selector).each(function(o){var t,p,i=e(this),r=i.find("img"),n=i.data("poptrox");if("ignore"!=n&&i.attr("href")){if(t={src:i.attr("href"),captionText:r.attr("title"),width:null,height:null,type:null,object:null,options:null},s.caption){if("function"==typeof s.caption)c=s.caption(i);else if("selector"in s.caption){var a;a=i.find(s.caption.selector),"attribute"in s.caption?c=a.attr(s.caption.attribute):(c=a.html(),s.caption.remove===!0&&a.remove())}}else c=r.attr("title");if(t.captionText=c,n){var l=n.split(",");0 in l&&(t.type=l[0]),1 in l&&(p=l[1].match(/([0-9%]+)x([0-9%]+)/),p&&3==p.length&&(t.width=p[1],t.height=p[2])),2 in l&&(t.options=l[2])}if(!t.type)switch(p=t.src.match(/\/\/([a-z0-9\.]+)\/.*/),(!p||p.length<2)&&(p=[!1]),p[1]){case"api.soundcloud.com":t.type="soundcloud";break;case"youtu.be":t.type="youtube";break;case"vimeo.com":t.type="vimeo";break;case"wistia.net":t.type="wistia";break;case"bcove.me":t.type="bcove";break;default:t.type="image"}switch(p=t.src.match(/\/\/[a-z0-9\.]+\/(.*)/),t.type){case"iframe":t.object=e('<iframe src="" frameborder="0"></iframe>'),t.object.on("click",function(e){e.stopPropagation()}).css("cursor","auto"),t.width&&t.height||(t.width="600",t.height="400");break;case"ajax":t.object=e('<div class="poptrox-ajax"></div>'),t.object.on("click",function(e){e.stopPropagation()}).css("cursor","auto").css("overflow","auto"),t.width&&t.height||(t.width="600",t.height="400");break;case"soundcloud":t.object=e('<iframe scrolling="no" frameborder="no" src=""></iframe>'),t.src="//w.soundcloud.com/player/?url="+escape(t.src)+(t.options?"&"+t.options:""),t.width="600",t.height="166";break;case"youtube":t.object=e('<iframe src="" frameborder="0" allowfullscreen="1"></iframe>'),t.src="//www.youtube.com/embed/"+p[1]+(t.options?"?"+t.options:""),t.width&&t.height||(t.width="800",t.height="480");break;case"vimeo":t.object=e('<iframe src="" frameborder="0" allowFullScreen="1"></iframe>'),t.src="//player.vimeo.com/video/"+p[1]+(t.options?"?"+t.options:""),t.width&&t.height||(t.width="800",t.height="480");break;case"wistia":t.object=e('<iframe src="" frameborder="0" allowFullScreen="1"></iframe>'),t.src="//fast.wistia.net/"+p[1]+(t.options?"?"+t.options:""),t.width&&t.height||(t.width="800",t.height="480");break;case"bcove":t.object=e('<iframe src="" frameborder="0" allowFullScreen="1" width="100%"></iframe>'),t.src="//bcove.me/"+p[1]+(t.options?"?"+t.options:""),t.width&&t.height||(t.width="640",t.height="360");break;default:if(t.object=e('<img src="" alt="" style="vertical-align:bottom" />'),s.preload){var p=document.createElement("img");p.src=t.src,g.push(p)}t.width=i.attr("width"),t.height=i.attr("height")}"file:"==window.location.protocol&&t.src.match(/^\/\//)&&(t.src="http:"+t.src),u.push(t),r.removeAttr("title"),i.removeAttr("href").css("cursor","pointer").css("outline",0).on("click",function(e){e.preventDefault(),e.stopPropagation(),x.trigger("poptrox_open",[o])})}}),r.prop("_poptrox",s),r}}(jQuery);
  • _squelettes_/parallelism4spip/branches/v1/paquet.xml

    r117828 r122957  
    22        prefix="parallelism"
    33        categorie="squelette"
    4         version="0.5.4"
     4        version="0.5.5"
    55        etat="stable"
    66        compatibilite="[3.0.1;3.2.*]"
Note: See TracChangeset for help on using the changeset viewer.