Hej Testa om detta fungerar: Ok, du får försöka hålla dig ifrån bokstaven F i den mörkare färgen. Annars blir den slutgiltiga hexkoden lite för lång. Det "rätta" sättet att göra detta på är att dela upp färgkoden i sina tre beståndsdelar R, G och B. Så om du har '#789ABC' så ska du dela upp det i '78', '9A' och 'BC'. Därefter omvandlar du dessa tre delar till decimala tal, lägger till eller drar i från valfritt värde, gör en koll så reultatet inte blir negativt eller högre än 255 och sätter därefter ihop värdena till en 6 tecken lång hexadecimal kod igen. På så sätt kan du utgå från vilken färg som helst och ändra nyans och alltid få ett giltigt värde. <code> Jag ville förstås vara snäppet värre ;-) och skrev denna koden:En nyans ljusare än den färgen man väljer?
Jag skulle vilja att när man har valt bakgrundsfärg. Så ska mina tabeller ändra sig automatiskt så att de får en liknande nyans. Kan man på något sätt göra någon beräkning på detta. Någon sorts funktion som gör att om jag skriver in #FFFFCC så kan jag även få fram en nyans ljusare automatiskt.Sv: En nyans ljusare än den färgen man väljer?
<code>
Color = Request.Form("Color")
Color = "&H" & Color
DecColor = Clng(Color)
LightColor = HEX(DecColor + 1118481)
</code>
1118481 är #111111
och
2236962 är #222222 om du vill ha ännu ljusareSv: En nyans ljusare än den färgen man väljer?
Testa EEEECC och EEEE00 iställetSv: En nyans ljusare än den färgen man väljer?
Sv: En nyans ljusare än den färgen man väljer?
function fixcolor(farg)
farger = "0123456789ABCDEF"
fargen = split(farg)
for i = 0 to ubound(fargen)
If not lcase(fargen(i)) = "F" Then
plats = instr(farger,fargen(i))
fargen(i) = mid(farger, int(plats+1))
End If
next
end function
response.write fixcolor("FFFFCC")
</code>
inte helt säker på om koden funkar, skrev den nu, men du kan ju testa:)Sv: En nyans ljusare än den färgen man väljer?
<code>
<%
function adjustcolor(col,diff)
If Instr(col, "#") = 1 Then
adjustcolor = "#" : col = Mid(col, 2)
Else
adjustcolor = ""
End If
col = Right("000000" & Lcase(col), 6)
If NOT IsNumeric(diff) Then diff = 0
For a = 1 To 5 Step 2
c = "&H" & Mid(col, a, 2)
If NOT IsNumeric(c) Then c = "&H00"
c = Int(c) + diff
If c < 0 Then c = 0
If c > 255 Then c = 255
adjustcolor = adjustcolor & Right("0" & Hex(c), 2)
Next
end function
%>
<html>
<head>
<title>Justering av färgnyans</title>
</head>
<body><%
Response.Write(adjustcolor("123456",1))
%>
</body>
</html>
</code>
Du skickar in den färg som du vill justera samt det värde du vill justera med. Färgen skickar du som textsträng med eller utan #. Skickar du in färgen med ett # så får du ut resultatet med ett #. Värdet du vill justera med kan vara positivt eller negativt. Koden kompenserar för felaktiga värden osv så du får alltid ett riktigt resultat. Håll till godo. :-)