Permalänk
Avstängd

Overlay div med jquery

Vilket är det ultimata sättet att skapa en overlay div med jquery.
Den ska funka med alla major browser inkl IE6

Den måste funka om man resizar fönsret etc... Inte hittat nått bra

Med overlay div menar jag allså en div som täcker hela fönsret så att man inte kan klicka på några inputs etc...

tackar..

Visa signatur
Permalänk
Medlem

Vet inte vilken som är bäst men googlar på på "overlay jquery" får du ju massa resultat som verkar uppfylla det du efterfrågar..

För att ta ett av resultaten, http://malsup.com/jquery/block/

Permalänk
Avstängd

Det där är mer ett modalt fönster.. Jobbigt och sitta och tolka koden för att hitt vad jag behöver för overlay delen

Visa signatur
Permalänk
Medlem

Tyckte koden var väldigt lätt... och tycker fortfarande att det uppfyller de krav du skrev i första posten. Men men.. måste väl ha missförstått vad du är ute efter..

Permalänk
Medlem

Detta ska fungera i alla riktiga webbläsare:

<div id="overlay"> Lägg inte innehållet här, opacity går inte ärva bort </div> #overlay { position: fixed; left: 0; top: 0; width: 100%; height: 100%; background-color: black; /* eller #fff för vitt */ opacity: 0.6; filter: alpha(opacity=60); /* IE */ z-index: 10; /* behövs ev. beroende på struktur */ }

Varför ska du stödja IE6, är det ett intranät som ska köras på WinXP och IT-avdelningen orkar inte uppdatera, eller? Det finns ingen anledning längre att stödja IE6, de flesta stora sajter såsom Google, YouTube, Facebook etc. har släppt stödet. Säg det till kunden, och ta rejält med extra betalt för att stödja IE6.

Hur som helst, lösningen för IE6 är att byta ut fixed mot abolute, vilket dock inte fungerar om man scrollar sidan nedåt. Den petitessen går att lösa med JS/jQ, men då blir sidan långsammare för IE6-användaren än vad användaren tjänar på att man har löst det.

Varför blanda in jQuery i rubriken? Det spelar ingen roll om det är med JS eller ett JS-ramverk du aktiverar lagret med. Det enda jQuery hjälper dig med är att manipulera HTML och CSS, det kan inte magiskt skapa ett lager. jQuery använder du såhär i denna situation iaf:

$('#overlay').show(); $('#overlay').hide();

Permalänk
Avstängd
Citat:

Ursprungligen inskrivet av azoapes
Det enda jQuery hjälper dig med är att manipulera HTML och CSS, det kan inte magiskt skapa ett lager.

Det vet jag väll, men det finns många snippets för jquery, samt att ska man få det att funka i IE6 måste man använda JS samt att javascriptklassen detta ska implementeras i är redan skriven i jquery.

Visa signatur
Permalänk
Medlem
Citat:

Ursprungligen inskrivet av azoapes
Varför blanda in jQuery i rubriken? Det spelar ingen roll om det är med JS eller ett JS-ramverk du aktiverar lagret med. Det enda jQuery hjälper dig med är att manipulera HTML och CSS, det kan inte magiskt skapa ett lager.

Tycker nog att du är ute på lite djupt vatten nu och vet inte vad du pratar om.

Du kan mycket väl skapa exakt samma CSS kod och koppla ihop den med ett element på en sida med hjälp av jQuery.

ta en titt på CSS relaterade metoderna i jQuery.

Visa signatur

Fractal Design Arc Svart | MSI Z68A-GD55 G3 REV B3 | Intel® Core i7 2600K, 3.4GHz, 8MB | Corsair 16GB (4x4096MB) CL9 1600Mhz VENGEANCE LP | MSI GeForce GTX 670 | Phanteks PH-TC14PE CPU Cooler (vit) | Corsair Power Supply 650W TX M, Modular, ATX, PS/2 | SSD (okänd tillverkare) + 2 äldre SATA2 diskar på 750 Gb, 350 gb. | OS: Microsoft Windows 10 home.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av BlueEyes
Tycker nog att du är ute på lite djupt vatten nu och vet inte vad du pratar om. Du kan mycket väl skapa exakt samma CSS kod och koppla ihop den med ett element på en sida med hjälp av jQuery.

Du räknar alltså hellre med att jag inte vet vad jag pratar om, än att du inte har förstått mig? Jag är inte ute på djupt vatten; förutom att jag jobbar dagligen med JS som webbutvecklare är jag anställd som konsult för att ta fram kursinnehållet för en ny utbildning i gbg, titulerad front-end-utveckling. När den startar kommer jag kanske hålla i ett par kurser.

Javisst, man kan starta med tom <body> och skapa upp hela DOM för sidan med jQ, samt applicera inline-CSS på elementen med jQ. Och detta även med vanlig JavaScript. Men oavsett hur du vrider och vänder på jQuery kommer du aldrig kunna göra mer än att manipulera DOM (förutom några interna finesser såsom data() och AJAX-hantering). jQ ändrar bara inline-CSS i DOM och kan ta bort/lägga till element i DOM.

Poängen är att vad man än ska göra i jQ måste man veta hur man gör detta i HTML och CSS. Vet man inte det, har man heller ingen nytta av jQ. Att manipulera DOM med jQ är inte detsamma som att anropa en funktion createDarkLayerForMe(); Och anledningen till att jag tog upp det i denna tråd var att trådskaparen frågade hur man gör detta "i jQuery", när det han egentligen frågade efter var HTML och CSS för ett bakgrundslager. Sen kanske han iofs behöver hjälp med själva implementeringen, det återstår att se.

Permalänk
Medlem

Boxy är kompatibelt med IE6 och kan användas till de flesta scenarion med overlays, dock har den problem med PNG i själva popuprutan för IE6, annars har jag inte haft några problem med denna eminenta plugin.
http://onehackoranother.com/projects/jquery/boxy/

Visa signatur

i7 920 | 12GB DDR3 | GTX 480 | GA-X58A-UD7 | 160GB SSD X25-M G2 | 1TB F3 HD103SJ | W7 64-bit | Mac Mini
Webb: bluekitestudios.com

Permalänk
Avstängd

Jag är 99% klar. Men ett litet problem jag har... I min JQuery klass så addar jag mig som listener till en MS ajax callback via

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);

Där pageLoaded är en privat metod i min jQuery klass.

Dock, när min metod körs så är man lixom utan för contexten för instansen av klassen, alla medlemmar är null etc.

NÅn som vet hur man fixar så att JS prototype instansen kvarhålls?

Hade jag skrivit klassen i MS Ajax syntax så hade man gjort såhär

Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(Function.createDelegate(this, this.pageLoaded));

Men det verkar inte funka med JQuery?

edit: om ingen fattar vad ajg pratar om
http://weblogs.asp.net/bleroy/archive/2007/04/10/how-to-keep-...

Visa signatur