⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mt_dropdownc.js

📁 设置POS机资料、班次资料、收银员资料等。   2)灵活、细分的权限管理
💻 JS
📖 第 1 页 / 共 2 页
字号:

mtDropDown.spacerGif = "http://localhost/gdgl/v2/inc/++.gif"; 
mtDropDown.dingbatOn = "http://localhost/gdgl/v2/inc/-.gif"; 
mtDropDown.dingbatOff = "http://localhost/gdgl/v2/inc/+.gif"; 
mtDropDown.dingbatSize = 14; 
mtDropDown.menuPadding = 1;     //菜单图标离右边距离
mtDropDown.itemPadding = 4;     //菜单间距
mtDropDown.shadowSize = 3;      //菜单右边阴影长度
mtDropDown.shadowOffset = 5; 
mtDropDown.shadowColor = "#999999";   //菜单阴影颜色
//mtDropDown.shadowPng = "images/grey-40.png"; 
mtDropDown.backgroundColor = "#eeeeee";  //背景颜色
//mtDropDown.backgroundPng = "images/white-90.png"; 
mtDropDown.hideDelay = 200;      //菜单停留时间
mtDropDown.slideTime = 200;      //菜单弹出速度



mtDropDown.reference = {topLeft:1,topRight:2,bottomLeft:3,bottomRight:4};
mtDropDown.direction = {down:2,right:2};
mtDropDown.registry = [];
mtDropDown._maxZ = 1000;




mtDropDown.isSupported = function()
{
	if (typeof mtDropDown.isSupported.r == "boolean") 
	return mtDropDown.isSupported.r;
	var ua = navigator.userAgent.toLowerCase();
	var an = navigator.appName;
	var r = false;
	if (ua.indexOf("gecko") > -1) r = true; 
	else if (an == "Microsoft Internet Explorer") {
	if (document.getElementById) r = true; 
	}
	mtDropDown.isSupported.r = r;
	return r;
}



mtDropDown.initialize = function()
	{
		for (var i = 0, menu = null; menu = this.registry[i]; i++) 
		{
			menu.initialize();
		}
	}


mtDropDown.renderAll = function() {
	var aMenuHtml = [];
	for (var i = 0, menu = null; menu = this.registry[i]; i++)
	{
		aMenuHtml[i] = menu.toString();
	}
	document.write(aMenuHtml.join(""));
}

function mtDropDown(oActuator, iDirection, iLeft, iTop, iReferencePoint, parentMenuSet) 
	{

	this.addItem = addItem;
	this.addMenu = addMenu;
	this.toString = toString;
	this.initialize = initialize;
	this.isOpen = false;
	this.show = show;
	this.hide = hide;
	this.items = [];
	
	this.onactivate = new Function(); 
	this.ondeactivate = new Function(); 
	this.onmouseover = new Function(); 
	this.onqueue = new Function(); 
	
	this.index = mtDropDown.registry.length;
	mtDropDown.registry[this.index] = this;
	var id = "mtDropDown" + this.index;
	var contentHeight = null;
	var contentWidth = null;
	var childMenuSet = null;
	var animating = false;
	var childMenus = [];
	var slideAccel = -1;
	var elmCache = null;
	var ready = false;
	var _this = this;
	var a = null;
	var pos = iDirection == mtDropDown.direction.down ? "top" : "left";
	var dim = null;

// sText:显示的文字,sUrl:网站地址,sNew:是否打开新窗口 1-是,0-否
function addItem(sText, sUrl,sNew) 
{
	var item = new mtDropDownItem("<a href='" + sUrl + "' style='width:100%;height:100%;'>" + sText +"</a>", sUrl,sNew ,this);
	item._index = this.items.length;
	this.items[item._index] = item;
}


function addMenu(oMenuItem) 
{
	if (!oMenuItem.parentMenu == this) throw new Error("Cannot add a menu here");
	if (childMenuSet == null) childMenuSet = new mtDropDownSet(mtDropDown.direction.right, -5, 2, mtDropDown.reference.topRight);
	var m = childMenuSet.addMenu(oMenuItem);
	childMenus[oMenuItem._index] = m;
	m.onmouseover = child_mouseover;
	m.ondeactivate = child_deactivate;
	m.onqueue = child_queue;
	return m;
}


function initialize()
{
	initCache();
	initEvents();
	initSize();
	ready = true;
}

function show()
{

	if (ready)
	{
		_this.isOpen = true;
		animating = true;
		setContainerPos();
		elmCache["clip"].style.visibility = "visible";
		elmCache["clip"].style.zIndex = mtDropDown._maxZ++;
		
		slideStart();
		_this.onactivate();
	}
}


function hide() {
if (ready) {
_this.isOpen = false;
animating = true;
for (var i = 0, item = null; item = elmCache.item[i]; i++) 
dehighlight(item);
if (childMenuSet) childMenuSet.hide();
slideStart();
_this.ondeactivate();
}
}


function setContainerPos() {
var sub = oActuator.constructor == mtDropDownItem; 
var act = sub ? oActuator.parentMenu.elmCache["item"][oActuator._index] : oActuator; 
var el = act;
var x = -2;
var y = 0;
var minX = 0;
var maxX = (window.innerWidth ? window.innerWidth : document.body.clientWidth) - parseInt(elmCache["clip"].style.width);
var minY = 0;
var maxY = (window.innerHeight ? window.innerHeight : document.body.clientHeight) - parseInt(elmCache["clip"].style.height);

while (sub ? el.parentNode.className.indexOf("mtDropdownMenu") == -1 : el.offsetParent) {
x += el.offsetLeft;
y += el.offsetTop;
if (el.scrollLeft) x -= el.scrollLeft;
if (el.scrollTop) y -= el.scrollTop;
el = el.offsetParent;
}
if (oActuator.constructor == mtDropDownItem) {
x += parseInt(el.parentNode.style.left);
y += parseInt(el.parentNode.style.top);
}
switch (iReferencePoint) {
case mtDropDown.reference.topLeft:
break;
case mtDropDown.reference.topRight:
x += act.offsetWidth;
break;
case mtDropDown.reference.bottomLeft:
y += act.offsetHeight;
break;
case mtDropDown.reference.bottomRight:
x += act.offsetWidth;
y += act.offsetHeight;
break;
}
x += iLeft;
y += iTop;
x = Math.max(Math.min(x, maxX), minX);
y = Math.max(Math.min(y, maxY), minY);
elmCache["clip"].style.left = x + "px";
elmCache["clip"].style.top = y + "px";
}
function slideStart() {
var x0 = parseInt(elmCache["content"].style[pos]);
var x1 = _this.isOpen ? 0 : -dim;
if (a != null) a.stop();
a = new Accelimation(x0, x1, mtDropDown.slideTime, slideAccel);
a.onframe = slideFrame;
a.onend = slideEnd;
a.start();
}
function slideFrame(x) {
elmCache["content"].style[pos] = x + "px";
}
function slideEnd() {
if (!_this.isOpen) elmCache["clip"].style.visibility = "hidden";
animating = false;
}
function initSize() {

var ow = elmCache["items"].offsetWidth;
var oh = elmCache["items"].offsetHeight;
var ua = navigator.userAgent.toLowerCase();

elmCache["clip"].style.width = ow + mtDropDown.shadowSize + 2 + "px";
elmCache["clip"].style.height = oh + mtDropDown.shadowSize + 2 + "px";

elmCache["content"].style.width = ow + mtDropDown.shadowSize + "px";
elmCache["content"].style.height = oh + mtDropDown.shadowSize + "px";
contentHeight = oh + mtDropDown.shadowSize;
contentWidth = ow + mtDropDown.shadowSize;
dim = iDirection == mtDropDown.direction.down ? contentHeight : contentWidth;

elmCache["content"].style[pos] = -dim - mtDropDown.shadowSize + "px";
elmCache["clip"].style.visibility = "hidden";

if (ua.indexOf("mac") == -1 || ua.indexOf("gecko") > -1) {

elmCache["background"].style.width = ow + "px";
elmCache["background"].style.height = oh + "px";
elmCache["background"].style.backgroundColor = mtDropDown.backgroundColor;

elmCache["shadowRight"].style.left = ow + "px";
elmCache["shadowRight"].style.height = oh - (mtDropDown.shadowOffset - mtDropDown.shadowSize) + "px";
elmCache["shadowRight"].style.backgroundColor = mtDropDown.shadowColor;



elmCache["shadowBottom"].style.top = oh + "px";
elmCache["shadowBottom"].style.width = ow - mtDropDown.shadowOffset + "px";
elmCache["shadowBottom"].style.backgroundColor = mtDropDown.shadowColor;
}

else {

elmCache["background"].firstChild.src = mtDropDown.backgroundPng;
elmCache["background"].firstChild.width = ow;
elmCache["background"].firstChild.height = oh;

elmCache["shadowRight"].firstChild.src = mtDropDown.shadowPng;
elmCache["shadowRight"].style.left = ow + "px";
elmCache["shadowRight"].firstChild.width = mtDropDown.shadowSize;
elmCache["shadowRight"].firstChild.height = oh - (mtDropDown.shadowOffset - mtDropDown.shadowSize);



elmCache["shadowBottom"].firstChild.src = mtDropDown.shadowPng;
elmCache["shadowBottom"].style.top = oh + "px";
elmCache["shadowBottom"].firstChild.height = mtDropDown.shadowSize;
elmCache["shadowBottom"].firstChild.width = ow - mtDropDown.shadowOffset;
}
}
function initCache() {
var menu = document.getElementById(id);
var all = menu.all ? menu.all : menu.getElementsByTagName("*"); 
elmCache = {};
elmCache["clip"] = menu;
elmCache["item"] = [];
for (var i = 0, elm = null; elm = all[i]; i++) {
switch (elm.className) {
case "items":
case "content":
case "background":
case "shadowRight":
case "shadowBottom":
elmCache[elm.className] = elm;
break;
case "item":
elm._index = elmCache["item"].length;
elmCache["item"][elm._index] = elm;
break;
}
}

_this.elmCache = elmCache;
}
function initEvents() {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -