Read, With the Name of Your Lord Who Created

Archive for February 2nd, 2008

Javascript: Adding OnMouseOver And OnMouseOut Using DOM

Posted by triaslama on February 2, 2008

The DOM (Document Object Model) is a standard way to access a document within a browser. The DOM could be Core DOM, HTML DOM, XML DOM. The DOM can be very handy and useful when we need to access the specific elements of the document and add some effects to them.

The two of the most useful of the DOM methods could be getElementById and getElementsByTagName. The getElementById will return an element that specified as a parameter in getElementById DOM method. The parameter that passed is a string that represents the ID of an element. The getElementsByTagName -that receive one parameter, the element name as string- will return array that represents elements in the document with the tag name specified as a parameter in getElementsByTagName method.

Here a simple example utilization of getElementById and getElementsByTagName method to add an effect -change the background color- when the mouse cursor over a <li> element and reset the background color when then mouse cursor out a <li> element:

SimpleDom.htm

<html>
<head>
<title>Test Something</title>
<script lang=”javascript” type=”text/javascript”>
window.onload = function()
{
var lis = document.getElementsByTagName(“li”);

for (var i=0;i<lis.length;i++) {
lis[i].onmouseover = function()
{
this.style.backgroundColor = “gainsboro”;
};
lis[i].onmouseout = function()
{
this.style.backgroundColor = “white”;
};
}
};
</script>
</head>
<body>
<ul>
<li>First Element</li>
<li>Second Element</li>
<li>Third Element</li>
</ul>
</body>
</html>

Let’s look at the code in more details. The body of the document consist of an unordered list (ul). The <ul> element have three list item <li> element as childs. The scenario is simple change the background color of <li> element when the mouse is moved over around them and reset the background color of <li> element when the mouse is moved out of them.

To attain this functionalities we using Javascript and DOM to access the document specified in the <body> element. The first line of our Javascript code is window.onload, this function is executed when the window object is fully loaded, in the other word the window.onload executed only when the elements inside a document has been rendered.

To handle window.onload we create an inline function that tells what must be done when the page has been loaded. In this case we will retrieve all of <li> element in a document using getElementsByTagName DOM method and save this element in a variable named lis.

var lis = document.getElementsByTagName(“li”);.

The next step iterate through all of <li> element inside lis variable:

for (var i=0;i<lis.length;i++).

But the most important part here we install two events for each of <li> element, onmouseover (happens when the mouse cursor over an <li> element) and onmouseout (happens when the mouse cursor out from an <li> element).

To handle the onmouseover event we create an inline function that changes the background color of <li> element when the mouse cursor over it.

lis[i].onmouseover = function()
{
this.style.backgroundColor = “gainsboro”;
};

To handle event when the mouse cursor out of an <li> element we create an inline function that reset the background color back to its original color.

lis[i].onmouseout = function()
{
this.style.backgroundColor = “white”;
};

The word this above refers to the <li> element that being iterated. When everything is ready and we move the cursor over an <li> element we should see that the background color of <li> that is being hovered change to gainsboro, and the background color will back to white when the mouse cursor leaves the specified <li> element.

The Javascript and DOM can have more functionalities and usages I hope this simple article will give me and all the readers a clue about the advantage of DOM.

Posted in DOM, Javascript | Tagged: , , , , , | 27 Comments »

Jakarta Banjir Lagi

Posted by triaslama on February 2, 2008

Baru beberapa bulan tinggal di Jakarta akhirnya saya harus merasakan juga pengalaman kebanjiran di ibukota ini. Berawal dari pagi hari ketika hujan mulai turun -belum terbayang kalau hujan akan semakin deras dan mengakibatkan banjir- karena hujan membuat lalu lintas lebih macet dari biasanya.

Perjuangan untuk sampai ke kantor semakin terasa setelah busway -transportasi yang seharusnya relatif terbebas dari macet- ikutan terjebak macet dan untuk beberapa saat penjualan tiket busway ditutup sementara karena bus transjakarta yang ditunggu – tunggu tak kunjung tiba. Pagi yang penuh penantian dan perjuangan, untuk beli tiket bus pun harus antri, belum lagi nunggu busnya. Karena terlanjur sampai di halte dan di luar pun hujan turun lumayan deras akhirnya mau nggak mau harus nunggu juga di dalam halte.

Pada saat antri ada seorang penumpang yang ikut antri bilang kurang lebihnya “wah, harus ngulang satu semester nih”. Dalam pikiranku terbayang apa yang harus dialami oleh mahasiswa seperti dia atau warga Jakarta pada umumnya, gara – gara kemacetan yang sukar diprediksi seseorang mungkin harus rela mengulang kuliahnya satu semester karena dia tidak bisa ikut ujian, alasannya: terjebak macet!

Kembali ke kisah awal, setelah melalui proses menunggu dan antri akhirnya tiba juga bus transjakarta yang kunanti. Akhirnya aku bisa naik bis, penantian kedua pun dimulai… Akhirnya saya merasakan bagaimana rasanya macet total itu untuk menempuh jarak yang mungkin kurang dari satu kilometer perlu waktu sekitar setengah jam!!!

Perjalanan menjadi lama dan lambat di beberapa titik tampak air meninggi dan semakin tinggi beberapa motor dan mobil mulai tergenang dan macet. Beruntung aku masih bisa sampai kantor Pusintek Depkeu meskipun telat sekitar satu jam (mungkin lebih) dari seharusnya.

Waktu pun mulai beranjak siang, hujan belum reda tapi malah tampak makin deras. Saat itu seorang teman ditelfon dari rumah yang ngasih tahu kalau air sudah mulai masuk garasi rumahnya dan dia diminta pulang saja, belum ketemu cara nemuin jalur aman untuk pulang dia dapat kabar lagi kalau air sudah menggenangi setengah garasi rumahnya! Suasana pun mulai berubah dan hujan belum juga reda -jangan – jangan Jakarta bakalan banjir besar lagi kayak taun lalu-

Begitu hujan reda pada sore hari akhirnya teman ku menawarkan satu rencana “sebaiknya kita pulang saja selagi bisa”, usul bagus dan aku juga setuju. Keluar dari kantor Pusintek Departemen Keuangan RI kami langsung menuju halte busway terdekat. Sesampainya di halte kami baru tahu karena banjir bustransjakarta tidak bisa beroperasi!!!

Akhirnya kami harus jalan kaki menelusuri jalur busway dari halte Budi Utomo sampai halte Central Senen, sampai di Senen kami naik ojek oleh tukang ojek kami diberitahu bahwa hanya bisa mengantar sampai sekitar Cempaka Putih karena selanjutnya sudah tergenang air. Langsung terbersit dipikiranku “wah terus gimana cara untuk bisa sampai rumah, masak harus berenang???”. Akhirnya kami menerobos keramaian dan terus berjalan hingga bisa sampai ITC Cempaka Mas lalu kami memutuskan untuk beristirahat dan makan dulu di mall ini, siapa tahu nanti kami harus menerobos banjir dengan jalan kaki sehingga ada baiknya kalau perut tidak kosong.

Akhirnya kami memutuskan untuk menerobos banjir dan berusaha untuk sampai rumah secepatnya dan kami mulai berjalan kaki menelusuri jalan yang belum tergenang air. Tetapi keberuntungan rupanya masih menaungi kami saat akan mulai menerobos genangan air yang semakin dalam ada bis besar yang berhenti dan menawarkan jasanya bagi yang pingin menerobos banjir, langsung saja kami menerima tawaran tersebut dan mulailah perjalanan berganti dari jalan kaki menjadi naik bis.

Di dalam bis seperti berada di dalam sebuah kapal, betapa tidak kanan kiri yang terlihat hanya genangan air. Tidak terlihat lagi badan jalan, trotoar, selokan bahkan sungai sekalipun. Perlahan – lahan bis yang kami naiki mulai berjalan dan akhirnya sampai juga ke persimpangan menuju ke arah rumah. Tapi ternyata jalan ke arah rumah sudah terlanjur tergenang akhirnya aku harus berjalan kaki menerobos air menggenang yang ketinggiannya mencapai pinggang orang dewasa.

Akhirnya dengan berjalan bersama seorang teman dan beberapa orang lain aku bisa juga sampai di rumah dengan selamat dengan celana yang basah kuyup karena terendam.

Semoga lain kali Jakarta lebih baik lagi dalam menangani bencana serupa…

Posted in News | Leave a Comment »