webForumDet fria alternativet

Drag layer

4 svar · 325 visningar · startad av bagera

bageraMedlem sedan jan. 2001121 inlägg
#1

detta är ett script som ändrar bakgrundsfärgen när man
drar i ett lager.
Hur ska jag bete mig för att på onload dra det automatisk.

onload = dra id="knobImg1" till top 45px
alltså simulera en dragning av mus.

<html>
<head>
<title>Untitled Document</title>
<style>.drag {position: relative; cursor: hand}</style>
<SCRIPT LANGUAGE="JavaScript1.2">

var sPosition;
var showPerc=100;
document.onmousedown=dragLayer
document.onmouseup=new Function("dragMe=false")

var Color= new Array();
Color[0] = "00";
Color[1] = "11";
Color[2] = "22";
Color[3] = "33";
Color[4] = "44";
Color[5] = "55";
Color[6] = "66";
Color[7] = "77";
Color[8] = "88";
Color[9] = "99";
Color[10] = "AA";
Color[11] = "BB";
Color[12] = "CC";
Color[13] = "DD";
Color[14] = "EE";
Color[15] = "FF";

var rVal,gVal,bVal, cCol, cCol2
function chgBg() {

cCol = document.bgColor; rVal=cCol.substr(1,2); gVal=cCol.substr(3,2); bVal=cCol.substr(5,2);
ind = Math.round(showPerc/16); if (ind \< 0) ind = 0; if (ind \> 15) ind=15;

if (kObj.id =="knobImg") document.bgColor="#"+Color[ind]+gVal+bVal;
}

var dragMe=false, kObj, yPos,direction
function moveLayer(who) {
if (event.button==1 && dragMe) {
oldY = kObj.style.pixelTop; kObj.style.pixelTop=temp2+event.clientY-yPos;

if (kObj.style.pixelTop \> oldY) direction="dn"; else direction="up";
if (kObj.style.pixelTop \< 2 && direction=="up") {kObj.style.pixelTop=2; direction="dn";}
if (kObj.style.pixelTop \> 102 && direction=="dn") {kObj.style.pixelTop=102; direction="up";}

sPosition=kObj.style.pixelTop; showPerc = (perCent\[0\].checked) ? sPosition-2 : (sPosition-2)/2\*5; 

chgBg(who); 
return false; }

}
function dragLayer() {
if (!document.all) return;
if (event.srcElement.className=="drag") {dragMe=true; kObj=event.srcElement; temp2=kObj.style.pixelTop; yPos=event.clientY; document.onmousemove=moveLayer; }
}
</script>
</head>

<body>
<div id="outerLyr" style="position:absolute; width:23px; height:120px; z-index:1; left: 200px; top: 111px; background-color: #000000">
<img src="knob.gif" width="20" height="17" class="drag" id="knobImg" style="width: 20px; height: 17px; z-index:3; left: 2px; top: 100px">
<div id="innerLyr" style="position:absolute; width:20px; height:117px; z-index:2; background-color: #777777; left: 2px; top: 2px">
<div id="barLyr" style="position:absolute; width:2px; height:110px; z-index:1; background-color: #000000; left: 9px; top: 5px"></div>
</div>
</div>
<input type="radio" name="perCent" value="false">
100
<input type="radio" name="perCent" value="true" checked>255
</body>
</html>

bageraMedlem sedan jan. 2001121 inlägg
#2

jag la till

function move(Id,y)
{
document.getElementById(Id).style.top = y+'px';
}

onLoad="move('knobImg',40);"

men jag vill ju ha med värdet så bakgrunds färgen ändras, får liksom inte till det.

JojoxxMedlem sedan juni 20004 306 inlägg
#3

Detta script är IE-only så jag fortsätter på samma sätt. Före </script> lägger du till;

window.onload=function(){
	kObj=document.all['knobImg']; kObj.style.pixelTop=45; showPerc=45*2.56; chgBg();
}
bageraMedlem sedan jan. 2001121 inlägg
#4

Tack men nix, det funkar inte.
man tror att det funkar tills man skriver ett värde på tex 90 å då
händer inget.
Tacksam för lite hjälp, jag sliter mitt hår å försöker förstå men icke :(

JojoxxMedlem sedan juni 20004 306 inlägg
#5

Prova nu efter redigeringen.

Genererad på 381 ms · cache AV · v20260730165559-full.f96bc7eb