对于网站我使用9种不同外观的标签,这些用于不同的情况。一切正常但我使用了许多函数,路径和语句可能会缩短很多我认为。一个例子:
function tabAon() {
tabAvoor=tabAvoor+1;
tabDrawer=tabDrawer+1;
tabBvoor=0;
tabCvoor=0;
window.document.getElementById("tabA").style.textDecoration="none";
window.document.getElementById("tabB").style.backgroundPosition="-87px -228px";
window.document.getElementById("tabB").style.color="#898f92";
window.document.getElementById("tabC").style.backgroundPosition="-190px -228px";
window.document.getElementById("tabC").style.color="#898f92";
window.document.getElementById("tabA").style.cursor="pointer";
if (tabDrawer==0) {
window.document.getElementById("header").MozTransform="translateY(0px)";
window.document.getElementById("header").msTransform="translateY(0px)";
window.document.getElementById("header").OTransform="translateY(0px)";
window.document.getElementById("header").WebkitTransform="translateY(0px)";
window.document.getElementById("header").transform="translateY(0px)";
window.document.getElementById("tabA").style.color="#898f92";
window.document.getElementById("tabA").style.backgroundPosition="0px 0px";
}
if (tabDrawer==1) {
window.document.getElementById("header").style.MozTransform="translateY(36px)";
window.document.getElementById("header").style.msTransform="translateY(36px)";
window.document.getElementById("header").style.OTransform="translateY(36px)";
window.document.getElementById("header").style.WebkitTransform="translateY(36px)";
window.document.getElementById("header").style.transform="translateY(36px)";
window.document.getElementById("tabAout").style.visibility="visible";
window.document.getElementById("tabBout").style.visibility="hidden";
window.document.getElementById("tabCout").style.visibility="hidden";
window.document.getElementById("tabA").style.color="#000000";
window.document.getElementById("tabA").style.backgroundPosition="0px -114px";
}
if (tabAvoor==2) tabAvoor=1;
if (tabDrawer==2 && tabBvoor==0 && tabCvoor==0) tabDrawer=0;
if (tabDrawer==2 && tabBvoor==1 || tabCvoor==1) tabDrawer=1;
}
答案 0 :(得分:1)
使用JS框架怎么样?例如: jQuery
示例:
$('#tabBout').show();
而不是window.document.getElementById(“tabAout”)。style.visibility =“visible”;
答案 1 :(得分:0)
您可以通过为不同的ID定义变量来缩短代码:
var tabA = window.document.getElementById("tabA");
// window.document.getElementById("tabA").style.textDecoration="none";
tabA.style.textDecoration="none";
答案 2 :(得分:0)
首先,你应该尝试使用某个版本的jQuery的超酷“$()”函数来缩短所有那些“window.document.getElementById”,即:
function $(id)
{
return window.document.getElementById(id);
}
然后你可以这样做:
$("header").style.MozTransform="translateY(36px)";
(顺便说一句:你可以用$()做很多其他好事,即返回整个对象数组......我在这里写的版本就是一个例子)
您可以通过使用某些功能来减少代码,例如:
function set_transforms(id,pos)
{
$(id).MozTransform="translateY("+pos+"px)";
$(id).msTransform="translateY("+pos+"px)";
$(id).OTransform="translateY("+pos+"px)";
$(id).WebkitTransform="translateY("+pos+"px)";
$(id).transform="translateY("+pos+"px)";
}
所以你可以替换所有这些:
window.document.getElementById("header").style.MozTransform="translateY(36px)";
window.document.getElementById("header").style.msTransform="translateY(36px)";
window.document.getElementById("header").style.OTransform="translateY(36px)";
window.document.getElementById("header").style.WebkitTransform="translateY(36px)";
window.document.getElementById("header").style.transform="translateY(36px)";
只有这个:
set_transforms("header",36);
希望它有所帮助!