Cum puteti creea un slider elegant (tip acordeon)

Vezi subiectul anterior Vezi subiectul urmator In jos

Tutorial Cum puteti creea un slider elegant (tip acordeon)

Mesaj Scris de Keir la data de Mar 22 Mai - 21:53

Cum puteti creea un slider elegant?

1. Tutorial:

Cum puteți creea un astfel de slider?





Urmați pașii de mai jos și ve-ți realiza unul!

Notă:
Sageată Acest tutorial este disponibil pentru toate versiunile de forum!
Sageată Pentru ca tutorialul să dea roade, trebuie să îl urmați pas cu pas!


2. Primul pas: Creați 2 pagini javascript

Pentru a creea paginile javascript trebuie să intrați în:

   
PA Module HTML & Javascript Gestiunea codurilor Javascript
Click pe "Creați un nou cod Javascript"


  • Prima pagină:

    Sageată Alegeți un titlu

    Sageată Alegeți poziția: Indexul forumului

    Sageată Introduceți acest cod în zona "Cod JavaScript * :"

Cod:

        /*************************************************
            *
            *  project:    liteAccordion - horizontal accordion plugin for jQuery
            *  author:    Nicola Hibbert
            *  url:        http://nicolahibbert.com/horizontal-accordion-jquery-plugin
            *  demo:        http://www.nicolahibbert.com/demo/liteAccordion
            *
            *  Version:    1.1.3
            *  Copyright:    (c) 2010-2011 Nicola Hibbert
            *
            /*************************************************/
            (function($) {
            
              $.fn.liteAccordion = function(options) {
                      
                  // defaults
                  var defaults = {
                    containerWidth : 960,
                    containerHeight : 320,
                    headerWidth : 48,
                  
                    firstSlide : 1,
                    onActivate : function() {},
                    slideSpeed : 800,
                    slideCallback : function() {},        
                  
                    autoPlay : false,
                    pauseOnHover : false,
                    cycleSpeed : 6000,

                    theme : 'basic', // basic, light*, dark, stitch*
                    rounded : false,
                    enumerateSlides : false
                  },
                
                  // merge defaults with options in new settings object            
                    settings = $.extend({}, defaults, options),
            
                  // define key variables
                    $accordion = this,
                    $slides = $accordion.find('li'),
                    slideLen = $slides.length,
                    slideWidth = settings.containerWidth - (slideLen * settings.headerWidth),
                    $header = $slides.children('h2'),
                  
                  // core utility and animation methods
                    utils = {
                        getGroup : function(pos, index) {      
                          if (this.offsetLeft === pos.left) {
                              return $header.slice(index + 1, slideLen).filter(function() { return this.offsetLeft === $header.index(this) * settings.headerWidth });
                          } else if (this.offsetLeft === pos.right) {
                              return $header.slice(0, index + 1).filter(function() { return this.offsetLeft === slideWidth + ($header.index(this) * settings.headerWidth) });  
                          }                
                        },
                        nextSlide : function(slideIndex) {
                          var slide = slideIndex + 1 || settings.firstSlide;

                          // get index of next slide
                          return function() {
                              return slide++ % slideLen;
                          }
                        },
                        play : function(slideIndex) {
                          var getNext = utils.nextSlide((slideIndex) ? slideIndex : ''), // create closure
                              start = function() {
                                $header.eq(getNext()).click();
                              };
                        
                          utils.playing = setInterval(start, settings.cycleSpeed);        
                        },
                        pause : function() {
                          clearInterval(utils.playing);
                        },
                        playing : 0,
                        sentinel : false
                    };      
                
                  // set container heights, widths, theme & corner style
                  $accordion
                    .height(settings.containerHeight)
                    .width(settings.containerWidth)
                    .addClass(settings.theme)
                    .addClass(settings.rounded && 'rounded');
                
                  // set tab width, height and selected class
                  $header
                    .width(settings.containerHeight)
                    .height(settings.headerWidth)
                    .eq(settings.firstSlide - 1).addClass('selected');
                
                  // ie
                  if ($.browser.msie) {
                    if ($.browser.version.substr(0,1) >  {
                        $header.css('filter', 'none');
                    } else if ($.browser.version.substr(0,1) < 7) {
                        return false;
                    }
                  }
                
                  // set initial positions for each slide
                  $header.each(function(index) {
                    var $this = $(this),
                        left = index * settings.headerWidth;
                      
                    if (index >= settings.firstSlide) left += slideWidth;
                  
                    $this
                        .css('left', left)
                        .next()
                          .width(slideWidth)
                          .css({ left : left, paddingLeft : settings.headerWidth });
                  
                    // add number to bottom of tab
                    settings.enumerateSlides && $this.append('<b>' + (index + 1) + '</b>');        

                  });  
                      
                  // bind event handler for activating slides
                  $header.click(function(e) {
                    var $this = $(this),
                        index = $header.index($this),
                        $next = $this.next(),
                        pos = {
                          left : index * settings.headerWidth,
                          right : index * settings.headerWidth + slideWidth,
                          newPos : 0
                        },
                        $group = utils.getGroup.call(this, pos, index);
                                  
                    // set animation direction
                    if (this.offsetLeft === pos.left) {
                        pos.newPos = slideWidth;
                    } else if (this.offsetLeft === pos.right) {
                        pos.newPos = -slideWidth;
                    }
                  
                    // check if animation in progress
                    if (!$header.is(':animated')) {

                        // activate onclick callback with slide div as context      
                        if (e.originalEvent) {
                          if (utils.sentinel === this) return false;
                          settings.onActivate.call($next);
                          utils.sentinel = this;
                        } else {
                          settings.onActivate.call($next);
                          utils.sentinel = false;
                        }

                        // remove, then add selected class
                        $header.removeClass('selected').filter($this).addClass('selected');
                  
                        // get group of tabs & animate        
                        $group
                          .animate({ left : '+=' + pos.newPos }, settings.slideSpeed, function() { settings.slideCallback.call($next) })
                          .next()
                          .animate({ left : '+=' + pos.newPos }, settings.slideSpeed);
                            
                    }
                  });
                  
                  // pause on hover        
                  if (settings.pauseOnHover) {
                    $accordion.hover(function() {
                        utils.pause();
                    }, function() {
                        utils.play($header.index($header.filter('.selected')));
                    });
                  }
                      
                  // start autoplay, call utils with no args = start from firstSlide
                  settings.autoPlay && utils.play();
                
                  return $accordion;
                
              };
            
            })(jQuery);

Și salvați pagina prin apăsarea butonului "Validează"!


  • A doua pagină:

    Sageată Alegeți un titlu

    Sageată Alegeți poziția: Indexul forumului

    Sageată Introduceți acest cod în zona "Cod JavaScript * :"

Cod:
       $(document).ready(function(){
            $('#one').liteAccordion({
                          onActivate : function() {
                              this.find('figcaption').fadeOut();
                          },
                          slideCallback : function() {
                              this.find('figcaption').fadeIn();
                          },
                          autoPlay : true,
                          pauseOnHover : true,
                          theme : 'dark',
                          rounded : true,
                          enumerateSlides : true            
                    }).find('figcaption:first').show();
            });

Și salvați pagina prin apăsarea butonului "Validează"!
Atenție! Nu uitați să activați codurile javascript prin bifarea butonului "Da" de la "Activeaza gestiunea codurilor JavaScript :"
A face cu ochiul

3. Pasul 3: Introduceți codul HTML în Generalități


Mergeți în PA Afișare Pagina de start Generalități Mesaj pe pagina de start . Alegeți ce titlul doriți, iar în conținutul mesajului adăugați următorul cod:


Cod:
       <div id="one" class="accordion">
            <ol>
                <li>
                    <h2><span>Slide One</span></h2>
                    <div id="s1"></div>
                </li>
                <li>
                    <h2><span>Slide Two</span></h2>
                    <div id="s2"></div>
                </li>
                <li>
                    <h2><span>Slide Three</span></h2>
                    <div id="s3"></div>
                </li>
                <li>
                    <h2><span>Slide Four</span></h2>
                    <div id="s4"></div>
                </li>
                <li>
                    <h2><span>Slide Five</span></h2>
                    <div id="s5"></div>
                </li>
            </ol>
            <noscript>
                <p>Please enable JavaScript to get the full experience.</p>
            </noscript>
        </div>


Dvs. puteți schimba titlurile slider-ului și de asemenea puteți introduceți câte div-uri doriți! A face cu ochiul

4. Pasul 4: Adăugați codul CSS:

Mergeți în PA - Afișare - Imagini și culori - Culori - Foaie de stil CSS și adăugați următorul cod la finalul foii:

Cod:
       .accordion {
          text-align:left;
          font:'Helvetica Neue', Verdana, Arial, sans-serif;
        }
        .accordion ol {
          position: relative;
          overflow: hidden;
          height: 100%;
          margin: 0;
          padding: 0;
          list-style-type: none;
        }
        .accordion li > h2 {
          color: black;
          font-weight: normal;
          margin: 0;
          z-index: 2;
          position: absolute;
          top: 0;
          left: 0;
          -webkit-transform: translateX(-100%) rotate(-90deg);
          -webkit-transform-origin: right top;
          -moz-transform: translateX(-100%) rotate(-90deg);
          -moz-transform-origin: right top;
          -o-transform: translateX(-100%) rotate(-90deg);
          -o-transform-origin: right top;
          -ms-transform: translateX(-100%) rotate(-90deg);
          -ms-transform-origin: right top;
          transform: translateX(-100%) rotate(-90deg);
          transform-origin: right top;
          filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=3);
        }
        .accordion li > h2 span { display: block; padding-right: 8%; text-align: right; height: 90%; margin-top: 5px; }
        .accordion li > h2 b { display: inline-block; position: absolute; top: 10%; top: 42%9; left: 10%; left: 5%9; text-align: center; -webkit-transform: rotate(90deg); -moz-transform: rotate(90deg); -o-transform: rotate(90deg); transform: rotate(90deg); filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1); }
        .accordion li > h2:hover { cursor: pointer; }
        .accordion li > div { height: 100%; position: absolute; top: 0; z-index: 1; overflow: hidden; background: white; }
        .accordion noscript p { padding: 10px; margin: 0; background: white; }
        
        /****************************************** Basic */
        .basic li > h2 { background: #333; color: white; line-height: 1.8em; }
        .basic li > div h3 { margin: 15px 10px; }
        .basic li > div p { margin: 10px; font-size: 14px; }
        
        /****************************************** Dark */
        .dark { border: 9px solid #353535; border-bottom-width: 8px; padding: 5px 5px 6px 0; background: #030303; -webkit-box-shadow: 0 -1px 0 #5b5b5b inset, 0 5px 15px rgba(0, 0, 0, 0.4); -moz-box-shadow: 0 -1px 0 #5b5b5b inset, 0 5px 15px rgba(0, 0, 0, 0.4); -o-box-shadow: 0 -1px 0 #5b5b5b inset, 0 5px 15px rgba(0, 0, 0, 0.4);
           box-shadow: 0 -1px 0 #5b5b5b inset, 0 5px 15px rgba(0, 0, 0, 0.4); }
        .dark li > h2 { background: #030303; font-size: 16px; line-height: 2.7em; text-shadow: 0 -1px 0 #030303; }
        .dark li > h2 span { background: #353535; color: white; }
        .dark li > h2 b { background: #3535359; color: #030303; font-size: 20px; text-shadow: -1px 1px 0 #5b5b5b; }
        .dark h2.selected span, .dark h2.selected span:hover { background: #434343; background: -webkit-gradient(linear, left top, right top, color-stop(0, #353535), color-stop(1, #555555)); background: -moz-linear-gradient(top left, #353535 0%, #555555 100%); }
        .dark h2.selected b { background: #4343439; }
        .dark li > div { background: #030303; margin-left: 5px; }
        
        /*************************************** Rounded */
        .rounded { -webkit-border-radius: 6px; -moz-border-radius: 6px; border-radius: 6px; }
        .rounded li > h2 span { -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; }
        
        /***************************************** Light */
        /**************************************** Stitch */

        #s1 {
         background:url("http://url de l'image.jpg") no-repeat #030303;
        }
        #s2 {
         background:url("http://url de l'image.jpg") no-repeat #030303;
        }
        #s3 {
         background:url("http://url de l'image.jpg") no-repeat #030303;
        }

        #s4 {
         background:url("http://url de l'image.jpg") no-repeat #030303;
        }

        #s5 {
         background:url("http://url de l'image.jpg") no-repeat #030303;
        }
Tot ce trebuie să faceți dvs. este să puneți link-ul imaginii în codurile de acest gen:
Cod:
        #s1 {
         background:url("http://url de l'image.jpg")
        }
Puteți adăuga câte coduri de acest gen doriți!
De asemenea, puteți schimba aspectul slider-ului folosind codul CSS!



Felicitări! Dacă ați urmat pașii corect, acum aveți propriul index personalizat!

Acest tutorial a fost tradus și ajustat de Keir!
Tutorial creat de : Celina - 14.02.12, din Forumul Spaniol de Suport

   Copyright ˆ Forumgratuit.ro Nicio parte a acestui tutorial nu poate fi reprodusa, transmisa sau stocata in orice forma fara acordul scris al detinatorului dreptului de autor, in conformitate cu articolul L122-1 apartinand ICC.
avatar
Keir
Membru onorific
Membru onorific

masculin

Mesaje : 6771
Varsta : 19
Localizare : Buzau
Data înscrierii : 28/12/2011
Multumiri : 68
Niciun avertisment

http://neotalk.wikiforum.ro/

Sus In jos

Vezi subiectul anterior Vezi subiectul urmator Sus

- Subiecte similare

Permisiunile acestui forum:
Nu puteti raspunde la subiectele acestui forum