人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

JS設計滑動條效果(一)

JS設計滑動條效果(一)

更新時間:2023-06-16 文章作者:未知 信息來源:網絡 閱讀次數:

編程(Programming)是編定程序的中文簡稱,就是讓計算機代碼解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,并最終得到相應結果的過程。為了使計算機能夠理解(understand)人的意圖,人類就必須將需解決的問題的思路、方法和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據人的指令一步一步去工作,完成某種特定的任務。這種人和計算體系之間交流的過程就是編程。

【實例名稱】

JS設計滑動條效果(一)

【實例描述】

滑動條用來顯示一個百分比數據。本例通過一個類似刻度尺的組件實現滑動條的效果。

【實例代碼】

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML>  <HEAD> <TITLE>滑動條-本站(www.xue51.com)</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>

 

【運行效果】

 滑動條(一)運行效果

【難點剖析】

本例的重點在于所有的刻度、滑動條、滑動條標識都是動態創建的。在“createTrack”方法中,“objBarTop”屬性是創建的滑動條標識的上部分,“objPoimDiv”是創建在滑動條下部的紅色指標,通過其可以輕松地看到滑動條的當前刻度。

【源碼下載】

為了JS代碼的準確性,請點擊:JS設計滑動條效果(一) 進行本實例源碼下載 


使用編程語言寫的程序,由于每條指令都對應計算機一個特定的基本動作,所以程序占用內存少、執行效率高。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 新和县| 于田县| 巴中市| 西吉县| 民和| 河北省| 长白| 潮州市| 奈曼旗| 天柱县| 哈巴河县| 天峨县| 奉贤区| 咸丰县| 齐河县| 应用必备| 沙田区| 海丰县| 调兵山市| 河津市| 平泉县| 垣曲县| 班戈县| 资溪县| 江安县| 拜泉县| 双桥区| 论坛| 体育| 呼伦贝尔市| 海城市| 临邑县| 南平市| 邹城市| 平远县| 锡林浩特市| 翁牛特旗| 册亨县| 庆元县| 客服| 奉新县|