载入中…
设为首页 加入收藏 网站地图

首 页

QQ无敌技巧 QQ空间技巧 Q Q 秘籍技巧 SQL无敌技巧 电脑无敌技巧 电脑知识技巧 电脑维护技巧 数据库无敌技巧
设计无敌技巧 phoshop技巧 Flash 技巧 CAD 技 巧 网赚无敌技巧 网赚攻略技巧 另类网赚技巧 网推无敌技巧 网络无敌技巧
编程无敌技巧 .Net 技 巧 HTML 技巧 Css 技 巧 Javascript技巧 Java 技 巧 生活无敌技巧 烹调小技巧 美容小技巧
 无敌技巧打造一周学会
 无敌技巧打造一周学会
无敌HTML标签之格式几种常见的在线播放Asp.NET常用函数总结简单WEB开发规范一个简单的Java应用
无敌HTML标签之链接html标签大揭秘CSS的常用技巧大放送网站设计的思考asp.net生成缩略图及
 滑动条(一)
 Windows XP的滚动条
 无敌HTML标签之链接标
 破解加密的网页轻松看
无敌HTML标签之格式几种常见的在线播放Asp.NET常用函数总结简单WEB开发规范一个简单的Java应用
无敌HTML标签之链接html标签大揭秘CSS的常用技巧大放送网站设计的思考asp.net生成缩略图及
 Servlet的基础结构
 EJB详细概述(下)
您现在的位置: 无敌技巧 >> 编程技巧 >> JavaScript技巧 >> 正文
 
滑动条(一)

信息来源: http://www.wudijiqiao.com | 发布日期:2008-11-18 12:09:11  字体设置

代码开始(此行不用复制)
<HTML>
 <HEAD>
  <TITLE>滑动条</TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
  <script language="javascript">
            var objContainsDiv;
            var objTrackBar;
            var objTrackPath;
            var objScaleDiv;
            var scaleNumber = 20;
            var scaleLenth;             //刻度长度
            var vLeft;
            var vaildLength;            //滑块能够移动的有效长度
            function contentLoad()
            {
                objContainsDiv = trackDiv;//容器
                objTrackBar = createTrack();
                objTrackBar = objContainsDiv.appendChild(objTrackBar);
               
                objTrackPath = trackDegree;
                objTrackBar.onmousedown = trackBarBeforeMove;
                objTrackBar.onmouseup = trackBeforeMouseup;
                objTrackPath.onclick = setPos;

                vaildLength = parseInt(objContainsDiv.offsetWidth) - parseInt(objTrackBar.offsetWidth) - 2;
                scaleLenth = Math.round(parseInt(objContainsDiv.offsetWidth)/scaleNumber);
               
                //手动生成刻度线
                for(var i=0;i<scaleNumber - 1;i++){
     objScaleDiv = this.document.createElement("<div style='position:absolute;left:50;top:13;font-size:4pt;font-weight:lighter;color:#999999;width:3:'/>");
     objScaleDiv = objContainsDiv.appendChild(objScaleDiv);
     with(objScaleDiv){
      style.left = scaleLenth*(i + 1);
      innerText = "|";
     }
                }
            }
           
            function createTrack(){                   //创建滑动条
    var objBarContainsDiv;
    objBarContainsDiv = this.document.createElement("<div style='position:absolute;left:0;top:0;height:16;width:11;z-index:2;'/>");
    
                                        //创建矩形区域
    var objBarTop = this.document.createElement("<div style='position:absolute;left:0;top:0;height:10;width:11;font-size:1px;border-top:solid 1px #999999;border-right:solid 1px #666666;border-left:solid 1px #cccccc;z-index:2;background:#cccccc;'>");
                objBarTop = objBarContainsDiv.appendChild(objBarTop);
                var objPointDiv;
                var iScale = 0;
                for(var i=0;i<6;i++){               //创建红色标识区域,用来指向刻度
     objPointDiv = this.document.createElement("<div style='position:absolute;background:red;font-size:1px;z-index:2;border-right:solid 1px #990000;'>");
     iScale = i + 1;
     with(objPointDiv){
      style.left = iScale;
      style.top = parseInt(objBarTop.style.pixelHeight) + (iScale - 1);
      if((parseInt(objBarTop.style.pixelWidth) - 2*iScale)<0){
       break;
      }
      style.width = parseInt(objBarTop.style.pixelWidth) - 2*iScale;
     }
     objPointDiv = objBarContainsDiv.appendChild(objPointDiv);
                }
               
                return objBarContainsDiv;
               
            }
           
            function setPos(){         //单击滑动条时,设置滑动条位置
               
                trackBeforeMove();
                trackLevel.innerText = Math.round(parseInt(objTrackBar.style.left)*100/vaildLength) + "%";//显示刻度数
            }
           
            function trackBarBeforeMove(){          //移动滑动条前的准备
                vLeft = window.event.x - objTrackBar.style.pixelLeft;
                objTrackBar.style.background = "#dddddd";//背景
                objTrackBar.setCapture();                 //鼠标
                objTrackBar.attachEvent("onmousemove", trackBeforeMove); //动态添加移动事件
            }
           
            function trackBeforeMove(){//滑块移动中
    
    var leftPoint;  
    var pointDividLength;
    var vMousePositionX;
                if((event.x - objContainsDiv.offsetLeft - 8) > vaildLength || event.x<objContainsDiv.offsetLeft) return;

                vMousePositionX = parseInt(event.x) - objContainsDiv.offsetLeft;
                leftPoint = Math.floor(vMousePositionX/scaleLenth);//左边最近的点序号
    pointDividLength = leftPoint*scaleLenth + scaleLenth/2;
    window.status = "leftPoint:" + leftPoint + " [vMousePositionX:" + vMousePositionX + " pointDividLength:" + pointDividLength + "]";
    if(vMousePositionX < pointDividLength){     //粘连到左边点
     objTrackBar.style.left = leftPoint*scaleLenth;
    }
    if(vMousePositionX > pointDividLength){     //粘连到右边点
     objTrackBar.style.left = (leftPoint+1)*scaleLenth;
    }
           
                if(parseInt(objTrackBar.style.left)>vaildLength){//移到了右边界
                    objTrackBar.style.left = vaildLength;
                }
               
                if(parseInt(objTrackBar.style.left)<0){     //移到了左边界
                    objTrackBar.style.left = 0;
                }
               
                trackLevel.innerText = Math.round(parseInt(objTrackBar.style.left)*100/vaildLength) + "%";
            }
           
            function trackBeforeMouseup(){               //滑动结束,解除绑定
                if(parseInt(trackLevel.innerText.replace("%",""))>100){
                    objTrackBar.style.left = vaildLength;
                    trackLevel.innerText = "100%";                      //不能超出最大刻度100
                }else if(parseInt(trackLevel.innerText.replace("%",""))<0){
                    objTrackBar.style.left = 0;
                    trackLevel.innerText = "0%";                        //不能小于最大刻度0
                }
                objTrackBar.detachEvent("onmousemove", trackBeforeMove);//撤销事件绑定
                objTrackBar.style.background = "#cccccc";               //改变背景色
                objTrackBar.releaseCapture();                           //释放鼠标
            }
           
  </script>
 </HEAD>
 <BODY onload="contentLoad()">
  <div id="trackDiv" style="position:absolute;left:100;top:50;border:solid 0px #cccccc;width:700;height:23;background:#dddddd;">
   <hr id="trackDegree" size="1" color="#cccccc" style="position:absolute;top:16;height:3;border:groove 1px #eeeeee;background:#666666;z-index:1;">
  </div>
  <span id="trackLevel" style="position:absolute;left:100;top:30;width:50;font-size:9pt;color:red;">0%</span>
 </BODY>
</HTML>

代码结束(此行不用复制)

 
  • 上一篇编程技巧:

  • 下一篇编程技巧: 没有了
  • 最 新 热 门

    最 新 推 荐

     网友评论 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    无敌技巧