Inlägg märkta ‘JavaScript’

JavaScript, runda hörn och skuggor

måndag, 9 mars, 2009

Runda hörn har, är och kommer alltid vara lite roligare och snyggare än kvadratiska. Att göra hörnen med bilder är ok, men om man pga olika bakgrunder skall blanda in .png bilder så blir det även om det är lösbart alltid lite krångligt och lite tungladdat. Med ett JavaScript som heter shadedborder.js så löser vi våra problem på ett ganska smidigt.

Antingen kan ni köra:
var border = RUZEE.ShadedBorder.create({ corner:8, shadow:16 });
border.render(’classnamn’);

Detta blir dock jobbigt eftersom du måste definiera det för varje element som skall använda skriptet. Betydligt bättre och enklare blir det om ni använder er av Mootools för att generera det på de element som skall köras. JS koden för att använda Mootools för detta skulle kunna se ut såhär:

gaosBorder : function () {
window.addEvent(’domready’, function() {
$$(’.gaosRundaHorn’).each(function(el){
var border = RUZEE.ShadedBorder.create({ corner:8, shadow:16 });
border.render(el.getProperty(’id’));
});});}

Vad vi gör här är att vi hämtar alla element som har class=”gaosRundaHorn”, efter det så hämtar vi det id som dessa classer har, på så sätt blir matchningen unik per element, men det gör att man måste sätta ett unikt id per element som skall använda de snygga runda hörnen. De variabler som sätts är ”corner:8″ och ”shadow:16″, ingen idé att förklara detta det är bättre att du testar.

För att få det att fungera med en bakgrund behöver vi sätta lite css på detta. Det gör vi med:

. gaosRundaHorn, . gaosRundaHorn .sb-inner {background-color:#DDD;}

Självklart kan du göra samma funktion med prototype eller något annat JS bibliotek, men då får du lösa det själv.. ;)

Som exempel kan jag nämna att denna sida som du är på (www.gaos.se) använder inte en enda bild på sidan utan alla hörn är gjorda med just shadedBorder.

Du kan ladda ner shadedborder här

(Jag förstår inte riktigt varför de har låst höjden i ”sb-inner” diven till 2048 px så jag har satt den till 100% ist. Hade lite problem när rutorna blev för långa.. Detta görs i JavaScriptet på rad 154 om ni får problem!)

Smått och gott för webbutvecklare – Ajaxian.com

fredag, 6 mars, 2009

Ajaxian.com håller koll på det senaste inom webbutveckling åt dig! Några besök i veckan och du håller dig à jour!

Opacitet med Mootools

torsdag, 5 mars, 2009

Opacitet i olika webbläsare har länge varit ett problem. Men numera är det inte det. Här kommer en funktion till Mootools som enkelt sätter opacitet på de objekt som du tilldelar rätt class och rel.

Kod:

$$(’.opacity’).each(function(el) {
el.set(’opacity’,’.’ + el.getProperty(’rel’));
});

Förklaring:

Vad vi gör är att vi tilldelar alla element med klassen ”opacity”  den mängd opacitet som är definerat i elementets ”rel”.

Så:
<div id=”testDiv” class=”opacity” rel=”30″>hejhopp</div>
skulle göra att diven ”testDiv” visas med 30% opacitet.

Varför:

Genom att låta Mootools sköta all opacitet så undviker vi webläsarspecifik kod i css. Och när man testar opacitet i ie8 så är man ganska glad för att Mootools finns! ;)