JQuery :: Scrolling Toggled Elements To Top Of Viewport
Jun 5, 2010
I'm using a simple toggle function to reveal divs when clicking on the associated heading. What I'm aiming to achieve:
1. When the heading is clicked, the hidden div will be revealed and the page scrolled so that the heading is at the top of the viewport.
2. If the page has insufficient height for the heading to move to the top, the page height will be increased to allow this to occur.
3. When the heading is clicked again, the div will be hidden but the heading remain in its current position at the top of the viewport. If a div is being toggled closed when not at the top, the page having been scrolled, then it should remain in its current position.
Other things to consider:
Preventing the amount of any generated empty space at the page bottom from being sufficient to fill the entire viewport.
Current state of play:
The code below will move the heading and revealed div to the top of the viewport if the page height is sufficient. When the div is hidden again, the heading drops down to its original location on the page, which is disorienting for the user.
Markup
<h2 class="trigger">Switch<h2>
<div>Content to toggle</div>
I have two divs that are in the same parent div, only one is shown at once. When I toggle the one that is smaller (height-wise), the position of the scroll bar (and hence the user's current location on the page) remains the same. But when I toggle back to the taller div, the scroll bar launches you back up almost to the top of the page.Is there a way I can stop this from happening? I tried return false which i knew wouldn't work. I also looked into scrollTop() but that doesn't seem like it will be of any help since it only returns values and does not set any values?
I am creating a plugin that gives keyboard navigation to tabular table acrossmultipletables.When I have rowsthat run off screen I would like to scroll the window down.. and the reverse is true, when navigating up.Logically I need to get the position of the element that has focus and specify how much to scroll the window.
I can't find an example of what I am looking for but I'm pretty sure I have seen it!When you scroll down a page the first heading stays fixed on the screen and when the second heading is scrolled too this then stays on the screen until the third heading is reached and so forth.. Can this be done with jQuery?if H2 is top of view port stay fixed until next H2 is top of view port?
I'm pretty new to web programming. I am working on an idea for a site involving bands and their fans... and have only done a little prototyping on it so far. It's coming along okay, but I have run into an odd behavior coming from firefox where once an initially invisible DIV is toggled to visible... and then the space bar is pressed, the whole display bumps upward on the screen and mostly out of view. I've tried several things to isolate the issue but haven't found the cause, yet. The screen doesn't act oddly upon space bar entry within IE... just in firefox.
What I've made so far is a page header image with 4 buttons to the side of that, which when clicked will change to a diff image (sprite image, triggered by some javascript I found on the net to change the class of the buttons so that the image changes - and it looks toggled). This works fine and if a 'toggled' button is clicked again then it will delete the class the javascript adds and 'untoggle' it. The final aim of this is when this page is first loaded then none of these buttons are toggled and a default image in the header is shown.
But when one is selected then I want the header image to change to one that is associated with the button that is pressed - I was able to achieve this with an onmouseclick action on the button to change the header image, but if the user then clicked the button again (untoggled it), how would I then be able to change the header image back to the default one? Could this be achieved by some javascript that changed the class of the header image to the one associated with the button pressed, and then if its pressed again then it clears the header image class?
Below is the code HTML Code: <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Untitled Document</title> [Code].....
jQuery - Scrolling browser Window. I have two demos of scrolling page content with jQuery.
This one - [url] is scrolling the contents inside a container and it works as I wanted on Mac/PC
Code:
I need the same effect as above but I need to scroll the whole browser window.
I have a demo here - [url]
Code:
Problem here is on the Mac the transition are jumpy and it seems to flash the first yellow div before sliding up or down. Testing on a PC it will slide down but won't slide up. How can I get the whole browser window to slide up and down with a smooth transition.
I have 50 thumbnails running vertically down the page, so that the viewer must scroll quite a bit to see them all. When a thumbnail is clicked I want to display the full size image in the middle of the viewport. Thus, the top offset of the absolute div that displays the full size picture will change depending on how far down the viewer has scrolled.
I can bind a function to the <img> tag that will set the top offset of the div where the full size images are displayed but I don't know how to get the current position of the viewport, or how to position something with respect to the viewport.
Can jQuery pull the viewport position out of the DOM and let me center something in it?
The mouse position tutorial has an example of how to find the click position within an element. How do you find the click position within the viewport?
im searching for a plugin/code example for text scrolling. I got some text in a <div> if text is longer than for example 300px it gets cut and is scrolling from start to end, stops for a second and then scrolls back, stops and all over, and if its not long enough than 300px then just displays normaly. Something similar to the Song name scrolling inin anyMP3 player.
Essentially the idea is to make Element-B and Element-C to cover the area horizontally starting from center of Element-A and ending at the edge of viewport.So, I guess i want to get the distance value from the center of Element-A to the edge of viewport
Additional notes:
Element-A doesnt have static position or size. Element-B and Element-C verticalposition or height is irrelevant.
I was thinking something like this:Calculate width of Element-A and divide it by two ( Or just get half the width if theres a way. ) Get the distance from the edge of Element-A to the edge of Viewport Add up these calculated values.Of course unless theres way to get that this width straight up )I was trying to look for a way to do list item 2.
I'm working on a mysql browser / edit-in-place app which presents the user with a floating UI (think lightbox), that contains widgets appropriate for the given field they've clicked on.
Presently, rather than centering the UI element like a lightbox however, I find it best to keep it relative to their mouse, so that they don't have to traverse halfway across the screen with their mouse to interact with the interface if they've clicked something (for instance) on the bottom left.
The problem however should be apparent: if they click something towards the bottom of the screen, we need to adjust the css top/left properties so that the UI remains within the viewable area and doesn't run beyond the viewport, if possible. I've seen this done tons of times with tooltips.
I've thrown some basic awareness together using$(window).height() / width(), but if anyone could point me to a maturealgorithmfor harvesting the appropriate offset.
I don't know if this is a browser bug. I positioned a div at the bottom of the page just underneath the viewport, calculating it with $(document).height() and animate it to bottom:0, works great even when scrolling, cause of updating with the scroll-event. But when I reload this page or scroll down a bit the original position value was used, so it animates to the original viewport value.
I have a wordpress website with which I wish to provide content via an iframe on facebook.. Without using a wordpress plugin, I would like to know if I provide a function in jquery that basically says if viewport is equal to 520px then either load this css file or add this body class.. Also, if viewport is = to 520px then hide this element.. I think this can be done but after a lot of searching, I cannot seem to find a definative answer..
I have developed a vertical accordion menu and all is great except for the fact that some of the submenus are long and run beyond the bottom of the viewport. I need to detect the position of the UL, find out how many pixels are below the page fold, and lift the UL up by that many pixels so the UL does not go below the fold. The UL in question is positioned absolutely inside of a relatively positioned parent so I can easily use a negative top position to lift the UL but how do I get the number of pixels that the UL descends below the page fold?
I got a div, I'd like some code to be executed onClick, that'd move the div to the top of the viewport (not to the top of the page), kinda like a "vertical float".
Is there a way to do this? I've seen annoying menus/ advertisements that stick to the top of the window even if you scroll down.
I'm looking for an solution to find out the real vertical viewport - without the height of horizontal scrollbars.
I have two frames side by side. The left one declared 'scrolling="no"' and the right one 'scrolling="auto"'. For the left frame it is important to know if the right frame has a horizontal scrollbar and how sick it is. So I have tried to compare the viewport of both frames.
Using 'window.innerHeight', 'document.documentElement.clientHeight', 'document.body.clientHeight' or 'document.body.offsetWidth' I get the height including the scrollbars.
The same problem with two frames (rows="50%,50%) i've solved with block elements declared with a width of 100%. Comparing the offsetWidth of both, I can see if there is a scrollbar in one frame. But with frames side by side that doesn't work.
I am working on Javascript code that gets the size of the browser viewport. My code works perfecty if the page has content. But my code does not work at all if the page has no content. Try the code examples above to see what I am talking about. How can I make it work regardless of whether or not the page has content?
I just learned that firefox (v 1.5.0.3) chops any content of an iframe that exeeds 2^15 (=32768) pixels i.e. in height? Any idea what went wrong or is this a bug/feature?
I am using this code: <iframe src="kibo.html" style="width:400px;height:32778px;"></iframe>
I would like to have a Back To Top button in the bottom right corner of the viewport. I figured that Javascript would be used for this, and after some searching, I found this Jump To Top Link script at DynamicDrive. I'm sure I could easily change its appearance from a link to a button but I don't like the jerky scrolling effect. I wondered if you guys could explain to me how to make the button (or link in the script's case) stay in the bottom right corner of the viewport at all times instead of scrolling?
write a PHP script that detects the user's viewport width, and I am guessing stores this in a variable, then checks if it is less than or equal to 1024px using an if statement and if so attaches a certain stylesheet, lets say alternative.CSS, but in the else part of the statement; therefore, if the viewport width is greater than 1024px, it attaches or links default.css