Thứ Hai, 4 tháng 2, 2013

Membuat Simple Slider Otomatis Gambar Vertikal

Kali ini saya akan memberikan satu lagi tutorial membuat slider otomatis untuk image atau gambar vertikal. Sebelumnya saya minta maaf belum bisa menjawab semua pertanyaan yang masuk karena banyak sekali kegiatan di luar yang harus saya kerjakan. Dan tentu saja saya juga belum bisa memenuhi permintaan teman-teman yang menginginkan sebuah template khusus atau modifikasi template yang sudah ada menjadi sebuah template yang SEO friendly dan valid HTML.

slider otomatis


Slider ini sangat sederhana, seperti juga slider-slider sebelumnya, slider inipun bekerja secara otomatis berdasarkan artikel terbaru dan kategori tertentu. Untuk lebih jelas silahkan klik demo diatas, slider ini saya letakkan di sidebar sebelah kanan dengan ukuran lebar 300px. Slider ini sekilas terlihat seperti slider yang ada pada template-template dari designer India seperti Lasantha Bandara, Lansindu, Sameera dan lainnya, yang masih memasukkan gambar dan URL secara manual.  Jika Anda pengguna template buatan mereka, dan ingin mengganti agar slider bekerja secara otomatis, silahkan simak berikut langkah-langkah pembuatannya :
  1. Setelah login ke Blogger, pilih blog yang ingin ditambahkan slider ini.
  2. Kemudian masuk ke Template >> Edit HTML (centang kotak expand widget templates)
  3. Di back up atau disimpan dulu templatenya, jika sewaktu-waktu terjadi kesalahan bisa dikembalikan ke bentuk semula.
  4. Klik "Buka" dan masukkan kode berikut di atas kode ]]></b:skin> :
    /* Slider */
    .sompret-wrapper {float:right; position: relative;}
    .sompret { overflow: hidden; position: relative; width:300px; height:400px;}
    .image_reel { position: absolute; top: 0; left: 0; }
    .image_reel img {overflow: hidden;float: left;width:300px; height:auto;}
    .paging {background:#878773; border:1px solid #676756;padding: 4px 0 2px; text-align: right;z-index: 100; }
    .paging a { text-indent:-9999px; background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMCKhI88jkv7wFtl0GUc5dTjisjM-OSQjsep7cIsHYKIVfZZzHrp-rbaUpBZnifgClY7J8YuihrS1JYGMAVQZwqFLpB9q7kF2SqxmCI7g2rL0MQgJ9MoeUwh0ETJsrcO-5vvM9j4hv700/s1600/slider_item.png) no-repeat center; width:10px; height:10px; display:inline-block;margin:3px; border:none; outline:none; }
    .paging a.active { background:url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgUSVAbB3arprMk4rMIrHSA0pOsUlw3uUkn27D_uTzAnOsxg0sazzlT113wMak4tAZyE1N_igmqgYfC3jUuGN61GTe8MIxvZ4_XC4-LZAhBnDgTe7Rjzcxj61zV5kr1faMzXyY2ONwf2Ys/s1600/slider_item_active.png) no-repeat center; border:none; outline:none;}
    .paging a:hover {font-weight: bold; border:none; outline:none;}
    .crott { width:280px; display: none; position:absolute;bottom: 0; left: 0; z-index: 101; background: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1PeqOGp_moGISlWrRTq39uGRbsxpHiximowhqFyUbsr6Ya733uZX8l9x398Ln8YP7GI4YUxHQqxGjLMzSKS4B4idgdVz0DuyY3CtFM0DBKN_D-W1ochMtGBl5BYMnPsApJgRxqTaHEZUn/s1600/uj-opacity-40.png);padding:5px 10px;  }
    .crott a{color: #fff;font: 16px Oswald }
    .crott p{color: #fff;font: 12px Arial;}
    Kode warna merah diatas adalah ukuran slider, untuk lebar 300px dan tinggi 400px. Perhatikan semua dan Anda harus sesuaikan dengan ukuran sidebar pada template yang Anda gunakan.
  5. Masih di Edit HTML, masukkan kode script berikut ini diatas </head> :
    <script src='http://code.jquery.com/jquery-1.8.3.js' type='text/javascript'/>
    <script type='text/javascript'>
    //<![CDATA[
    jQuery(document).ready(function() {

    //Set Default State of each portfolio piece
    $(".paging").show();
    $(".paging a:first").addClass("active");

    //Get size of images, how many there are, then determin the size of the image reel.
    var imageWidth = $(".sompret").width();
    var imageSum = $(".image_reel img").size();
    var imageReelWidth = imageWidth * imageSum;

    //Adjust the image reel to its new size
    $(".image_reel").css({'width' : imageReelWidth});

    //Paging + Slider Function
    rotate = function(){
       var triggerID = $active.attr("rel") - 1; //Get number of times to slide
       var image_reelPosition = triggerID * imageWidth; //Determines the distance the image reel needs to slide

       $(".paging a").removeClass('active'); //Remove all active class
       $active.addClass('active'); //Add active class (the $active is declared in the rotateSwitch function)
     
    $(".crott").stop(true,true).slideUp('slow');

    $(".crott").eq( $('.paging a.active').attr("rel") - 1 ).slideDown("slow");

       //Slider Animation
       $(".image_reel").animate({
           left: -image_reelPosition
       }, 500 );


    };

    //Rotation + Timing Event
    rotateSwitch = function(){
    $(".crott").eq( $('.paging a.active').attr("rel") - 1 ).slideDown("slow");
       play = setInterval(function(){ //Set timer - this will repeat itself every 3 seconds
           $active = $('.paging a.active').next();
           if ( $active.length === 0) { //If paging reaches the end...
               $active = $('.paging a:first'); //go back to first
           }
           rotate(); //Trigger the paging and slider function
       }, 10000); //Timer speed in milliseconds (3 seconds)

    };

    rotateSwitch(); //Run function on launch

     //On Click
        $(".paging a").click(function() {  
            $active = $(this); //Activate the clicked paging
            //Reset Timer
            clearInterval(play); //Stop the rotation
            rotate(); //Trigger rotation immediately
            rotateSwitch(); // Resume rotation
            return false; //Prevent browser jump to link anchor
        });  

    });

    //]]>
    </script>
    <script type='text/javascript'>
    //<![CDATA[
    imgr = new Array();
    imgr[0] = "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgO6wG1xPQyXQ74IvGt0NIFy7WmjQP6di8_6iZxDqBTmD-0DFTPsVjdVxSE7MDJtPLb-b916EkfuVfgahyZRNsvTqTDBt6JKOBj-XNLxpIw5sXC-qxPg03C-cXeh4CKSGkLjPZIZoqnajA/s1600/no+image.jpg";
    showRandomImg = true;
    aBold = true;
    summaryPost1 = 80;
    summaryTitle = 20;
    numposts1 = 6;

    function removeHtmlTag(strx,chop){
        var s = strx.split("<");
        for(var i=0;i<s.length;i++){
            if(s[i].indexOf(">")!=-1){
                s[i] = s[i].substring(s[i].indexOf(">")+1,s[i].length);
            }
        }
        s =  s.join("");
        s = s.substring(0,chop-1);
        return s;
    }

    function showrecentposts1(json) {
    j = (showRandomImg) ? Math.floor((imgr.length+1)*Math.random()) : 0;
    img  = new Array();
       
      for (var i = 0; i < numposts1; i++) {
        var entry = json.feed.entry[i];
        var posttitle = entry.title.$t;
    var pcm;
        var posturl;
        if (i == json.feed.entry.length) break;
        for (var k = 0; k < entry.link.length; k++) {
          if (entry.link[k].rel == 'alternate') {
            posturl = entry.link[k].href;
            break;
          }
        }

    for (var k = 0; k < entry.link.length; k++) {
          if (entry.link[k].rel == 'replies' && entry.link[k].type == 'text/html') {
            pcm = entry.link[k].title.split(" ")[0];
            break;
          }
        }

        if ("content" in entry) {
          var postcontent = entry.content.$t;}
        else
        if ("summary" in entry) {
          var postcontent = entry.summary.$t;}
        else var postcontent = "";
       
        postdate = entry.published.$t;

    if(j>imgr.length-1) j=0;
    img[i] = imgr[j];

    s = postcontent ; a = s.indexOf("<img"); b = s.indexOf("src=\"",a); c = s.indexOf("\"",b+5); d = s.substr(b+5,c-b-5);

    if((a!=-1)&&(b!=-1)&&(c!=-1)&&(d!="")) img[i] = d;

    //cmtext = (text != 'no') ? '<i><font color="'+acolor+'">('+pcm+' '+text+')</font></i>' : '';


    var month = [1,2,3,4,5,6,7,8,9,10,11,12];
    var month2 = ["January","February","March","April","May","June","July","August","September","October","November","December"];

    var day = postdate.split("-")[2].substring(0,2);
    var m = postdate.split("-")[1];
    var y = postdate.split("-")[0];

    for(var u2=0;u2<month.length;u2++){
    if(parseInt(m)==month[u2]) {
    m = month2[u2] ; break;
    }
    }

    var daystr = m+ ' ' + day + ' ' + y ;

    var trtd = '<div class="crott"><a href="'+posturl+'">'+posttitle+'</a><p>'+removeHtmlTag(postcontent,summaryPost1)+'... </p></div>';
    document.write(trtd);    

     j++;
    }

    }

    function showrecentposts2(json) {
    j = (showRandomImg) ? Math.floor((imgr.length+1)*Math.random()) : 0;
    img  = new Array();
     
      for (var i = 0; i < numposts1 ; i++) {
        var entry = json.feed.entry[i];
        var posttitle = entry.title.$t;
    var pcm;
        var posturl;
        if (i == json.feed.entry.length) break;
        for (var k = 0; k < entry.link.length; k++) {
          if (entry.link[k].rel == 'alternate') {
            posturl = entry.link[k].href;
            break;
          }
        }

    for (var k = 0; k < entry.link.length; k++) {
          if (entry.link[k].rel == 'replies' && entry.link[k].type == 'text/html') {
            pcm = entry.link[k].title.split(" ")[0];
            break;
          }
        }

        if ("content" in entry) {
          var postcontent = entry.content.$t;}
        else
        if ("summary" in entry) {
          var postcontent = entry.summary.$t;}
        else var postcontent = "";
       
        postdate = entry.published.$t;

    if(j>imgr.length-1) j=0;
    img[i] = imgr[j];

    s = postcontent ; a = s.indexOf("<img"); b = s.indexOf("src=\"",a); c = s.indexOf("\"",b+5); d = s.substr(b+5,c-b-5);

    if((a!=-1)&&(b!=-1)&&(c!=-1)&&(d!="")) img[i] = d;

    //cmtext = (text != 'no') ? '<i><font color="'+acolor+'">('+pcm+' '+text+')</font></i>' : '';


    var month = [1,2,3,4,5,6,7,8,9,10,11,12];
    var month2 = ["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];

    var day = postdate.split("-")[2].substring(0,2);
    var m = postdate.split("-")[1];
    var y = postdate.split("-")[0];

    for(var u2=0;u2<month.length;u2++){
    if(parseInt(m)==month[u2]) {
    m = month2[u2] ; break;
    }
    }

    var daystr = day+ ' ' + m + ' ' + y ;

    var trtd = '<a href="'+posturl+'"><img src="'+img[i]+'"/></a>';
    document.write(trtd);    

     j++;
    }

    }
     //]]>
    </script>
    Perhatikan kode script warna merah paling atas, jika pada template Anda sudah terpasang script itu seri berapapun, kode script itu tidak usah diikutkan, hanya satu jquery yang ada pada sebuah template jika ada dua atau lebih akan bentrok dan salah satu fungsinya tidak jalan.. numposts:6; adalah jumlah post yang tampil pada slider
  6. Sekarang Anda tinggal mau meletakkan slider itu dimana, jika ingin diletakkan di sidebar sebelah kanan paling atas seperti terlihat pada demo. Cari kode <div id='sidebar-wrapper'> atau kode pembungkus sidebar yang ada pada template Anda, kemudian letakkan kode berikut ini sebelum atau diatas <div id='sidebar-wrapper'> :
    <b:if cond='data:blog.pageType == &quot;item&quot;'>
    <div class='sompret-wrapper'>
    <div class='sompret'>
    <div class='image_reel'>
    <script>
    document.write(&quot;&lt;script src=\&quot;/feeds/posts/default?max-results=&quot;+numposts1+&quot;&amp;orderby=published&amp;alt=json-in-script&amp;callback=showrecentposts2\&quot;&gt;&lt;\/script&gt;&quot;);
    </script></div>
    <div class='description'>
    <script>    
    document.write(&quot;&lt;script src=\&quot;/feeds/posts/default?max-results=&quot;+numposts1+&quot;&amp;orderby=published&amp;alt=json-in-script&amp;callback=showrecentposts1\&quot;&gt;&lt;\/script&gt;&quot;);
    </script>
    </div>
    </div>
    <div class='paging'>
    <a href='#' rel='1'/>
    <a href='#' rel='2'/>
    <a href='#' rel='3'/>
    <a href='#' rel='4'/>
    <a href='#' rel='5'/>
    <a href='#' rel='6'/>
    </div>
    </div></b:if>
    Keterangan :

    Tampilan slider dengan menggunakan kode diatas hanya terlihat pada postingan, jika Anda ingin slider terlihat di homepage hapus kode pertama dan terakhir yang berwarna biru muda. Slider diatas menampilkan postingan terbaru Anda, jika ingin merubah menjadi tampil per label anda tinggal menambahkan kode /-/your label antara kode default dan ?, jadinya seperti ini default/-/your label?max-results karena kode tersebut diatas ada dua, Anda harus ganti dua-duanya.
  7. Terakhir save, selesai.
Slider diatas bisa Anda modifikasi sendiri, Anda juga bisa gunakan slider ini untuk gambar horisontal (tidak harus vertikal) berusahalah untuk lebih kreatif dengan merubah ukuran panjang dan lebar yang ada pada tutorial ini atau menambahkan hiasan ribbon misalnya seperti terlihat pada demo ini, sehingga tampilannya menjadi lebih menarik. Itu tadi tutorial membuat slider sederhana kali ini, jika ada yang kurang jelas silahkan tinggalkan peasan pada kolom komentar di bawah.

Dan untuk teman-teman yang sudah berpartisipasi dan meramaikan forum diskusi pada blog ini saya mengucapkan banyak terima kasih, silahkan berdiskusi dengan bebas dan sehat. Untuk sementara saya belum bisa ikutan nimbrung karena masih banyak pekerjaan yang mesti saya selesaikan. Semua pertanyaan di luar topik artikel ini silahkan masukkan pada forum diskusi, klik menu forum diskusi yang ada pada menu navigasi atas blog ini.

NB :
Jika Anda melihat gambar pada slider kadang terlihat kadang tidak, itu karena penambahan script lazy load image yang ada pada template demo.

Socializer Widget By Blogger Yard
SOCIALIZE IT →
FOLLOW US →
SHARE IT →

0 nhận xét:

Đăng nhận xét

Labels

Adult English affiliate Ảnh ẢNH FACEBOOK ẢNH HÀI ẢNH HOA ĐẸP ẢNH LÃNG MẠN ẢNH NGƯỜI MẪU ÁO DÀI Art + Design ẨM THỰC bag Bé tô màu BIKINI BLOGGER books Búp bê C CAPTCHA Cắm hoa Cắt may Chơi mà học CHUYỆN CỦA SAO Chuyện Lạ clip hot Coloring - Tô màu CUỘC SỐNG Doll domain DU LỊCH Đ Đan len Đất nặn cho bé Điện thoại - Tablet E Funny G GAME Gấp giấy Gấp hộp Gấp khăn - Trang trí món ăn Giầy - Dép Gifts Giới Tính GIỚI TRẺ NGÀY NAY Gói quà - gấp nơ Google GOOGLE ADSENSE FULL guest post H Hand made hat hiteach HOA HẬU HỌC TẬP home and garden hosting HOT GIRL INTERNET INTERNET PAYMENT Iseng joomla jQuery Kết hạt KHỎE & ĐẸP KIẾM TIỀN Kinh Nghiệm L LÀM ĐẸP Làm đồ chơi làm đồ chơi từ gỗ Làm hoa giấy Làm hoa vải Làm thiệp LƯU BÚT HỌC TRÒ M Magazine making flowers Mẫu móc MẸO HAY MMO MODEL N Nail art Nến trang trí Nghệ thuật NGƯỜI ĐẸP VÀ XE Nhà đẹp O Origrami Ôtô - xe máy P Painting - Vẽ Patchwork PHẦN MỀM Play and learn for baby plugin Q R recycling S Sách tiếng anh cho bé Sành điệu Sao SAO NGOẠI SAO ONLINE SAO VIỆT SEO SEO FULL slider STYLE T TÂM SỰ template Tết dây THẾ GIỚI NGƯỜI MẪU THẾ GIỚI THỨ 3 THỂ THAO Thêu THƠ TÌNH THỦ THUẬT THÚ VUI Thư giãn TIỂU THUYẾT TÌNH CẢM TIN HOT Tin Vip tips Tóc đẹp traffic TRANG ĐIỂM Trang trí Tri thức TRUYỆN NGẮN truyện quê Túi xinh tutorial blog VĂN PHÒNG vuivui808 weaving website WEDDING wordpress