Coda Slider Effect – tutorial JQuery

7

Criado por Mateus Souza em 28 de agosto de 2008 às 22:16

Bom antes de começar esse tutorial quero dizer que vou me especializar em JQuery e seus afins.Então se quiserem me contratar para algum serviço, estou pronto.heheheh… ah eu estarei disponibilizando varios tutorias feitos por mim tambem, como este:

coda slider Coda Slider Effect   tutorial JQuery

Este tutorial requer certo conhecimento no dreamweaver, se você não conhece muito o dreamweaver aqui vai um e-book completo sobre este programa.

Nesse tutorial vamos aprender a criar esse efeito aqui, conhecido com Coda Slider Effect.Este é um efeito utilizado até em poucos sites como o site do Coda (que é o nome do efeito). Aqui vai outra demonstração feita por mim, mais não será a utilizada nesse tutorial e sim esta demonstração aqui.

Vamos lá:

Antes de tudo precisaremos do JQuery, é claro e alguns plugins para este adicionais:

Local Scroll

Scroll TO

e Serial Scroll

Vá no dreamweaver e crie um novo site(menu = Site – New Site) , que será usado nesse tutorial.Extraia e coloque os arquivos na pasta do site.Feito isso crie um arquivo de HTML e salve-o como index.html. Agora vamos aos codigos:

O CSS:

Crie um arquivo de css e colo tudo o que está aqui neste arquivo e salve-o como coda-slider.css (lembrando que tudo tem que ser salvo na mesma pasta dos demais arquivos).

As imagens:

Usaremos apenas algumas imagens, disponibilizadas aqui.Descompacte-as na pasta do site.

O Script:

O Script que fará tudo funcionar é este. Crie um novo arquivo (javascript) copie o código abaixo e salve-o como coda-slider.js na mesma pasta dos demais arquivos:

// when the DOM is ready...
$(document).ready(function () {

    var $panels = $('#slider .scrollContainer > div');
    var $container = $('#slider .scrollContainer');

    // if false, we'll float all the panels left and fix the width
    // of the container
    var horizontal = true;

    // float the panels left if we're going horizontal
    if (horizontal) {
        $panels.css({
            'float' : 'left',
            'position' : 'relative' // IE fix to ensure overflow is hidden
        });

        // calculate a new width for the container (so it holds all panels)
        $container.css('width', $panels[0].offsetWidth * $panels.length);
    }

    // collect the scroll object, at the same time apply the hidden overflow
    // to remove the default scrollbars that will appear
    var $scroll = $('#slider .scroll').css('overflow', 'hidden');

    // apply our left + right buttons
    $scroll
        .before('<img class="scrollButtons left" src="images/scroll_left.png" />')
        .after('<img class="scrollButtons right" src="images/scroll_right.png" />');

    // handle nav selection
    function selectNav() {
        $(this)
            .parents('ul:first')
                .find('a')
                    .removeClass('selected')
                .end()
            .end()
            .addClass('selected');
    }

    $('#slider .navigation').find('a').click(selectNav);

    // go find the navigation link that has this target and select the nav
    function trigger(data) {
        var el = $('#slider .navigation').find('a[href$="' + data.id + '"]').get(0);
        selectNav.call(el);
    }

    if (window.location.hash) {
        trigger({ id : window.location.hash.substr(1) });
    } else {
        $('ul.navigation a:first').click();
    }

    // offset is used to move to *exactly* the right place, since I'm using
    // padding on my example, I need to subtract the amount of padding to
    // the offset.  Try removing this to get a good idea of the effect
    var offset = parseInt((horizontal ?
        $container.css('paddingTop') :
        $container.css('paddingLeft'))
        || 0) * -1;

    var scrollOptions = {
        target: $scroll, // the element that has the overflow

        // can be a selector which will be relative to the target
        items: $panels,

        navigation: '.navigation a',

        // selectors are NOT relative to document, i.e. make sure they're unique
        prev: 'img.left',
        next: 'img.right',

        // allow the scroll effect to run both directions
        axis: 'xy',

        onAfter: trigger, // our final callback

        offset: offset,

        // duration of the sliding effect
        duration: 500,

        // easing - can be used with the easing plugin:
        // http://gsgd.co.uk/sandbox/jquery/easing/
        easing: 'swing'
    };

    // apply serialScroll to the slider - we chose this plugin because it
    // supports// the indexed next and previous scroll along with hooking
    // in to our navigation.
    $('#slider').serialScroll(scrollOptions);

    // now apply localScroll to hook any other arbitrary links to trigger
    // the effect
    $.localScroll(scrollOptions);

    // finally, if the URL has a hash, move the slider in to position,
    // setting the duration to 1 because I don't want it to scroll in the
    // very first page load.  We don't always need this, but it ensures
    // the positioning is absolutely spot on when the pages loads.
    scrollOptions.duration = 1;
    $.localScroll.hash(scrollOptions);

});

Feito isso vamos ao html que salvamos antes com o nome de index.html:

No dreamweaver coloque no modo código e copie este código abaixo e substituindo tudo o que estiver lá por este:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Better Coda Slider</title>
<link rel="stylesheet" href="coda-slider.css" type="text/css" media="screen" title="no title" charset="utf-8">

<script src="jquery-1.2.6.js" type="text/javascript"></script>
<script src="jquery.scrollTo-1.3.3.js" type="text/javascript"></script>
<script src="jquery.localscroll-1.2.5.js" type="text/javascript" charset="utf-8"></script>
<script src="jquery.serialScroll-1.2.1.js" type="text/javascript" charset="utf-8"></script>
<script src="coda-slider.js" type="text/javascript" charset="utf-8"></script>

</head>
<body>
    <div id="wrapper">
        <h1>jQuery Coda Slider</h1>

        <div id="intro">
            <p>This technique demonstrates an accessible 'Coda'-like slider interface, but in addition, allows you to place links to the sliding content anywhere on the page and have the effect (and navigation) still work. <br /><a href="http://jqueryfordesigners.com/coda-slider-effect">Read the article, and see the screencast this demonstration relates to</a></p>
        </div>

        <div id="slider">
            <ul class="navigation">

                <li><a href="#sites">Sites</a></li>
                <li><a href="#files">Files</a></li>
                <li><a href="#editor">Editor</a></li>
                <li><a href="#preview">Preview</a></li>
                <li><a href="#css">CSS</a></li>
                <li><a href="#terminal">Terminal</a></li>

                <li><a href="#books">Books</a></li>
            </ul>

            <div class="scroll">
                <div class="scrollContainer">
                <div class="panel" id="sites"><h2>Sites</h2><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></div>
                <div class="panel" id="files"><h2>Files</h2><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></div>

                <div class="panel" id="editor"><h2>Editor</h2><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></div>
                <div class="panel" id="preview"><h2>Preview</h2><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></div>
                <div class="panel" id="css"><h2>CSS</h2><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></div>
                <div class="panel" id="terminal"><h2>Terminal</h2><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. <a href="#sites">And some sites</a></p></div>

                <div class="panel" id="books"><h2>Books</h2><p>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p></div>
                </div>
            </div>

            <div id="shade"></div>
        </div>

        <p>Lorem ipsum dolor sit amet, <a href="#books">books</a> consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco <a href="#sites">sites</a> laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure <a href="#terminal">terminal</a>  dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</p>

    </div>
</body>
</html>

Onde está escrito escreva o conteúdo da página aqui vc substituira pelo conteudo que quiser, pode ser feito no modo código ou no modo visual mesmo.pronto agora dê um F12 no dreamweaver para ver como está.

A partir de agora é com vocês, analisem o código para entendê-lo melhor e faça suas alterações com cautela.Boa sorte a todos e qualquer dúvida pode comentar que eu responderei.

Em breve mais tutoriais sobre Jquery e até a próxima.

Tutorial feito por Mateus Souza.

Postado em CSS, Javascript, Tutoriais, jQuery

Feed Comentários - RSS 2.0 | Trackback

Gostou? Então compartilhe já:

DeliciousDesign BumpDiggFriendfeedGoogleGoogle BuzzLinkedinMyspaceNetvibesPosterousRedditRSSStumbleuponTechnoratiTumblrYahoo Buzz

7 Comentários

  1. Mateus Souza disse:

    vc deve ta errando alguma parte do código, vo deixa meu exemplo aqui pra vc baixa e vê se da certo:

    http://www.mateussouza.web44.net/arquivos/exemplocoda.rar

    boa sorte :D

    6 de novembro de 2008 às 12:13

  2. Gracyela disse:

    Não tou conseguindo fazer funcionar…..

    O IE tá bloqueando… e não está rodando de uma pagina pra outra, apenas abrindo os links, tanto no IE como no Firefox.

    Copiei o codigo fonte do exemplo do site q está funcionando, peguei os scripts e continua do mesmo jeito. Peguei do seu site e mesma coisa, será q não funciona localmente…. só hospedado?

    Não tem lógica.. ajuda ai.

    6 de novembro de 2008 às 11:17

  3. Felipe Góes Eidam disse:

    O exemplo postado aqui está com alguns problemas. Um exemplo é a ausência da referência do coda-slider.js dentro do código html. Isso não é notado por quem apenas procura o código e utiliza o mesmo. O link de imagens está quebrado.
    Apenas com o exemplocoda.rar que passou no comentário acima é que se pode utilizar o código corretamente. Mesmo assim, obrigado pelo post. Foi de grande ajuda.

    1 de novembro de 2009 às 18:52

  4. Evaldo Altino disse:

    Olá. Obrigado pelos seus tutoriais.
    Será que eu consigo fazer com que o efeito seja disparado por um mouseover, ao invés de um clique? Pretendo que um banner logo abaixo do menu funcione com este efeito, deixando os cliques para levar o usuário a outras páginas.
    Se você puder me ajudar eu agradeço imensamente.
    Abraço.

    4 de novembro de 2009 às 11:31

  5. Mateus Souza disse:

    Verdade, mais de qualquer forma é so baixar o exemplo que ta certinho.
    PS. tutorial arrumado…

    24 de novembro de 2009 às 10:09

  6. Guilherme disse:

    Cara muito bom o tutorial. So nao consegui Baixar as imagens, tem como voce arrumar o link??

    Aguardo novos tutoriais parabéns!!

    1 de setembro de 2010 às 19:35

    1. Mateus Souza disse:

      Link arrumado Guilherme, obrigado pelo aviso!

      8 de setembro de 2010 às 21:48

Faça um Comentário

XHTML: Você pode usar essas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Uhull, 120 assinantes feed e 51 seguidores no twitter.

Feed Feed E-mail Twitter Facebook

Linha Framework Code Canyon Theme Forest

Comentários

  • Mateus Souza disse:

    Link arrumado Guilherme, obrigado pelo aviso!

  • Mateus Souza disse:

    Boa André, por essa nem eu esperava, hehe. Grande sacada mesmo, vlw :)

  • Mateus Souza disse:

    Concerteza Leandro, bloquear ie6 é uma decisão um tanto que difícil depedendo do caso. Vlw pelo comment!!!

  • Piero Di Carlo Dalla-Bona disse:

    Parabéns pelo Post!Super claro e didático.Abração, Piero.

  • Catinha disse:

    Valeu! Tentei fazer com tutoriais de outros sites, mas só com este consegui. Obrigadão por compartilhar conosco. Deus continue te abençoando!

© 2010 Mateus Souza – Webdesigner (Deus Seja Louvado) | Posts (RSS) | Comentários (RSS). | powered by WordPress e Linha Framework :P

diHITT - Notícias BlogBlogs.Com.Br