• Home
  • About
  • Portfolio
  • Link Exchange
  • Contact
03 Apr 2012
2

Sliding Image Panels dengan CSS3

by cssweaver
Roleartikel, css, css3, download, html, web design

Hari ini kita akan belajar cara untuk membuat beberapa panel gambar geser dengan CSS3 ajah. Idenya adalah untuk menggunakan gambar background untuk panel dan menghidupkan mereka saat mengklik label. Kita akan menggunakan radio button dengan label dan menargetkan panel masing-masing.

 

HTML Markup

HTML akan terdiri dari tiga bagian utama: radio button dan label, wadah dengan panel dan mereka “slices” untuk setiap gambar, dan judul. Wadah dengan bagian class cr-bgimg akan memiliki divisi untuk setiap panel dan di dalam kita akan menempatkan rentang untuk setiap gambar dengan posisi latar belakang yang tepat. Jadi, panel pertama akan memiliki empat potong, masing-masing memiliki salah satu gambar sebagai latar belakang dengan posisi paling kiri. Panel kedua akan memiliki empat potong lagi tapi sekarang posisi latar belakang akan dipindahkan untuk menampilkan bagian selanjutnya dari gambar masing-masing:

<section class="cr-container">           
 
    <!-- radio buttons and labels -->
    <input id="select-img-1" name="radio-set-1" type="radio" class="cr-selector-img-1" checked/>
    <label for="select-img-1" class="cr-label-img-1">1</label>
 
    <input id="select-img-2" name="radio-set-1" type="radio" class="cr-selector-img-2" />
    <label for="select-img-2" class="cr-label-img-2">2</label>
 
    <input id="select-img-3" name="radio-set-1" type="radio" class="cr-selector-img-3" />
    <label for="select-img-3" class="cr-label-img-3">3</label>
 
    <input id="select-img-4" name="radio-set-1" type="radio" class="cr-selector-img-4" />
    <label for="select-img-4" class="cr-label-img-4">4</label>
 
    <div class="clr"></div>
 
    <!-- panels -->
    <div class="cr-bgimg">
        <div>
            <span>Slice 1 - Image 1</span>
            <span>Slice 1 - Image 2</span>
            <span>Slice 1 - Image 3</span>
            <span>Slice 1 - Image 4</span>
        </div>
        <div>
            <span>Slice 2 - Image 1</span>
            <span>Slice 2 - Image 2</span>
            <span>Slice 2 - Image 3</span>
            <span>Slice 2 - Image 4</span>
        </div>
        <div>
            <span>Slice 3 - Image 1</span>
            <span>Slice 3 - Image 2</span>
            <span>Slice 3 - Image 3</span>
            <span>Slice 3 - Image 4</span>
        </div>
        <div>
            <span>Slice 4 - Image 1</span>
            <span>Slice 4 - Image 2</span>
            <span>Slice 4 - Image 3</span>
            <span>Slice 4 - Image 4</span>
        </div>
    </div>
 
    <!-- titles -->
    <div class="cr-titles">
        <h3>
            <span>Serendipity</span>
            <span>What you've been dreaming of</span>
        </h3>
        <h3>
            <span>Adventure</span>
            <span>Where the fun begins</span>
        </h3>
        <h3>
            <span>Nature</span>
            <span>Unforgettable eperiences</span>
        </h3>
        <h3>
            <span>Serenity</span>
            <span>When silence touches nature</span>
        </h3>
    </div>
 
</section>

 

CSS

Kita akan menghilangkan semua awalan vendor, tetapi Anda akan, tentu saja, menemukan mereka di file.
Kami akan pergi melalui style demo 1.

Tujuan kami adalah untuk pertama menyembunyikan tombol-tombol radio oleh menutupinya dengan label. Dalam web browser, klik pada label akan membuat kotak centang atau tombol radio masing dipilih. Memberikan ID untuk input, kita dapat menggunakan untuk atribut idref = dari label untuk referensi input masing-masing.

Kedua, kita ingin menempatkan semua gambarbackground dengan benar dan ketiga, kita ingin menunjukkan potongan gambar dan judul masing-masing saat mengklik label.

Jadi, mari kita pertama style bagian dan memberikan perbatasan putih dengan beberapa bayangan kotak kotak halus:


. cr-container {
width: 600px;
height: 400px;
position: relative;
margin: 0 auto;
border: 20px solid # fff;
box-shadow: 1px 1px 3px RGBA (0,0,0,0.1);
 }

Karena kita ingin menggunakan selector umum untuk “mencapai” irisan citra yang tepat dan judul, kita perlu menempatkan label sebelum mereka kontainer. Mari kita pastikan bahwa mereka berada di atas sebagai lapisan (z-index) dan mendorong posisinya ke bawah dengan menambahkan margin atas 350px;


.cr-container label{
font-style: italic;
width: 150px;
height: 30px;
cursor: pointer;
color: #fff;
line-height: 32px;
font-size: 24px;
float:left;
position: relative;
margin-top: 350px;
z-index: 1000;
}

Mari kita mendandani label dengan menambahkan lingkaran kecil. Kita akan membuat elemen semu dan tempat itu berpusat di balik teks label:


.cr-container label:before{
content:'';
width: 34px;
height: 34px;
background: rgba(130,195,217,0.9);
position: absolute;
left: 50%;
margin-left: -17px;
border-radius: 50%;
box-shadow: 0px 0px 0px 4px rgba(255,255,255,0.3);
z-index:-1;
}

Untuk menciptakan pemisahan antara panel kita akan menggunakan sedikit trik. Kita akan membuat unsur lain pseudo-element label dan memperluasnya untuk meregangkan atas panel. Menggunakan gradien, kita akan membuat baris “fade out” di bagian atas:


.cr-container label:after{
width: 1px;
height: 400px;
content: '';
background: linear-gradient(top, rgba(255,255,255,0) 0%,rgba(255,255,255,1) 100%);
position: absolute;
bottom: -20px;
right: 0px;
}

Panel terakhir tidak harus memiliki baris yang jadi kami hanya memberikan 0 width:


.cr-container label.cr-label-img-4:after{
width: 0px;
}

Sekarang, kita telah diurus tampilan label, kita dapat menyembunyikan, masukan:


.cr-container input{
display: none;
}

Setiap kali kita klik pada label, input masing-masing akan diperiksa. Sekarang kita dapat menargetkan label masing-masing menggunakan selector umum. Jadi, kita akan mengubah warna “selected” label:


.cr-container input.cr-selector-img-1:checked ~ label.cr-label-img-1,
.cr-container input.cr-selector-img-2:checked ~ label.cr-label-img-2,
.cr-container input.cr-selector-img-3:checked ~ label.cr-label-img-3,
.cr-container input.cr-selector-img-4:checked ~ label.cr-label-img-4{
color: #68abc2;
}

Dan kita juga akan mengubah bayangan warna background dan kotak perputaran semu elemen-nya:

.cr-container input.cr-selector-img-1:checked ~ label.cr-label-img-1:before,
.cr-container input.cr-selector-img-2:checked ~ label.cr-label-img-2:before,
.cr-container input.cr-selector-img-3:checked ~ label.cr-label-img-3:before,
.cr-container input.cr-selector-img-4:checked ~ label.cr-label-img-4:before{
    background: #fff;
    box-shadow: 0px 0px 0px 4px rgba(104,171,194,0.6);
}

Wadah untuk panel gambar akan menempati semua lebar dan akan diposisikan mutlak. Kontainer ini akan digunakan kemudian untuk mengatur gambar background ke gambar yang sedang dipilih. Kita perlu melakukan ini untuk memiliki gambar terlihat secara default. Jadi kami juga akan menambahkan beberapa sifat latar belakang sudah:


.cr-bgimg{
    width: 600px;
    height: 400px;
    position: absolute;
    left: 0px;
    top: 0px;
    z-index: 1;
    background-repeat: no-repeat;
    background-position: 0 0;
}

Karena kita memiliki empat panel / image, satu panel akan memiliki lebar 150 px (600 dibagi dengan 4). Panel akan mengambang kiri dan kita akan menyembunyikan nya karena kita tidak ingin melihat irisan yang keluar ketika kita geser :

cr-bgimg div{
    width: 150px;
    height: 100%;
    position: relative;
    float: left;
    overflow: hidden;
    background-repeat: no-repeat;
}

Setiap rentang slice akan diposisikan mutlak dan pada awalnya, mereka akan disembunyikan dengan menempatkan mereka keluar dari panel dengan kiri-150px:

</pre>
.cr-bgimg div span{
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0px;
    left: -150px;
    z-index: 2;
    text-indent: -9000px;
}

Sekarang, mari kita mengurus gambar wadah background dan slice gambar masing-masing:


.cr-container input.cr-selector-img-1:checked ~ .cr-bgimg,
.cr-bgimg div span:nth-child(1){
    background-image: url(../images/1.jpg);
}
.cr-container input.cr-selector-img-2:checked ~ .cr-bgimg,
.cr-bgimg div span:nth-child(2){
    background-image: url(../images/2.jpg);
}
.cr-container input.cr-selector-img-3:checked ~ .cr-bgimg,
.cr-bgimg div span:nth-child(3){
    background-image: url(../images/3.jpg);
}
.cr-container input.cr-selector-img-4:checked ~ .cr-bgimg,
.cr-bgimg div span:nth-child(4){
    background-image: url(../images/4.jpg);
}

Kita juga perlu memberikan posisi background yang tepat untuk irisan tergantung pada panel:


.cr-bgimg div:nth-child(1) span{
    background-position: 0px 0px;
}
.cr-bgimg div:nth-child(2) span{
    background-position: -150px 0px;
}
.cr-bgimg div:nth-child(3) span{
    background-position: -300px 0px;
}
.cr-bgimg div:nth-child(4) span{
    background-position: -450px 0px;
}

Ketika kita klik pada label kita hanya akan geser semua slice ke kanan:

.cr-container input:checked ~ .cr-bgimg div span{
    animation: slideOut 0.6s ease-in-out;
}
@keyframes slideOut{
    0%{
        left: 0px;
    }
    100%{
        left: 150px;
    }
}

… Semua kecuali bagian irisan dengan gambar background masing-masing. Mereka akan meluncur dari dalam -150px 0px untuk:


.cr-container input.cr-selector-img-1:checked ~ .cr-bgimg div span:nth-child(1),
.cr-container input.cr-selector-img-2:checked ~ .cr-bgimg div span:nth-child(2),
.cr-container input.cr-selector-img-3:checked ~ .cr-bgimg div span:nth-child(3),
.cr-container input.cr-selector-img-4:checked ~ .cr-bgimg div span:nth-child(4)
{
transition: left 0.5s ease-in-out;
animation: none;
left: 0px;
z-index: 10;
}
Terakhir, namun tidak sedikit, kami ingin gaya elemen judul h3 dan rentang mereka. Semua h3 akan memiliki transisi opacity dan begitu kita pilih opacity label / input masing-masing akan meningkat dari 0 ke 1:

.cr-titles h3{
position: absolute;
width: 100%;
text-align: center;
top: 50%;
z-index: 10000;
opacity: 0;
color: #fff;
text-shadow: 1px 1px 1px rgba(0,0,0,0.1);
transition: opacity 0.8s ease-in-out;
}
.cr-titles h3 span:nth-child(1){
font-family: 'BebasNeueRegular', 'Arial Narrow', Arial, sans-serif;
font-size: 70px;
display: block;
letter-spacing: 7px;
}
.cr-titles h3 span:nth-child(2){
letter-spacing: 0px;
display: block;
background: rgba(104,171,194,0.9);
font-size: 14px;
padding: 10px;
font-style: italic;
font-family: Cambria, Palatino, "Palatino Linotype", "Palatino LT STD", Georgia, serif;
}
.cr-container input.cr-selector-img-1:checked ~ .cr-titles h3:nth-child(1),
.cr-container input.cr-selector-img-2:checked ~ .cr-titles h3:nth-child(2),
.cr-container input.cr-selector-img-3:checked ~ .cr-titles h3:nth-child(3),
.cr-container input.cr-selector-img-4:checked ~ .cr-titles h3:nth-child(4){
opacity: 1;
}
<pre>

Ini hanya solusi yang cepat dan mungkin lebih baik untuk memeriksa, jika trik label didukung.

Dan itu saja! Ada banyak kemungkinan dari animasi yang bisa dilakukan di sini. Check out the demo untuk melihat lebih banyak.

Demos

  1. Demo 1: Slide to right
  2. Demo 2: Odd/even slide to left/right
  3. Demo 3: Odd/even slide up/down
  4. Demo 4: Scale up/down

 

Related Posts

  • WYSIWYG dan WYSIWYM: Keuntungan dan Kerugian dari Editor Teks
  • WP Theme Generator : Membuat Tema WordPress Tanpa Coding
  • WordPress Anti-Spam Plugins
  • Website Layouts: 50 Photoshop Tutorial Profesional
  • Website Design Inspiration Daftar Game Terbaik Desain Situs Web #34
Share This
2 Responses to Sliding Image Panels dengan CSS3
  1. suwardi

    April 4, 2012 at 3:06 am
    Reply

    I love Written Mary Lou, she inspiration my blog, she owner tympanus web devolepment (tympanus[dot]net), thanks u has written in Indonesian…
    I have you writting reference and it’s no’t bad ideas…I’m Sorry if English were bad, I’m still learning

  2. DiMam

    May 22, 2013 at 7:25 pm
    Reply

    nice thread gan :D

Cancel Reply
Leave a Reply





Categories

  • Article
  • CSS
  • CSS3
  • Dictionary
  • Download
  • Freebies
  • Graphic Design
  • HTML5
  • Infographic
  • jQuery
  • PSD Web Design
  • User Interface
  • Web Design
  • Web Design Inspiration
  • Website Tool
  • Wordpress

Archives

  • June 2013 (11)
  • May 2013 (26)
  • April 2013 (24)
  • March 2013 (26)
  • February 2013 (25)
  • January 2013 (33)
  • December 2012 (27)
  • November 2012 (21)
  • October 2012 (25)
  • September 2012 (21)
  • August 2012 (35)
  • July 2012 (44)
  • June 2012 (42)
  • May 2012 (37)
  • April 2012 (59)
  • March 2012 (45)

Recent Posts Widget

Contoh Webdesign dengan Google Maps Original Concept #48
May 29, 2013
Web Designing dengan Latar Belakang Video
May 28, 2013
Memahami Website Design Flat atau Desain Datar
May 28, 2013
Contoh Website Hitam Putih Website Designs 2013 #47
May 28, 2013
Kumpulan Resource CSS3 Animasi dan Transisi
April 19, 2013

Popular Posts

Cara Buat Slider Gambar menggunakan jQuery dan CSS3
57 Comments
30 Design Keren untuk Halaman 404 Error
42 Comments
Kumpulan Blogger Theme Anime [Freebies]
42 Comments
Kumpulan Plugin jQuery Image dan Sliders [Tutorial and Freebies]
36 Comments
25+ Contoh Website HTML5 dan CSS3 Terbaru #015
26 Comments

Recent Comments

  • @omjonie on Kumpulan Resource CSS3 Animasi dan Transisi
  • cssweaver on 50+ Web Designs Inspiration Penuh Warna #018
  • cssweaver on Contoh Webdesign dengan Google Maps Original Concept #48
  • XAMthone Plus on Contoh Webdesign dengan Google Maps Original Concept #48
  • XAMthone Plus on 50+ Web Designs Inspiration Penuh Warna #018

Backlink




Top Web-Design Sites


© Copyright 2012, Designed by CSS-weaver wkurniadhi@gmail.com