100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 用JTrackBar实现的模拟苹果风格的滚动条_下拉菜单

用JTrackBar实现的模拟苹果风格的滚动条_下拉菜单

时间:2019-10-07 02:19:26

相关推荐

用JTrackBar实现的模拟苹果风格的滚动条_下拉菜单

web前端|js教程

用JTrackBar实现的模拟苹果风格的滚动条

web前端-js教程

express源码分析,ubuntu官方源位置,Tomcat优化连接数,爬虫种类介绍,php学习博客外包,seo例子分析seo博客lzw

function JObj(){}

JObj.$c = function(tag){return document.createElement(tag)};

JObj.$ = function(id){return document.getElementById(id)};

JObj.isRate = function(pRateString){

if(!isNaN(pRateString)) return false;

if(pRateString.substr(pRateString.length-1,1) != "%")

return false;

if(isNaN(pRateString.substring(0,pRateString.length - 1)))

return false;

return true;

}

本地 app源码,ubuntu卸载内核报错,tomcat从下载到安装,爬虫教学实例,php精度问题,做php工资高还是seo工资高lzw

function JPos(){}

JPos.getAbsPos = function(pTarget){

var x_ = y_ = 0;

while(pTarget.offsetParent){

x_ += pTarget.offsetLeft;

y_ += pTarget.offsetTop;

pTarget = pTarget.offsetParent;

}

x_ += pTarget.offsetLeft;

y_ += pTarget.offsetTop;

return {x:x_,y:y_};

}

支付源码,vscode配置用户代码片段,ubuntu刻录光盘,tomcat7并发配置,sqlite创建附表,高级网页设计的意义,怎么连接到远程数据库,服务器搭建网页,qq快捷回复插件源,前端框架100,微专业爬虫,php是否包含,彭水SEO,springboot测试报错,网站商城前台模板,易语言网页游戏登陆器源码,bootstrap 录入模板,织梦后台500网络错误,app展示页面模板,数商z后台管理系统,医疗小程序1.6.4lzw

JPos.getMousePos = function(evt){

var x_ = y_ = 0;

evt = evt || window.event;

if(evt.pageX || evt.pageY){

x_ = evt.pageX;

y_ = evt.pageY;

}else{

x_ = evt.clientX + document.body.scrollLeft - document.body.clientLeft;

y_ = evt.clientY + document.body.scrollTop - document.body.clientTop;

}

return {x:x_,y:y_};

}

<!--

/*

----------------------------------------------------------------------

JTrackBar

初始日期:/07/11

Author:xlingFairy

Blog: 目前只能生水平的,垂直的还没有写。

设计功能:

当改变时,触发事件onChange,并传当前值。 /07/12

加入拖动功能。 /07/13

加入皮肤功能 /08/06

加入垂直的。并修正一个setRange带来的BUG. 未做功能:指定trackFrequence,你可以自己试着修改一下。 请尊重劳动成果!不得删除原作都信息!后果自负!

----------------------------------------------------------------------

*/

function JPos(){ } JPos.getAbsPos = function(pTarget){

var _x = 0;

var _y = 0;

while(pTarget.offsetParent){

_x += pTarget.offsetLeft;

_y += pTarget.offsetTop;

pTarget = pTarget.offsetParent;

}

_x += pTarget.offsetLeft;

_y += pTarget.offsetTop;return {x:_x,y:_y};

} JPos.getMousePos = function(evt){

var _x,_y;

evt = evt || window.event;

if(evt.pageX || evt.pageY){

_x = evt.pageX;

_y = evt.pageY;

}else{

_x = evt.clientX + document.body.scrollLeft - document.body.clientLeft;

_y = evt.clientY + document.body.scrollTop - document.body.clientTop;

}

return {x:_x,y:_y};

} function JTrackBar(pParent){

var self = this;var $ = function(pId){

return document.getElementById(pId);

}var $c = function(pTag){

return document.createElement(pTag);

}var trackBarType; //V & H

if((typeof pParent).toUpperCase() == "OBJECT")

var body = pParent;

else

var body = $(pParent) || document.body;

var oOutline = null;

var oTrackArea= null;

var oBtnPointer = null;

var oArrBtnLeft = oArrBtnRight = oArrBtnUp = oArrBtnDown = null;var inDrag = false;

var dragStartPos = null;var maxPosition= 100; //最大刻度

var minPosition = 0; //最小刻度

var base = 0;

var position = 0; //当前位置

var trackFrequence = 10; //点击一次移动多少刻度var defaultArrowW = defaultArrowH = 15;//Only for IE!this.setRange = function(pMin,pMax){

maxPosition = Math.max(pMin,pMax);

minPosition = Math.min(pMin,pMax); maxPosition -= minPosition;

base = minPosition;

minPosition = 0;

} var outlineWidth,trackAreaWidth,preFrequenceWidth;

var outlineHeight,trackAreaHeight,preFrequenceHeight;this.onChange = new Function();var getRunStyle = function(pObj,pProperty){

try{

if(pObj.currentStyle)

return eval("pObj.currentStyle." + pProperty);

else

return document.defaultView.getComputedStyle(pObj,"").getPropertyValue(pProperty);

}catch(e){

alert(e);

}

}/*-----------------------------------------------------*/

var createOutline = function(pWH){

oOutline = $c("DIV");

body.appendChild(oOutline);

oOutline.className = "JTrackBarStand";

if(trackBarType == "H")

oOutline.style.width = pWH + "px";

else if(trackBarType == "V")

oOutline.style.height = pWH + "px";

oOutline.style.overflow = "hidden";

}

/*-----------------------------------------------------*/

var createArrBtn = function(pDirection){

var arrBtn = $c("DIV");

switch(pDirection){

case "LEFT":

arrBtn.className = "btnLeft";

arrBtn.style.styleFloat = "left";

arrBtn.style.cssFloat = "left";

break;

case "RIGHT":

arrBtn.className = "btnRight";

arrBtn.style.styleFloat = "left";

arrBtn.style.cssFloat = "left";

break;

case "UP":

arrBtn.className = "btnUp";

break;

case "DOWN":

arrBtn.className = "btnDown";

break;

} arrBtn.direction = pDirection;

arrBtn.onclick = arrBtn_click;

return arrBtn;

}var arrBtn_click = function(evt){ evt = window.event || evt;

var o = evt.srcElement || evt.target; switch(o.direction){

case "LEFT":

case "UP":

self.setPositionBy( -trackFrequence);

break;

case "RIGHT":

case "DOWN":

self.setPositionBy(trackFrequence);

break;

}

}var trackarea_click = function(evt){

evt = window.event || evt;

var mPos = JPos.getMousePos(evt); var pos_ = JPos.getAbsPos(oTrackArea); if(trackBarType == "H"){

var w_ = parseInt(getRunStyle(oBtnPointer,"width"));

self.setPosition(parseInt((mPos.x - pos_.x) / preFrequenceWidth));

}else{

var h_ = parseInt(getRunStyle(oBtnPointer,"height"));

self.setPosition(parseInt((mPos.y - pos_.y) / preFrequenceHeight));

}

}var createHTrackArea = function(){

var w_ = parseInt(getRunStyle(oArrBtnLeft,"width"));

if(isNaN(w_)) w_ = defaultArrowW; trackAreaWidth = outlineWidth - 2 * w_;

preFrequenceWidth = trackAreaWidth / (maxPosition - minPosition); oTrackArea = $c("DIV");

oOutline.appendChild(oTrackArea); oTrackArea.onclick = trackarea_click; oTrackArea.className = "trackAreaH";

oTrackArea.style.width = trackAreaWidth + "px";

oTrackArea.style.styleFloat = "left";

oTrackArea.style.cssFloat = "left";

}var createVTrackArea = function(){

var h_ = parseInt(getRunStyle(oArrBtnUp,"height"));

if(isNaN(h_)) h_ = defaultArrowH;

trackAreaHeight = outlineHeight - 2 * h_;

preFrequenceHeight = trackAreaHeight / (maxPosition - minPosition); oTrackArea = $c("DIV");

oOutline.appendChild(oTrackArea); oTrackArea.onclick = trackarea_click;

oTrackArea.className = "trackAreaV";

oTrackArea.style.height = trackAreaHeight + "px";

}var recalcTrackArea = function(){

if(trackBarType == "H"){

var w_ = parseInt(getRunStyle(oArrBtnLeft,"width"));

if(isNaN(w_)) w_ = defaultArrowW; trackAreaWidth = outlineWidth - 2 * w_;

preFrequenceWidth = trackAreaWidth / maxPosition; oTrackArea.style.width = trackAreaWidth + "px";

}else{

var h_ = parseInt(getRunStyle(oArrBtnUp,"height"));

if(isNaN(h_)) h_ = defaultArrowH; trackAreaHeight = outlineHeight - 2 * h_;

preFrequenceHeight = trackAreaHeight / maxPosition;

oTrackArea.style.height = trackAreaHeight + "px";

}

}var pointer_mousedown = function(evt){

inDrag = true;

dragStartPos = JPos.getMousePos(evt);

body.onmousemove = pointer_mousemove;

body.onmouseup = pointer_mouseup;

body.onmouseout = pointer_mouseout;

}var pointer_mousemove = function(evt){

if(!inDrag) return;

var mPos = JPos.getMousePos(evt);

var pos_ = JPos.getAbsPos(oTrackArea); if(trackBarType == "H")

self.setPosition(parseInt((mPos.x - pos_.x) / preFrequenceWidth));

else

self.setPosition(parseInt((mPos.y - pos_.y) / preFrequenceHeight));

}var pointer_mouseup = function(){

inDrag = false;

}var pointer_mouseout = function(){

//inDrag = false;

}var createHPointer = function(){

oBtnPointer = $c("DIV");

oOutline.appendChild(oBtnPointer);

oBtnPointer.onmousedown = pointer_mousedown; oBtnPointer.className = "btnPointerH";

oBtnPointer.style.position = "absolute"; var w_ = parseInt(getRunStyle(oBtnPointer,"width"));

if(isNaN(w_)) w_ = defaultArrowW; var pos_ = JPos.getAbsPos(oTrackArea);

oBtnPointer.style.left = pos_.x - w_/2 + "px";

oBtnPointer.style.top = pos_.y + "px";

oBtnPointer.style.cssText += "left:" + (pos_.x - w_/2) + "px;top:" + pos_.y + "px;";

}var createVPointer = function(){

oBtnPointer = $c("DIV");

oOutline.appendChild(oBtnPointer);

oBtnPointer.onmousedown = pointer_mousedown; oBtnPointer.className = "btnPointerV";

oBtnPointer.style.position = "absolute";

var h_ = parseInt(getRunStyle(oBtnPointer,"height"));

if(isNaN(h_)) h_ = defaultArrowH; var pos_ = JPos.getAbsPos(oTrackArea);

oBtnPointer.style.top = pos_.y - h_/2 + "px";

oBtnPointer.style.left = pos_.x + "px";

oBtnPointer.style.cssText += "left:" + pos_.x + "px;top:" + (pos_.y - h_/2) + "px";

}/*-----------------------------------------------------*/

this.createHTrackBar = function(pWidth){

trackBarType = "H";

outlineWidth = pWidth;

createOutline(pWidth); oArrBtnLeft = createArrBtn("LEFT");

oOutline.appendChild(oArrBtnLeft); createHTrackArea(); oArrBtnRight = createArrBtn("RIGHT");

oOutline.appendChild(oArrBtnRight); createHPointer();

}

/*-----------------------------------------------------*/

this.createVTrackBar = function(pHeight){

trackBarType = "V";

outlineHeight = pHeight;

createOutline(pHeight); oArrBtnUp = createArrBtn("UP");

oOutline.appendChild(oArrBtnUp); createVTrackArea(); oArrBtnDown = createArrBtn("DOWN");

oOutline.appendChild(oArrBtnDown); createVPointer();

}

/*-----------------------------------------------------*/ this.setPositionBy = function(pPosition){

position += pPosition;

self.setPosition(position);

}this.setPosition = function(pPosition){

position = pPosition;

if(position > maxPosition)

position = maxPosition;

if(position < minPosition)

position = minPosition; var pos_ = JPos.getAbsPos(oTrackArea); if(trackBarType == "H"){

var w_ = parseInt(getRunStyle(oBtnPointer,"width"));

if(isNaN(w_)) w_ = defaultArrowW; oBtnPointer.style.left = pos_.x - w_/2 + preFrequenceWidth * position + "px";

}else if(trackBarType == "V"){

var h_ = parseInt(getRunStyle(oBtnPointer,"height"));

if(isNaN(h_)) h_ = defaultArrowH;

oBtnPointer.style.top = pos_.y - h_/2 + preFrequenceHeight * position + "px";

} doChange();

}var doChange = function(){

self.onChange(position + base);

}this.getPosition = function(){

return position;

}this.setSkin = function(pSkin){

oOutline.className = pSkin;

recalcTrackArea();

self.setPosition(minPosition)

}

} function JScroll(pWidth,pHeight,pBody){

var self = this;

var oOutline = null;

var oContentArea = null;

var oTrackBarArea = null;this.trackBar = null;var w = JObj.isRate(pWidth) ? pWidth : (!isNaN(pWidth) ? pWidth + "px" : "100%");

var h = JObj.isRate(pHeight) ? pHeight : (!isNaN(pHeight) ? pHeight + "px" : "100%");var db_ = JObj.$(pBody) || document.body;var createOutline = function(){

oOutline = JObj.$c("DIV");

oOutline.className = "oOutline";

db_.appendChild(oOutline);

with(oOutline.style){

width= w;

height = h;

overflow = "hidden";

} oContentArea = JObj.$c("DIV");

oOutline.appendChild(oContentArea);

oContentArea.className = "oContentArea";

with(oContentArea.style){

width = oOutline.clientWidth - 25 + "px";

height = oOutline.clientHeight + "px";

styleFloat = "left";

cssFloat = "left";

}

}this.create = function(){

createOutline();

}var createTrackBar = function(){

oTrackBarArea = JObj.$c("DIV");

oOutline.appendChild(oTrackBarArea);

with(oTrackBarArea.style){

width = 20 + "px";

height = oContentArea.style.height;

stylefloat = "left";

cssFloat = "left";

overflow= "hidden";

}

self.trackBar = new JTrackBar(oTrackBarArea);

self.trackBar.onChange = function(pTrackPosition){

oContentArea.scrollTop = pTrackPosition;

} self.trackBar.setRange(0,oContentArea.scrollHeight);

self.trackBar.createVTrackBar(oTrackBarArea.clientHeight);

self.trackBar.setSkin("JTrackBarSky");

} this.addContextArea = function(pId){

oContentArea.appendChild(JObj.$(pId));

oContentArea.style.overflow = "hidden"; createTrackBar();

}this.setSkin = function(pSkin){

self.trackBar.setSkin(pSkin)

}

}

打包文件下载

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。