2012/11/9 16:04:14作者:佚名来源:网络
【实例名称】
JS设计滑动条效果(二)
【实例描述】
为了增加页面的美观性,可使用滑动条来显示百分比,而且还可以拖曳滑动条改变百分比的大小。本例学习如何实现这种功能的滑动条。
【实例代码】
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <title>滑块条-学无忧(www.xue51.com)</title> <style type="text/css"> #trackBar { background-color:#666666; }#trackBar_slider { border:1px solid #808080; background-color:#FFFFFF; }#trackBar1 { background-color:blue; }#trackBar1_slider { border:1px solid #808080; background-color:#FFFFFF; } </style> </head> <body> <div id="info"></div> <div id="trackBar1"> </div> <script type="text/javascript" language="javascript"> //对象未创建完成之前,不能在函数之中用this function setTrackBar(trackBar, min, max, barPos) //指定的div,最小值,最大值和位置 { this.trackBar = trackBar; //承载滑动条的对象 this.sliderIdStr = trackBar + "_slider"; //滑动条 this.trackBarId = document.getElementById(this.trackBar); //获取div this.sliderId = null; //未创建滑动条对象 this.min = (min>=0)?min:0;//最小值不能小于0 this.max = (max>=min)?max:min;//最大值必须大于最小值 this.barPos = (barPos>=min && barPos<=max)?barPos:min; //位置必须在最大和最小之间
this.orientation = "h"; //设置对象和滑动条的位置 this.trackBarWidth = 100; this.trackBarHeight = 10 this.sliderWidth = 10; this.sliderHeight = 10; this.Create = Create; this.draging = false; this.offset = 0;
this.BeforeDrag = BeforeDrag;//绑定滑动事件 this.OnDrag = OnDrag; this.EndDrag = EndDrag; } function Create(trackBar1)//创建滑动条的方法 { this.trackBarId.innerHTML = "<div id=\"" + this.sliderIdStr + "\"" + " onmousedown=\"javascript:BeforeDrag(" + trackBar1 + "); \"" + " style=\"position:relative;cursor:n-resize;\"></div>"; this.sliderId = document.getElementById(this.sliderIdStr); this.sliderId.style.pixelTop = this.trackBarHeight - ((this.trackBarHeight-this.sliderHeight)*this.barPos)/ (this.max-this.min) - this.sliderHeight; this.trackBarId.style.width = this.trackBarWidth; //设置滑动条的初始位置 this.trackBarId.style.height = this.trackBarHeight; this.sliderId.style.width = this.sliderWidth; this.sliderId.style.height = this.sliderHeight;
return true; }var curTrackBar = null;//准备拖拽 function BeforeDrag(trackBar) { if (event.button != 1) //如果不是鼠标左键,则返回 { return; } document.body.style.cursor = "n-resize"; //鼠标的样式 curTrackBar = trackBar; curTrackBar.draging = true; curTrackBar.offset = curTrackBar.trackBarId.style.pixelTop + curTrackBar.sliderId.style.pixelTop+curTrackBar.sliderId.offsetHeight- event.clientY; } function OnDrag() //实现拖拽的方法 { if(!curTrackBar || !curTrackBar.draging) { return; } event.returnValue = false; var phyPos = 0; if (curTrackBar.orientation !== "h") { phyPos = curTrackBar.trackBarId.style.pixelTop + curTrackBar.trackBarId.offsetHeight - event.clientY - curTrackBar.offset; if (phyPos <= 0) { phyPos = 0; //如果拖动到最底端 } else if(phyPos >= (curTrackBar.trackBarId.offsetHeight- curTrackBar.sliderId.offsetHeight)) { phyPos = curTrackBar.trackBarId.offsetHeight - curTrackBar.sliderId.offsetHeight; } //改变滑动条的位置 curTrackBar.sliderId.style.pixelTop = curTrackBar.trackBarId.offsetHeight - phyPos - curTrackBar.sliderId.offsetHeight; curTrackBar.barPos = parseInt(((curTrackBar.max-curTrackBar.min)* phyPos/(curTrackBar.trackBarId.offsetHeight-curTrackBar.sliderId.offsetHeight))); }OnTrackBarTxt(); } function EndDrag()//结束拖拽 { if (!curTrackBar) { return; } document.body.style.cursor = "default"; curTrackBar.draging = false; }function OnTrackBarTxt() //拖拽时,改变滑动条的值 { document.getElementById("info").innerHTML = curTrackBar.barPos+ " / " + curTrackBar.max; }document.onmousemove = OnDrag; //鼠标移动时,实现拖拽-开始滑动 document.onmouseup = EndDrag; //鼠标离开时,结束拖拽-即结束滑动 var trackBarObj1 = new setTrackBar("trackBar1", 0, 100,100); //配置滑动条,指定最小值和最大值 trackBarObj1.orientation = "v";//滑动条的方法-垂直 trackBarObj1.trackBarWidth = 15;//对象的宽度 trackBarObj1.trackBarHeight = 100;//对象的高度 trackBarObj1.sliderWidth = 15;//滑动条的宽度 trackBarObj1.sliderHeight = 10; //滑动条的高度 trackBarObj1.Create("trackBarObj1");//创建滑动条 </script> </body> </html>
【运行效果】
【难点剖析】
本例提供了关于滑动条的5个常用方法。“setTrackBar”方法用来设置滚动条的最小值、最大值和位置等。“Create”方法用来创建滑动条的承载器和滑动条本身。“BeforeDrag”方法主要判断用户的操作是否为“拖曳”。“OnDrag”方法表示拖曳过程中滑动条的改变。“EndDrag'’方法用来实现拖曳完成后的一些状态恢复。这些方法可以直接移植到其他项目中使用。
【源码下载】
为了JS代码的准确性,请点击:JS设计滑动条效果(二) 进行本实例源码下载
标签: 滑动条 进度条
相关文章
够快云库v6.3.24.12120免费版
详情光影魔术手官方版 v4.7.1
详情ADsafe净网大师v5.4.408.7000
详情网易邮箱大师v5.3.2.1015电脑版
详情foxmailv7.2.25.375
详情暴风影音5v5.92.0824.1111
详情暴风影音v5.92.0824.1111
详情BitComet(比特彗星)v2.13.4.13Beta2
详情路由优化大师v4.5.31.267
详情茄子快传电脑版 v5.1.0.7
详情搜狐影音 v7.2.1.0官方版
详情搜狐影音客户端 v7.2.1.0
详情迅雷影音官方版 v7.0.3.92
详情cbox央视影音v6.0.3.4经典版
详情potplayer播放器v1.7.22496
详情Daum PotPlayer(已集成直播源)v1.7.22496绿色纯净美化便携增强版
详情天国拯救2黄金版 Build.17149332-1.1.1.11377中文版
详情燕云十六声电脑版 v1.9.31
详情潜行者2:切尔诺贝利之心 Build.16805297豪华中文版
详情模拟农场25豪华中文版
详情迷你世界电脑版 v1.41.00
详情骑马与砍杀2 v1.2.9.34019免费版
详情侠盗猎车手圣安地列斯 v1.0最新中文版
详情整蛊白云 v1.0
详情地平线4 v1.476中文版
详情圣女战旗中文v1.1.9绿色免安装版
详情狂怒2中文
详情红色警戒2共和国之辉电脑版 v1.0
详情模拟人生4 v1.0中文免费版
详情蛊婆v1.0免费版
详情风起云涌2越南中文版 v1.6Steam正版
详情使命召唤17官方中文版 v1.0
详情松鼠记账v6.8.1安卓版
详情掌门好家长v5.10.0手机版
详情惠买v5.4.46官方版
详情快快查汉语字典综合官方版V5.0.0官方版
详情尚德机构v7.8.1官方版
详情头像精灵v3.7.0美化版
详情运满满货主版v7.92.1.0安卓版
详情运满满司机版app手机版v8.92.1.0安卓版
详情网易蜗牛读书水墨版V1.9.78
详情泼辣修图免费版v6.11.3安卓版
详情泼辣修图安卓版v6.11.3
详情汽车大师v7.15.5技师版
详情步多多v2.8.1安卓版
详情新浪新闻v8.43.7官方版
详情拓词v14.21安卓版
详情思尔健康v3.1.42安卓版
详情