Hur får jag en ny sida att öppnas i ett layer via länk? ..typ som när man öppnar en ny sida i iframe
Länkar i Layers
3 svar · 325 visningar · startad av Mäts
Du är tvungen att göra ett layer som ligger gömt, och sedan när du klickar på länken ska det poppa fram, om jag förstår dig rätt :) har ingen riktig koll på hur det funkar, vet en sida som det är på så jag pastar den kåden:
<script language="JavaScript">
<!--
function tmt_LayerBoxIn(targetNN, targetIE, dur, incr) {
transNo = parseInt(0);
arHidden = new Array(1, 3, 14, 16);
if (document.all) {
target = eval(targetIE);
target.style.filter = "revealTrans(duration=" + dur + ",transition=0)";
endState = "hidden";
for (i = 0; i < arHidden.length; i++) {
if (arHidden[i] == transNo) {
endState = "visible";
target.style.visibility = "hidden";
}
}
target.filters.revealTrans.apply();
target.style.visibility = endState;
target.filters.revealTrans.play();
}
if (document.layers) {
target = eval(targetNN);
if (incr == 0) {
target.origLeft = target.clip.left;
target.origTop = target.clip.top;
target.origRight = target.clip.right;
target.origBottom = target.clip.bottom;
mSecs = dur * 1000;
intval = 100;
visits = (mSecs / intval);
fullW = target.clip.width;
fullH = target.clip.height;
halfW = fullW / 2;
halfH = fullH / 2;
alternateW = alternateH = true;
incW = halfW / visits;
incrementW = (incW >= 1) ? parseInt(incW) : 0;
xtraPixW = Math.round((incW - incrementW) * visits);
incH = halfH / visits;
incrementH = (incH >= 1) ? parseInt(incH) : 0;
xtraPixH = Math.round((incH - incrementH) * visits);
if (xtraPixW > 0) {
if (xtraPixW <= visits) {
if (alternateW) {
target.clip.left++;
target.clip.right--;
xtraPixW--;
}
alternateW = !alternateW;
} else {
target.clip.left++;
target.clip.right--;
xtraPixW--;
}
}
target.clip.left += incrementW;
target.clip.right -= incrementW;
if (xtraPixH > 0) {
if (xtraPixH <= visits) {
if (alternateH) {
target.clip.top++;
target.clip.bottom--;
xtraPixH--;
}
alternateH = !alternateH;
} else {
target.clip.top++;
target.clip.bottom--;
xtraPixH--;
}
}
target.clip.top += incrementH;
target.clip.bottom -= incrementH;
visits--;
} else {
if (xtraPixW > 0) {
if (xtraPixW <= visits) {
if (alternateW) {
target.clip.left++;
target.clip.right--;
xtraPixW--;
}
alternateW = !alternateW;
} else {
target.clip.left++;
target.clip.right--;
xtraPixW--;
}
}
target.clip.left += incrementW;
target.clip.right -= incrementW;
if (xtraPixH > 0) {
if (xtraPixH <= visits) {
if (alternateH) {
target.clip.top++;
target.clip.bottom--;
xtraPixH--;
}
alternateH = !alternateH;
} else {
target.clip.top++;
target.clip.bottom--;
xtraPixH--;
}
}
target.clip.top += incrementH;
target.clip.bottom -= incrementH;
visits--;
}
if (target.clip.height <= 0 && target.clip.width <= 0) {
target.visibility = "hide";
target.clip.left = target.origLeft;
target.clip.top = target.origTop;
target.clip.right = target.origRight;
target.clip.bottom = target.origBottom;
} else {
setTimeout("tmt_LayerBoxIn(\"" + targetNN + "\",\"" + targetIE + "\",\"" + dur + "\",1)", dur);
}
}
}
function MM_showHideLayers() { //v2.0
var i, visStr, args, theObj;
args = MM_showHideLayers.arguments;
for (i=0; i<(args.length-2); i+=3) { //with arg triples (objNS,objIE,visStr)
visStr = args[i+2];
if (navigator.appName == 'Netscape' && document.layers != null) {
theObj = eval(args[i]);
if (theObj) theObj.visibility = visStr;
} else if (document.all != null) { //IE
if (visStr == 'show') visStr = 'visible'; //convert vals
if (visStr == 'hide') visStr = 'hidden';
theObj = eval(args[i+1]);
if (theObj) theObj.style.visibility = visStr;
} }
}
//-->
</script>
<div id="namn" style="position:absolute; left:100px; top:100px; z-index:1; background-color: #FFFFFF; layer-background-color: #FFFFFF; border: 1px none #000000; visibility: hidden">Här är det gömda lagret</div>
<a href="#" onClick="MM_showHideLayers('document.layers[\'namn\']','document.all[\'namn\']','show')">Och här är länken</a>
Du får testa och se ifall det funkar. ;)
------------------
// Sensei - powwah@swipnet.se
Funkar utmärkt..tack!