Webunity | Gilles van den Hoven schrieb:
> Gavin M. Roy wrote:
>> I've released 0.11 of the jquery-modalContent plugin with the following
>> changes:
>>
>> 2006-12-19 patch from Tim Saker <[EMAIL PROTECTED] <mailto:[EMAIL
>> PROTECTED]>>
>> 1) Keyboard events are now only permitted on visible elements belonging to
>> the modal layer (child elements). Attempting to place focus on any other
>> page element will cause focus to be transferred back to the first (ordinal)
>> visible child element of the modal layer.
>>
>> 2) The modal overlay shading now covers the entire height of the document
>> except for a small band at the bottom, which is the height of a scrollbar (a
>> separate thread to be opened on this problem with dimension.js).
>>
>> 3) I removed the code that disables and reenables the scrollbars. This is
>> just a suggestion really, realizing it could be one of those little things
>> that causes fellow developers to become unnecessary foes ;=). Personally, I
>> found it an annoying behaviour to remove a visible scrollbar causing the
>> page elements to shift right upon modal popup, then back after closure. If
>> the intent was to prevent scrolling it doesn't anyway since you can still
>> page down with the keyboard. Maybe it should be a boolean option passed in
>> the function signature?
>>
>>
> Nice work Gavin,
>
> In my submodal plugin, (thesame functionality as your plugin, but
> extended with a content div), i also had to tackle points 2 and 3.
> Here's how i tackled those 2 points.
>
> Set the width of the div to 100%, this covers the width part. Now comes
> the tricky part, the height. We have to make sure it covers the entire
> content below it. You can't just leave "some" space empty for a
> scrollbar, since some people have scrollbars that are 50px high (i hate
> those windows themes).
>
> This means that it has to be as large as the document, except if the
> document is smaller then the viewport, then it has to be as high as the
> viewport. *You also have to take changes to the document into
> consideration.* And this is important. With this i mean that it could be
> possible that the div you show over the "modal" can grow in height, say
> with 600px. Then, if you'd scroll down you would see a lot of white space.
>
> To tackle the height problem, i use this code, but you really only need
> the "height" part:
> ----------[ snip ]----------
> // Get document size
> var intDocumentWidth, intDocumentHeight;
> var intPageWidth, intPageHeight;
> if (document.documentElement &&
> document.documentElement.clientWidth) { // Explorer 6 Strict Mode
> intDocumentWidth = document.documentElement.clientWidth;
> intDocumentHeight = document.documentElement.clientHeight;
> intPageWidth = document.documentElement.scrollWidth;
> intPageHeight = document.documentElement.scrollHeight;
> } else {
> if (document.body) { // other Explorers
> intDocumentWidth = document.body.clientWidth;
> intDocumentHeight = document.body.clientHeight;
> intPageWidth = document.body.scrollWidth;
> intPageHeight = document.body.scrollHeight;
> } else {
> if (self.innerHeight) { // all except Explorer
> intDocumentWidth = self.innerWidth;
> intDocumentHeight = self.innerHeight;
> }
> }
> }
>
> // for small pages with total size less then width/height of the
> viewport
> if (intPageWidth < intDocumentWidth) {
> intPageWidth = intDocumentWidth;
> }
>
> if (intPageHeight < intDocumentHeight) {
> intPageHeight = intDocumentHeight;
> }
> ----------[ snip ]----------
>
> Oke, that's that. Now put this into a function and call it. Make sure
> that function returns the pageheight. This way you can stretch the div
> to the bottom of the screen. So when i initialize my submodal, i set the
> correct size. When the document is scrolled, i update the size (height)
> again so i am sure it covers any changes made to the page (content
> added/removed/etc).
>
> I hope i am helpfull with this.
>
> Best of luck.
>
> -- Gilles
Wow, lots of code... for my Thickbox adaption the following worked fine:
html, body {
min-height: 100%;
}
#yourDiv {
height: 100%;
}
#yourDiv has to be a direct child of the body...
-- Klaus
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/