I just tested all the browsers I have for support of document.documentElement.scrollLeft to determine how many pixels the window has been scrolled to the right. I'm trying to determine if I really need to go to all the trouble of feature detection for determine page scroll amount of if the old browsers are old enough now just to ignore them.
Below are the OS-browser combinations that worked in my test.
OS X 10.4 Safari 2.0.4 Opera 9.00 Firefox 1.5.0.6
OS X 10.3 Safari 1.3.2 Opera 9.00 Firefox 1.5.0.6 (Failed in Internet Explorer 5.2)
Windows XP Internet Explorer 6.0.2600.000.xpclient.010817-1148 Firefox 1.5.0.6 Opera 9.01
IE 6 was released in August 2001 which is a long time ago so worrying about IE 5 seems unnecessary for some kinds of web sites. And IE 5 on OS X is a tiny fraction of people surfing the web.
Does anyone know which are the most recent browsers that would not support document.documentElement.scrollLeft? Any mobile devices or are they all running something based on Mozilla or Opera?
I am migrating a site from prototype/scriptaculous to jQuery, and I am encountering a lot of problems with animations in IE. I should start by asking that in scriptaculous, none of these animations require special CSS or tricks for IE (like getting rid of position absolute or anything like that), but this seems to be the case for almost every animation I do in jQuery - is there a list somewhere of all the little hacks and tricks people need to do to get these animations to work in IE? I have re-implemented a few hundred of these animations (mostly crossfades, sliding up and down, highlights), and not a single one worked in IE with the original CSS from the scriptaculous version (in most cases, the other browsers would). In most cases this has to do with absolute positioning. Is it possible jQuery 1.4.4 (the version I am working with) just has massive problems or something because my impression was this library was supposed to be easier to work with, not inordinately more difficult... I just find it hard to believe everyone else is having this many issues with it.
In any event, one thing I can't find any fix for anywhere, is animating the scrollTop of an element (NOT the whole page, which seems to be what everyone else wants to do). I have a div with overflow:hidden, and two buttons underneath which allow the user to scroll through the div (a real scrollbar in this context would not look good or be very useful in comparison).
I ported the code over from scriptaculous, and it works just fine in all normal browsers. Here is the version that would animate scrolling up:
Tested in Firefox/Chrome/Safari just fine right off the bat. But in IE, it just waits and then calls my callback, setting the scrollTop correctly at the end but not actually animating. It's not totally failing, in the sense that the scrolling does happen, and the callback does fire, but it should animate, and I don't really see any reason why it wouldn't. I have set position on the div and all wrapping divs to relative, and static, and set the display value, set the zoom value, widths, heights, everything, but this div will not animate as it scrolls at all in IE only (this is all IE's - 6, 7, and 8). I also tried isolating the div on its own page, removing nearly all the content (leaving text so it will have something to scroll through), practically no CSS outside of width, height, and overflow, and again - does not work in IE only (works in all other browsers without fail).
I have following code to have a scroll animation effect. The cod eis triggered e.g. by a click.[code]...
The problem is, that the browser (tested in FF, Chrome, IE9) just jumps to the scroll target, no effect is viewable. I googled the code in different places, everybody else seems to have no probs with it.
So im basically using a link, to scroll through a series of divs to select the correct one.Ie click on happy, and scrolls to 'happy' div, However, the scroll seems to not go to what its linked to, but scrolls to the third div in the list.
I've been trying to implement a smooth scrolling animation in my page, which works fine in firefox and IE8 (haven't tested any older versions yet). But doesn't seem to work in google chrome (and probably safari either I guess). I have 4 divs on my page, positioned absolutely 2 by 2, only one div should be visible at a time, so the body has gotten an overflow:hidden. When an anchor-link to one of those divs is clicked the javascript gets its position,then scrolls towards it. etting the position works, but the scrolling does not work in chrome.
Now, when I remove 'overflow: hidden' from the body element, the scrolling does work in chrome, but of course adds the scrollbars which I don't want.
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 want to submit form data from the popup window, close the popup, and load in the main window. problem is, it always opens a new 'tab'. i'm using google chrome, i didn't think to try this in
in the <head> of the 'main' window: <script language='javascript' type='text/javascript'> window.name='main'; </script>
However my problem occurs when the user uses the browsers back arrow to return to the previous page, the script executes again returning them once more to the page they have come from. Is anyone aware of a work around to this problem as it would seem there isn't one? perhaps even a better solution for opening the target page from the iframe as top location. This is really causing confusion for users, and I really need to get the issue fixed.
Developing a heavily scripted site which involves a number of scrollable divs.
At times it is necessary to use javascript to control the scroll positions of said divs.
In all but one of the target browsers, setting the scrollTop property works fine. Under IE 5.2 Mac, which, alas, the site needs to support, it does not.
Any one know whether this is even possible in said browser?
In the following (IE only) mini page (a table which is supposed to have a fixed header), when you first do anything with the scroll bar, you will see the top two rows of the table jump slightly (a few pixels) down and to the right. I could figure out a specific numeric fudge factor value that will make me happy on my own Win 2K / IE 6 system, but I'd like to know a proper way to make this more general (for other IEs). Code:
The following script is scrolling my page smoothly, as it is supposed to, in IE and FF however it is not working at all in Safari, any version. The page is:
[URL]
When working correctly, you click the nav buttons in the left sidebar, the page scrolls to the appropriate section.
To find the scrolled portion of a screen in legancy browsers you could usually write:
var scrollAmount = (document.layers) ? window.pageYOffset : document.body.scrollTop;
e.g. scrollAmount would contain the value equal to the amount of pixels that the Screen had been scrolled manually by the user using the scroll bars.
How can you using DOM determine this scrolled pixel amount ?
I could image that IE6 is still supporting document.body.scrollTop, but how would you be able to arrive at this using DOM syntax, or atleast.. how do I find it in NS6 ?
I've placed this on pages where a ^ top of page link at the bottom is present which animates a scroll back to the top of page, however it only seems to work in IE...
As I work on a complex navigational menu (complex as in lots of pages and categories) I am trying to figure out how to extract the numerical part of the triggering div's id and then attach it to events within the code, thus using one set of code for multiple menu pairs. A snippet of code is below to show all the uses of the numerical part (using the jDiv plugin from Skyrocket Labs). var hide01 = false; $("#nav1").hover(function(){ if (hide01) clearTimeout(hide01); $("#hidden1").show(); $(this).addClass("active"); } ...... etc
In general someone hovers over the #nav1 div, which in turn reveals the #hidden1 div, same for nav2 & hidden2, nav3 & hidden3, etc. Right now I am simply duplicating the code for each pair, but it would be nice to figure out how to use variables and reduce code size. I understand it is possible to perhaps get the numerical part using $(this.id).replace('nav','') But haven't figured out how to attach it to the various values within the code (hide, #nav, #hidden).