📄 bsrightmenu.js
字号:
htmlStr += pobj.itemAreaList[this.areaIndex].itemList[this.childList[i]].show();
}
htmlStr += "</table>";
var thisDiv = document.getElementById(this.pid+"_rm_"+(this.level));
var left = document.body.scrollLeft+thisDiv.offsetLeft+thisDiv.offsetWidth-4;
var top = thisDiv.offsetTop+elmObj.offsetTop+1;
var levelObj = null;
levelObj = document.getElementById(this.pid+"_rm_"+(this.level+1));
//level+1层没有创建
if (levelObj == null){
levelObj = document.createElement("div");
levelObj.id = this.pid+"_rm_"+(this.level+1);
levelObj.className = "bs_rm_div";
document.body.appendChild(levelObj);
}
levelObj.innerHTML = htmlStr;
levelObj.style.display = "block";
//定位
if((left+levelObj.offsetWidth) > document.body.scrollLeft+document.body.clientWidth){
left -= (elmObj.offsetWidth + levelObj.offsetWidth-4);
}
window.status = ("top:"+top+ " thisDiv.offsetHeight:"+thisDiv.offsetHeight+" levelObj.offsetWidth:"+levelObj.offsetHeight+ " all:" + (top+levelObj.offsetHeight) +" max:"+(document.body.scrollLeft+document.body.clientHeight));
if((top+levelObj.offsetHeight) > document.body.scrollTop+document.body.clientHeight){
top -= (levelObj.offsetHeight-elmObj.offsetHeight);
}
levelObj.style.left = left;
levelObj.style.top = top;
this.childIsShow = true;
}
}
//鼠标按下动作
this.doOnmousedown = function(elmObj){
window.event.cancelBubble=true;
if (this.childList.length <= 0){
elmObj.setCapture();
}
return false;
}
//鼠标弹起动作
this.doOnmouseup = function(elmObj){
window.event.cancelBubble=true;
if (this.childList.length <= 0){
var pobj = eval(this.pid);
pobj.setRMIndex(this.areaIndex, this.index);
elmObj.releaseCapture();
pobj.hiddenAll(0);
if (this.jsfun.Trim() != ""){
eval(this.jsfun);
}
}
return false;
}
//鼠标移入动作
this.doOnmouseover = function(elmObj){
window.event.cancelBubble=true;
if (!this.isSperator){
elmObj.className = "bs_rm_over";
this.setImgSelect(elmObj, true);
}
//改变其他的项的高选
var pobj = eval(this.pid);
pobj.itemAreaList[this.areaIndex].setIndexItem(this.pIndex, this.index);
this.showChildren(elmObj);
return false;
}
//鼠标移出动作
this.doOnmouseout = function(elmObj){
window.event.cancelBubble=true;
if (!this.isSperator && !this.childIsShow){
elmObj.className = "bs_rm_out";
this.setImgSelect(elmObj, false);
}
return false;
}
}
/**
* <p>标题: BSRightMenu</p>
* <p>功能描述: BS右键菜单对象。装载所有的右键菜单块</p>
* <p>作者: BinaryStar</p>
* <p>版本: 0.1</p>
* <p>创建日期: 2005-12-21</p>
*/
function BSRightMenu(id){
this.id = id||"BSRightMenu_1";//ID
this.itemAreaList = new Array();//右键集合
this.showItemAreaIndex = -1;//当前显示的右键菜单块
this.clickItemIndex = -1;//当前鼠标单击所在的子菜单项索引。
this.maxLevel = 0;//菜单树深度
var rmlist = null;
this.imagePath = "";//缺省的路径
this.setImagesPath = function(inPath){
this.imagePath = inPath;
}
//设置最大深度值
this.setMaxLevel = function (inLevel){
if (inLevel > this.maxLevel){
this.maxLevel = inLevel;
}
}
//添加一个右键菜单块
this.addItemArea = function (text){
var area = new BSRightItemArea(this.id, this.itemAreaList.length, text);
this.itemAreaList.length++;
this.itemAreaList[this.itemAreaList.length-1] = area;
return area;
}
//激发右键菜单
this.doRightMenu = function (areaIndex){
window.event.cancelBubble=true;
var curAreaIndex = 0;
if (areaIndex != null){
curAreaIndex = areaIndex;
}
this.hiddenAllRM();
if (areaIndex < 0){
document.oncontextmenu = null;
return;
}
if(window.event.button == 2){
document.oncontextmenu = function(){return false;};
var left = document.body.scrollLeft+window.event.clientX-1;
var top = document.body.scrollTop+window.event.clientY-1;
var div = null;
if (document.getElementById(this.id+"_rm_0") != null){
div = document.getElementById(this.id+"_rm_0");
}
else{
div = document.createElement("div");
div.id = this.id+"_rm_0";
div.className = "bs_rm_div";
document.body.appendChild(div);
}
div.style.display = "block";
var tempHTML = "<input type=\"hidden\" id=\""+this.id + "_thisItemIndex\" value=\"-1\"/><input type=\"hidden\" id=\""+this.id + "_thisAreaIndex\" value=\"-1\"/>"
if (document.getElementById("BS_RightMenu_List") == null){
temprmlist = document.createElement("input");
temprmlist.id = "BS_RightMenu_List";
temprmlist.className = "bs_rm_div";
temprmlist.value = this.id;
temprmlist.style.display="none";
temprmlist.type = "hidden";
document.body.appendChild(temprmlist);
}
else {
this.addBSRMList(this.id);
}
div.innerHTML = this.itemAreaList[curAreaIndex].show() + tempHTML;
if ((left + div.offsetWidth) > document.body.scrollLeft+document.body.clientWidth){
left -= div.offsetWidth;
}
if((top+div.offsetHeight) > document.body.scrollTop+document.body.clientHeight){
top -= (div.offsetHeight);
}
div.style.left = left;
div.style.top = top;
}
else{
document.oncontextmenu = null;
}
}
this.setRMIndex = function (areaIndex, itemIndex){
document.getElementById(this.id+"_thisAreaIndex").value = areaIndex;
this.showItemAreaIndex = areaIndex;
document.getElementById(this.id+"_thisItemIndex").value = itemIndex;
this.clickItemIndex = itemIndex;
}
//隐藏指定深度下所有展现的菜单
this.hiddenAll = function(inLevel){
var tlevel = 0;
if (inLevel != null){
var tlevel = inLevel
}
for (var i=tlevel; i<this.maxLevel+1; i++){
var divObj = document.getElementById(this.id+"_rm_"+i);
if (divObj != null){
divObj.style.display = "none";
}
}
}
//隐藏所有右键菜单
this.hiddenAllRM = function(){
if (document.getElementById("BS_RightMenu_List") == null){
return;
}
var rmlist = document.getElementById("BS_RightMenu_List").value.split(",");
for (var i=0; i<rmlist.length; i++){
if (rmlist[i].Trim() != ""){
var temp_rm = eval(rmlist[i].Trim());
temp_rm.hiddenAll(0);
}
}
}
//检查右键菜单
this.addBSRMList = function(inID){
var rmlist = document.getElementById("BS_RightMenu_List").value.split(",");
for (var i=0; i<rmlist.length; i++){
if (rmlist[0].Trim() == inID.Trim()){
return;
}
}
document.getElementById("BS_RightMenu_List").value += ("," + inID);
}
//得到当前显示的菜单块
this.getThisRMArea = function(){
return this.itemAreaList[this.showItemAreaIndex];
}
//得到当前显示的菜单项
this.getThisRMItem = function(){
return this.getThisRMArea().itemList[this.clickItemIndex];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -