ตัวอย่างต่อไปนี้เป็นเพียงส่วนของการฝึกสร้าง scrollbar แนวตั้ง จากรูปภาพที่กำหนดเอง ด้วยเทคนิค css sprite image และ jQuery ส่วนการประยุกต์ใช้ เช่น การทำ scrollbar แนวนอน, การนำไปใช้กับ textarea ,iframe,div และอื่นๆ จะขอกล่าวภายหลัง
ตัวอย่างผลลัพธิ์ สามารถคลิกเลื่อนขึ้นลง หรือลากเลื่อนขึ้นลงได้
รูปที่ใช้
|
|
CSS code
<style type="text/css">
ul#myUIscroll{
margin:0;padding:0;
list-style:none;
width:20px;
display:block;
}
ul#myUIscroll li{
margin:0;padding:0;
list-style:none;
width:20px;
float:left;
clear:both;
}
/* css สำหรับกำหด ปุ่ม เลื่อนขึ้น */
ul#myUIscroll li.upArrow{
background:url(images/myscrollBar.png) 0 0 no-repeat;
height:20px;
cursor:pointer;
}
/* css สำหรับกำหดแถบกลาง */
ul#myUIscroll li.middleBar{
background:url(images/myscrollBar.png) -40px 0 repeat-y;
height:200px; /* สำหรับกำหดนความสูงของ scrollbar */
}
/* css สำหรับกำหด ปุ่ม เลื่อนลง */
ul#myUIscroll li.downArrow{
background:url(images/myscrollBar.png) -20px 0 no-repeat;
height:20px;
cursor:pointer;
}
/* css สำหรับกำหด ปุ่ม เลื่อนตรงกลาง */
div.faceBar{
position:absolute;
display:block;float:left;
width:20px;height:20px;
cursor:pointer;
background:url(images/myscrollBar.png) -60px 0 no-repeat;
}
</style>
HTML code
<ul id="myUIscroll"> <li class="upArrow"></li> <li class="middleBar"><div class="faceBar"></div></li> <li class="downArrow"></li> </ul>
Javascript Code
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
google.load("jquery", "1.3.2");
</script>
<script type="text/javascript">
$(function(){
$("div.faceBar").mousedown(function(event){
var locateY=event.pageY;
var obj_locateY=$(this).offset().top;
var diff_y=locateY-obj_locateY;
var minY=$("li.middleBar").offset().top;
var maxY=$("li.downArrow").offset().top;
maxY-=$("li.downArrow").height();
$(this).mousemove(function(event){
locateY=event.pageY;
obj_locateY=$(this).offset().top;
new_locateY=locateY-diff_y;
if(new_locateY>=minY && new_locateY<=maxY){
$(this).css({
top:new_locateY
}).bind("mouseup mouseout",function(){
$(this).unbind("mousemove");
});
}
});
});
$("li.downArrow").click(function(){
var new_locateBar=$("div.faceBar").offset().top;
var minY=$("li.middleBar").offset().top;
var maxY=$("li.downArrow").offset().top;
new_locateBar+=20;
if(new_locateBar>=minY && new_locateBar<maxY){
$("div.faceBar").css({
top:new_locateBar
});
}
});
$("li.upArrow").click(function(){
var new_locateBar=$("div.faceBar").offset().top;
var minY=$("li.middleBar").offset().top;
var maxY=$("li.downArrow").offset().top;
new_locateBar-=20;
if(new_locateBar>=minY && new_locateBar<maxY){
$("div.faceBar").css({
top:new_locateBar
});
}
});
});
</script>