Wah gak terasa udah tahun 2015 dan baru update ne gara-gara di kul
banyak tugas, (curhat dulu, hehhee). Setelah tugas dan UAS selesai admin
duduk-duduk dan minum secangkir kopi sambil muter otak kira-kira mau
update apa ya, emm, dan ahirnya saya tetapkan untuk buat tutorial desain
progress. Untuk hal ini anda wajib ne mengenal siapa tu mbah jquery
(library javascript),hahaha bagi yang belum sapa dulu, kenalan gitu sama
mbah jquery. dan tentunya Css juga harus wajib mengerti, setidaknya
basicnya.
Lanjut ke tutorial ya, siapkan editor kesayangan anda, apakah wajib? ya
donk, lah kalau egak mau pake apa? maksudnya kesayangan? ya kalau gak
sayang gak mood ngerjainnya nanti.
Setelah itu buat halaman utamanya, masukkan kode HTML di bawah ini, dan
jangan lupa library javascriptnya itu di atur dimana anda menaruhkan
library.
index.php
- <!DOCTYPE HTML>
- <head>
- <meta http-equiv="content-type" content="text/html" />
- <meta name="author" content="mmlpro" />
-
- <script type="text/javascript" src="jquery-1.10.2.js"></script>
-
- <title>desain progress</title>
- </head>
-
- <body>
-
- <h1>design progress <sub> by:mmlpro</sub></h1>
-
- <div id="konten">
- <button value="25">25%</button>
- <button value="50">50%</button>
- <button value="75">75%</button>
- <button value="100">100%</button>
- <a class="run">Run</a>
-
- <div id="progress"><p>0%</p></div>
- </div>
-
- </body>
- </html>
Udah? cepet banget, padahal aku nulisnya aja lumayan beberapa menit. hehehe
Sekarang cssnya silahkan dicopy. Simpan dengan nama style.css dan
panggil css dengan cara external, taruh di dalam element head. Manggil
cssnya seperti ini.
<link href="style.css" rel="stylesheet"/>
style.css
- body{margin:0;padding:0;background:#eeeeee;font-family: 'lucida grande',sans,verdana,arial,sans-serif;font-size:14px;color:#555555;}
- h1{
- font-weight: normal;
- text-align: center;
- position: relative;
- }
- h1 sub{
- font-size: 12px;
- position: absolute;
- bottom:3px;
- }
- #konten{
- background-color: #ffffff;
- padding:10px 5px;
- width:400px;
- margin: 0 auto;
- }
- a{
- border:1px solid #bbb;
- background-color: #eeeeee;
- cursor: pointer;
- padding:0px 5px;
- position: relative;
- }
- a:after{
- content:"";
- position: absolute;
- top:0px;
- bottom:0px;
- right:-10px;
- border-left:10px #eeeeee solid;
- border-top:7px solid transparent;
- border-bottom:7px solid transparent;
- }
- a:before{
- content:"";
- position: absolute;
- top:-1px;
- bottom:-1px;
- right:-11px;
- border-left:11px #bbb solid;
- border-top:7px solid transparent;
- border-bottom:7px solid transparent;
- }
- button{
- border:1px solid #ccc;
- background-color: #eeeeee;
- cursor: pointer;
- }
- #progress{
- background-color: #f5f5f5;
- border:1px solid #ccc;
- margin: 10px 0px;
- border-radius: 7px;
- -webkit-border-radius: 7px;
- -moz-border-radius: 7px;
- border-radius: 7px;
- }
- #progress p{
- text-align: center;
- font-weight: bold;
- margin:0;
- padding:3px 0px;
- width:0;
- max-width: 100%;
- -webkit-border-radius: 7px;
- -moz-border-radius: 7px;
- border-radius: 7px;
- }
- .bgColor1{
- background-color: #DF8E84;
- color:#ffffff;
- }.bgColor2{
- background-color: #C6DF84;
- color:#222;
- }.bgColor3{
- background-color: #7ED777;
- color:#ffffff;
- }
Tambahkan script jquerynya seperti ini, taruh di file utama dan didalam element head seperti saat manggil css tadi.
- <script type="text/javascript">
- $(function(){
- var progress=$("#progress");
- var kontentProgress=$("#progress p");
- var button=$("button");
- var runaway=$(".run");
- var timer=null;
-
- //jalankan otomatis
- runaway.click(function(){
- var i;
- i=0;
- function tambahProgress(){
- i++;
- kontentProgress.css({"width":i+"%"}).text(i+"%");
- bgcolor(i);
- timer=setTimeout(tambahProgress, 50);
- if(i==100){
- clearTimeout(timer);
- kontentProgress.text("Loading selesai");
- }
- }
- timer=setTimeout(tambahProgress, 50);
- });
-
- //jika button diklik
- button.click(function(){
- clearTimeout(timer);
- var nilaiPersen=$(this).val();
- kontentProgress.css({"width":nilaiPersen+"%"}).text(nilaiPersen+"%");
- bgcolor(nilaiPersen);
- });
-
-
- //pengaturan bacground dan warna
- function bgcolor(nilai){
- if(nilai<35){
- kontentProgress.removeClass();
- kontentProgress.addClass("bgColor1");
- }else if(nilai>35 && nilai<60){
- kontentProgress.removeClass();
- kontentProgress.addClass("bgColor2");
- }else if(nilai>60 && nilai<=100){
- kontentProgress.removeClass();
- kontentProgress.addClass("bgColor3");
- }
- }
- });
-
- </script>
Nah coba di jalankan file uatamanya dengan browser kesayangan anda.
Kalau aku sih pas buatnya makek google chrome (udah kebiasaan pakai
google chrome)
Gimana? Jalan atau tidak? jika ada yang eror bisa di tanyakan kok. iya, silahkan saja.
Keterangan :
Disini saya membuatnya untuk simulasi saja. Silahkan atur sendiri dari
mana progress ini mendapatkan nilai, entah dengan cara eksekusi waktu
ataupun dengan mendeteksi saat eksekusi file. Kalau di tutorial ini saya
mengatur nilai progress dari value button dan juga dari looping di
setTimout.
Untuk bagian mendapatkan nilai dengan cara klik button, nilai persen di
ambil dari value button yang di klik. Coba anda lihat discript jquery
bagian button click. terdapat deklarasi variable seperti ini.
var nilaiPersen=$(this).val();
Itu untuk mendapatkan nilai(value) dari button yang di klik. Nah untuk
memasukkan nilai persen ke progressnya dan juga nilai panjangnya
progress berjalan saya gunakan ini.
kontentProgress.css({"width":nilaiPersen+"%"}).text(nilaiPersen+"%");
Maksud dari script code di atas adalah mengatur panjang element
p yang berada di dalam selector
#progress menggunakan properti css width, dan megatur text di dalam element
p.
Anda melihat ini?
bgcolor(nilaiPersen);, itu saya gunakan untuk mengeksekusi
Function bgcolor
dan mengirimkan nilainya. Function ini saya gunakan untuk mengatur
warna background dan text dan didalamnya terdapat if else statement yang
akan menerima nilai progress dan mengubah warna progress setiap nilai
yang sudah di tentukan di if else. Pengambilan/pengaturan warna dari
progress saya gunakan teknik addClass dan removeClass yang nantinya akan
menambah class keelement dan menghapus class dielement.
Di element run jika diklik progressnya akan berjalan sendiri saya
gunakan setTimeout. Untuk memasukkan nilai ke progress tekniknya sama
seperti tadi, cuma bedanya disini mendapatkan nilainya dari looping dan
nantinya akan menghentikan setTimeout bila variable
i sudah mencapai nilai 100 dengan tekik if statement condisi itu.
clearTimeout(timer);
code inilah yang untuk menghentikan setTimeoutnya. Perhatikan deklarasi
var yang di buat diatas sendiri, semua berhubungan dengan setTimoutnya
kan maka clear timoutnya ditujukan ke timer.
Untuk perubahan warna sama seperti button klik tadi, memanggil
function bgcolor(i); dan mengirimkan nilainya dari looping.
Yah, segitu aja yang diterangkan, jika ada yang kurang jelas bisa
ditanyakan. Lewat facebook atau kontak lainnya. Terimakasih sudah
berkunjung.
DOWNLOAD
re-post from http://mmlpro.com/23/-membuat-dan-mendesain-progress-bar-sendiri.html