js版sliderBar(滑动条)控件

js|控件

支持实时监控sliderbar的数据,允许有callback回调的函数,有示例

1、可自定样式SetStyle()
2、带有onSroll功能
3、有setSldPoint(设置位置)接口
4、有getSldPoint(取得位置)接口
5、可自己设置sliderBar的最大值(不是sliderbar的长度,而是值)
6、自定义微调功能(setIncrement(10)),默认为5;

代码有点乱,接口不能清晰的看出来,不好意思了,先用着吧

运行代码框

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> never Slider Bar </TITLE><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT="never-online, blueDestiny"><META NAME="Keywords" CONTENT="javascript Slider Bar"><META NAME="Description" CONTENT="javascript Slider Bar"><style>body { background-color:#fff; text-align:center; font-family:verdana; font-size:9pt; }.sliderObj { width:350px; height:25px; background-color:#fff; border:1px solid #666666; }.sliderBar { width:20px; background-color:#666666; border:1px solid #333; }.sliderBtn { width:30px; background-color:#666666; color:#fff; border:1px solid #000000; }.r-sliderObj { width:300px; height:25px; background-color:#fff; border:1px solid #CC0000; }.r-sliderBar { width:20px; background-color:#CC0000; border:1px solid #333; }.r-sliderBtn { width:20px; background-color:#CC0000; color:#fff; border:1px solid #000000; }.g-sliderObj { width:300px; height:25px; background-color:#fff; border:1px solid #006600; }.g-sliderBar { width:20px; background-color:#006600; border:1px solid #333; }.g-sliderBtn { width:20px; background-color:#006600; color:#fff; border:1px solid #000000; }.b-sliderObj { width:300px; height:25px; background-color:#fff; border:1px solid #003399; }.b-sliderBar { width:20px; background-color:#003399; border:1px solid #333; }.b-sliderBtn { width:20px; background-color:#003399; color:#fff; border:1px solid #000000; }</style></HEAD><BODY><p><div id="s1"></div><p><div id="d1">r</div><p><div id="s2"></div><p><div id="d2">g</div><p><div id="s3"></div><p><div id="d3">b</div><p><div id="color" class="sliderObj"></div><SCRIPT LANGUAGE="JavaScript"><!--/*===============================================================//// Module : never SliderBar// Script by : never-online, blueDestiny// Updated : 2006-5-12// Copyright : Miracle technology all reserved// Website : http://www.never-online.net// Email : blueDestiny@126.com// Blog : http://blog.csdn.net/blueDestiny// Comment : if you using never SliderBar please hold// these copyrights.//// compatible : only for IE// History : none//================================================================*/function neverSliderBar(id,callback) { with(this) { this.$ = document.getElementById || document.all; this.sldID = id; this.sldObj = null; this.instance = this; this.barStyle = "sliderBar"; this.objStyle = "sliderObj"; this.btnStyle = "sliderBtn"; this.sldBar = null; this.sldBtnL = null; this.sldBtnR = null; this.sldPoint = null; this.sldMoved = false; this.sldClicked = false; this.callback = callback; this.sldObjOffset = null; this.sldBarOffset = null; this.callbackArg = Array.prototype.slice.call(arguments,2); this.sldMax = 100; this.sldIncrement = 5; this.sldPoint = 0; //instance.init.call(this,id);}};neverSliderBar.prototype.setObjStyle=function(classname) { with(this){ objStyle=classname;}};neverSliderBar.prototype.setMaxPoint=function(maxpoint) { with(this){ sldMax=maxpoint;}};neverSliderBar.prototype.setBtnStyle=function(classname) { with(this){ btnStyle=classname;}};neverSliderBar.prototype.setBarStyle=function(classname) { with(this){ barStyle=classname;}};neverSliderBar.prototype.setStyle=function() { with(this){ if (arguments[0]) barStyle=arguments[0]; if (arguments[1]) btnStyle=arguments[1]; if (arguments[2]) objStyle=arguments[2];}};neverSliderBar.prototype.setIncrement=function(increment) { with(this){ if (isNaN(parseInt(increment))) return; sldIncrement = parseInt(increment);}};neverSliderBar.prototype.getSldPoint=function() { with(this){ sldBarOffset = Offset(sldBar); sldObjOffset = Offset(sldObj); var sldObjwidth = sldObjOffset.w-sldBarOffset.w; var sldBarwidth = sldBarOffset.l-sldObjOffset.l; var sldLocation = parseInt(sldBarwidth/sldObjwidth*sldMax); return sldLocation;}};neverSliderBar.prototype.setSldPoint=function(point) { with(this){ if (isNaN(parseInt(point))) return; if (point<0) point=0; if (point>sldMax) point=sldMax; var sldObjwidth = sldObjOffset.w-sldBarOffset.w; var sldBarwidth = sldBarOffset.l-sldObjOffset.l; sldPoint = parseInt(point); var p = parseInt(sldPoint*sldObjwidth/sldMax)+sldObjOffset.l+1; sldBar.style.left = p; instance.getSldPoint();}};neverSliderBar.prototype.init=function() { with(this){ if ($(sldID + '__BtnL') && $(sldID + '__BtnR') && $(sldID + '__Bar')) { sldBtnL = $(sldID + '__BtnL'); sldBar = $(sldID + '__Bar'); sldBtnR = $(sldID + '__BtnR'); } else { sldBtnL = document.createElement("BUTTON"); sldBtnL.id = sldID + '__BtnL'; sldBar = document.createElement("DIV"); sldBar.id = sldID + '__Bar'; sldBtnR = document.createElement("BUTTON"); sldBtnR.id = sldID + '__BtnR'; document.body.appendChild(sldBtnL); document.body.appendChild(sldBar); document.body.appendChild(sldBtnR); } //------------------------------------------------------------------- sldObj = $(sldID); sldObj.className = objStyle; sldBarOffset = Offset(sldBar); sldObjOffset = Offset(sldObj); //------------------------------------------------------------------- sldBtnL.value = "<<"; sldBtnL.className = btnStyle; sldBtnL.style.position = "absolute"; //------------------------------------------------------------------- sldBtnR.value = ">"; sldBtnR.className = btnStyle; sldBtnR.style.position = "absolute"; //------------------------------------------------------------------- sldBar.className = barStyle; sldBar.style.position = "absolute"; sldBar.style.top = sldObjOffset.t; sldBar.style.height = sldObjOffset.h; sldBar.style.left = sldObjOffset.l; instance.fixed(); //------------------------------------------------------------------- sldObj.onmousedown = function() {instance.handleObjBefore()}; sldObj.onmouseup = function() {instance.handleObjAfter()}; //------------------------------------------------------------------- sldBtnL.onmousedown = function() {instance.handleBtnClick('l')}; sldBtnR.onmousedown = function() {instance.handleBtnClick('r')}; sldBtnL.onfocus = function() {this.blur()}; sldBtnR.onfocus = function() {this.blur()}; //------------------------------------------------------------------- sldBar.onmousedown = function() {instance.handleSldDragStart()}; sldBar.onmousemove = function() {instance.handleSldDrag()}; sldBar.onmouseup = function() {instance.handleSldDragEnd()};}};neverSliderBar.prototype.fixed=function() { with(this){ sldBarOffset = Offset(sldBar); sldObjOffset = Offset(sldObj); var sldBtnLOffset = Offset(sldBtnL); sldBtnL.style.left = sldObjOffset.l-sldBtnLOffset.w; sldBtnL.style.top = sldObjOffset.t; sldBtnL.style.height = sldObjOffset.h; //------------------------------------------------------------------- sldBtnR.style.left = sldObjOffset.l+sldObjOffset.w; sldBtnR.style.top = sldObjOffset.t; sldBtnR.style.height = sldObjOffset.h; //------------------------------------------------------------------- sldBar.style.top = sldObjOffset.t; sldBar.style.height = sldObjOffset.h; //------------------------------------------------------------------- var p = sldBarOffset.l; if (p < sldObjOffset.l) sldBar.style.left=sldObjOffset.l; var w = sldObjOffset.l+sldObjOffset.w-sldBarOffset.w; if (p > w) sldBar.style.left = w; window.setTimeout(function(){instance.fixed()},10)}};neverSliderBar.prototype.applyArg=function() { with(this){ if (typeof(callback)=='string') callback=eval(callback); if (typeof(callback)=='function') { var callbackArguments = []; for(var i=0; i<callbackArg.length; i++) callbackArguments[i] = callbackArg[i]; callbackArguments.push(instance.getSldPoint()); callback.apply(this,callbackArguments); } else { return; }}};neverSliderBar.prototype.handleObjBefore=function() { with(this){}};neverSliderBar.prototype.handleObjAfter=function() { with(this){}};neverSliderBar.prototype.handleBtnClick=function(direction) { with(this){ direction = direction.toLowerCase(); sldPoint=instance.getSldPoint(); if(direction == 'l') { instance.setSldPoint(this.sldPoint-sldIncrement); } else if (direction=='r') { instance.setSldPoint(this.sldPoint+sldIncrement); } else { return alert('not valid argument ' +direction); } instance.applyArg(); instance.getSldPoint();}};neverSliderBar.prototype.handleSldDragStart=function() { with(this){ sldBar.setCapture(); sldMoved = true; sldBar.onlosecapture = function(){sldMoved=false;}; sldPoint = event.clientX-sldBarOffset.l;}};neverSliderBar.prototype.handleSldDrag=function() { with(this){ if(!sldMoved) return; var p = event.clientX-sldPoint; if (p <= sldObjOffset.l) { sldBar.style.left = sldObjOffset.l; } else if (p >= (sldObjOffset.l+sldObjOffset.w-sldBarOffset.w)) { sldBar.style.left = sldObjOffset.l+sldObjOffset.w-sldBarOffset.w; } else sldBar.style.left = p; instance.applyArg(); instance.getSldPoint();}};neverSliderBar.prototype.handleSldDragEnd=function() { with(this){ sldBar.releaseCapture(); sldMoved=false;}};function Offset(e) { var t = e.offsetTop; var l = e.offsetLeft; var w = e.offsetWidth; var h = e.offsetHeight; while(e=e.offsetParent) { t+=e.offsetTop; l+=e.offsetLeft; } return { t:t, l:l, w:w, h:h }}var r=new neverSliderBar("s1",callback,' <b>neverSliderBar</b> ');r.sldMax=255;r.setBtnStyle("r-sliderBtn");r.setBarStyle("r-sliderBar");r.setObjStyle("r-sliderObj");r.init();r.setSldPoint(100);var g=new neverSliderBar("s2",callback,' <b>neverSliderBar</b> ');g.sldMax=255;g.setStyle("g-sliderBar","g-sliderBtn","g-sliderObj");g.init();g.setSldPoint(150);var b=new neverSliderBar("s3",callback,' <b>neverSliderBar</b> ');b.sldMax=255;b.setBtnStyle("b-sliderBtn");b.setBarStyle("b-sliderBar");b.setObjStyle("b-sliderObj");b.setIncrement(10);b.init();b.setSldPoint("200");callback(' <b>neverSliderBar</b> ');function callback(s) { var $=document.getElementById; var color_r=r.getSldPoint(); var color_g=g.getSldPoint(); var color_b=b.getSldPoint(); $("color").style.backgroundColor="rgb(" +color_r+ "," +color_g+ "," +color_b+ ")"; $("d1").innerHTML=s+color_r; $("d2").innerHTML=s+color_g; $("d3").innerHTML=s+color_b;}//--></SCRIPT><p>power by never-online, blueDestiny, http://www.never-online.net</p></BODY></HTML>

    [Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

时间: 2024-10-04 14:50:52

js版sliderBar(滑动条)控件的相关文章

never sliderbar(js版简单的滑动条控件)

js|控件 web滑动条,web滚动条,js滚动条,滑动条控件,js Sliderbar 已经再次更新:支持实时监控sliderbar的数据,允许有callback回调的函数,有示例,持续更新中......   1.可自定样式SetStyle() 2.带有onSroll功能 3.有setSldPoint(设置位置)接口 4.有getSldPoint(取得位置)接口 5.可自己设置sliderBar的最大值(不是sliderbar的长度,而是值) 6.自定义微调功能(setIncrement(10

【自然框架】js版的QuickPager分页控件 V2.0

优点: 1.  通过更换模板可以控制各个分页元素(比如首页.末页,页号导航等)的位置和是否显示. 2.  通过更换css可以实现各种UI风格和效果.(附带24套css效果) 3.  Js的方式创建分页UI,不占用服务器资源. 4.  可以通过插件的方式更换各部分js代码.如果自带的js代码不能满足您的需求,那么您自己写的插件实现需要的效果. 5.  Ajax的方式获取记录集,减轻网络负担. 6.  多种调用方式,让"偷懒"和灵活共存. 缺点: 1.  不支持SEO.因为用js和ajax

ASP.NET2.0:Ilungasoft.Framework.Web之基于Callback的无刷新上传进度条控件[带源码]

asp.net|web|控件|上传|刷新|无刷新 共享一个基于Callback的无刷新上传进度条控件的源码.本控件使用的HttpMoudule基于宝玉的一个上传进度条的sample,这里封装为一个控件,方便使用.无需任何代码,只需设置web.config,添加HttpModule的引用,再将控件拖到页面就行.页面中的文件保存操作和传统的asp.net文件上传完全一样.可以设置属性上传过程中出错或上传成功时跳转到其它页面.兼容IE,Firefox,Opera.其它环境没测试,不过因为是基于Asp.

VB编写一个能显示百分比的自定义进度条控件

百分比|控件|显示 运行效果: 设计方法: 1.在UserControl中添加一个Label控件Label1,将它设为平面,用来做外框.添加两个PictureBox控件PictureBox1做为进度指示,PictureBox2控件做为控件背景. 2.加入以下代码 Option Explicit '定义私有变量用于存储属性值Private mvarMax As LongPrivate mvarMin As LongPrivate mvarValue As Long Private Rate As

vb进度条控件个性使用

相关文章: 用VB做个漂亮的进度条 源代码压缩包中包含ccrpProgressBar控件 简介 VB的第三方控件ccrpProgressBar是一个进度条的控件,可以有多种形态供选择.比起VB 中自带的进度条控件ProgressBar更有个性. 使用实例: 用ccrpProgressBar制作各式各样的进度条 在VB中自带了一个进度条控件ProgressBar,但功能简单.我向大家推荐一个VB的第三方进度条控件ccrpProgressBar.该控件功能强大,有多种形态供选择,而且只需要简单的设置

看实例学VFP:进度条控件

我们在使用Windows系统的时候,如果复制一个较大的文件或者是从网上下载东西,在复制或下载的过程中都会出现一个对话框,并且在该对话框中会有一个进度条来显示复制或下载的进度.在vfp可以使用进度条控件(ProcessBar)来实现类似的功能,有的场合下可以用到它,比如软件包含了数据备份的功能,可以用它来显示备份的进度.但是这个控件的使用不是必须的,使用它无非是可以让你编的东西看起来更专业些. 进度条控件有几个比较重要的属性,如下: min:进度条的最小值,默认为0. max:进度条的最大值,默认

javascript鼠标滑动评分控件完整

  本文实例讲述了javascript鼠标滑动评分控件.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 <html xmlns="

VB6.0 菜单条控件的并列排放的问题

问题描述 VB6.0 菜单条控件的并列排放的问题 怎么样VB6.0 菜单条控件做成两个并列排放的形式,而不是展开下拉样式,并且添加超链到菜单上 解决方案 你可以用工具条按钮去模拟菜单啊,按钮设置成文字样式,效果和菜单一样的.

statusbar控件上加载进度条控件,怎么在按钮和进度条间切换呢?

问题描述 statusbar控件上加载进度条控件,怎么在按钮和进度条间切换呢? statusbar控件上加载进度条控件,当加载完成,进度条消失,显示按钮,再次加载的时候隐藏按钮显示进度条,怎么在按钮和进度条间切换呢? 解决方案 你可以定义两个panel,分别加载按钮和进度条,需要哪个就显示哪个. 解决方案二: 进度条控件 解决方案三: 按钮和进度条你肯定都能访问到,通过设置visible控制