javascript设计水平滑动条(Firefox兼容版)

 //文章作者:心晴(欢迎转载,希望转载前通知一声:brothercat@126.com

前段时间看世界杯看疯了。浏览新浪世界杯网站时发现其中介绍每个球星的档案页面(例如:http://2006.sina.com.cn/star/zidane.shtml)中有个很好的水平滑动条投票系统,可惜是FLASH做的,自己试着用JS写了个,望高手指正 ^_^

 

<! DOCTYPE HTML PUBLIC  " -//W3C//DTD HTML 4.01 Transitional//EN " >
< html >

< head >
< meta http - equiv = " Content-Type "  content = " text/html; charset=gb2312 " >
< meta name = " Author "  content = " 心晴,Leon,叶茂,brothercat " >
< title > 水平滑动条 </ title >
< style type = " text/css " >
img.dragBtn
{position:absolute;border:0;cursor:E-resize}
hr.dragBar
{position:absolute;}
input.dragPar
{position:absolute;width:30px;height:18px;border:0}
</ style >
< script language = " javascript "  type = " text/javascript " >
/*
www.91do.net
designed by Leon
*/

var  ie = document.all;
var  ns6 = document.getElementById &&! document.all;

var  moveable = false ;
var  x,y;
var  targetObj;
var  index = 100 ;

var  _xL = 10 ;
var  _xR = 110 ;

function  dragBtn(id,t,l,w,h,mark)
{
  index 
= index+2;
  
this.zIndex  = index;

  
this.id      =id;
  
this.top     =t;
  
this.left    =l;
  
this.width   =w;
  
this.height  =h;
  
this.mark    =mark;
  
this.initDrag=initDrag;
  
this.initDrag();
}


function  initDrag()
{

//the string of drag button
  var strDragBtn_ie=""
                
+"<img src="http://www.91do.net/jscode/plus.gif" class="dragBtn" "
                
+"id=""+this.id+""
                
+"style="z-index:"+(this.zIndex+1)+";"
                
+"top:"+(this.top-3)+";"
                
+"left:"+this.left+";"
                
+"width:"+this.width+";"
                
+"height:"+this.height+";"
                
+"" />";
 
  
var strDragBtn_ns=""
                
+"<img src="plus.gif" class="dragBtn" "
                
+"id=""+this.id+""
                
+"style="z-index:"+(this.zIndex+1)+";"
                
+"top:"+this.top+";"
                
+"left:"+this.left+";"
                
+"width:"+this.width+";"
                
+"height:"+this.height+";"
                
+"" />";

//the string of drag bar
  var strDragBar_ie=""
                
+"<hr size="3" class="dragBar" "
                
+"style="z-index:"+(this.zIndex-1)+";"
                
+"top:"+(this.top+6)+";"
                
+"left:"+(this.left+8)+";"
                
+"width:"+(this.width+82)+";"
                
+"" />";
  
  
var strDragBar_ns=""
                
+"<hr size="3" class="dragBar" "
                
+"style="z-index:"+(this.zIndex-1)+";"
                
+"top:"+this.top+";"
                
+"left:"+(this.left+8)+";"
                
+"width:"+(this.width+82)+";"
                
+"" />";

//the string of drag parameter
  var strDragPar=""
                
+"<input type="text" class="dragPar" " 
                
+"id=""+this.mark+""
                
+"value=""+this.left+""
                
+"style="z-index:"+this.zIndex+";"
                
+"top:"+this.top+";"
                
+"left:"+(this.left+140)+";"
                
+"" />";

  
//var str=strDragBtn+strDragBar+strDragPar;
  var str=ie?strDragBar_ie+strDragBtn_ie+strDragPar:strDragBar_ns+strDragBtn_ns+strDragPar;
  
if(ie)
  
{
    document.body.insertAdjacentHTML(
'beforeEnd',str);
  }

  
else
  
{
    document.body.innerHTML
+=str;
  }


}


function  moveIt(e)
{
  
var coordinate;
//start moving
  if(moveable)
  
{
    coordinate
=ns6?tmp+e.clientX-x:tmp+event.clientX-x;

    
if(coordinate<_xL)
    
{
      targetObj.style.left
=_xL;
    }

    
else
    
{
       
if(coordinate>_xR)
       
{
         targetObj.style.left
=_xR;
       }

       
else
       
{
         targetObj.style.left
=coordinate;
       }

    }

 
  }

  targetObj.nextSibling.value
=Math.round((parseInt(targetObj.style.left)-10)/10);
  
return false
}


function  dragIt(e)
{
  
if (!ie&&!ns6) return;
  
var getObj=ns6?e.target:event.srcElement;
  
var topElement=ns6?"HTML":"BODY";
  
  
while(getObj.tagName!=topElement&&getObj.className!="dragBtn")
  
{
    getObj
=ns6?getObj.parentNode:getObj.parentElement;
  }


  
if(getObj.className=="dragBtn")
  
{
    moveable
=true;
    targetObj
=getObj;
    tmp
=parseInt(targetObj.style.left);
    x
=ns6?e.clientX:window.event.clientX;

    document.onmousemove
=moveIt;
    
//alert(x);
    return false;
  }

}


function  initdragbar()
{
  
var dragbtn1=new dragBtn('d1',10,10,20,20,'dp1');
  
var dragbtn2=new dragBtn('d2',30,10,20,20,'dp2');
  
var dragbtn3=new dragBtn('d3',50,10,20,20,'dp3');
  
var dragbtn4=new dragBtn('d4',70,10,20,20,'dp4');
  
var dragbtn5=new dragBtn('d5',90,10,20,20,'dp5');
}


window.onload
= initdragbar;
document.onmousedown
= dragIt;
document.onmouseup
= new  Function( " moveable=false " );
</ script >
</ head >

< body >

</ body >

</ html >

效果演示地址:http://www.91do.net/jscode/x-dragbar.htm

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值