Open GoogleCodeExporter opened 8 years ago
Oh yeah, the url to the standard:
http://www.w3.org/html/wg/html5/#scrollintoview
it doesn't mention horizontal scrolling.
Original comment by doek...@gmail.com
on 21 Jul 2007 at 8:50
If it is only a few lines of code then by all means code it up. If it requires
a lot
of code then I don't consider it important enough to include in base2.DOM. You
can
alway write it as an optional Module if that is the case. Maybe DOM/extras is
something we should create either way?
Original comment by dean.edw...@gmail.com
on 23 Jul 2007 at 9:04
DOM/extras it is. We can always merge it with DOM later.
Original comment by doek...@gmail.com
on 23 Jul 2007 at 9:21
Hey. If scrollIntoView fix is only a couple of lines it can still go in
base2.DOM
core. But It would be nice to have some /extras/ for other stuff.
Or we can namespace it (with lazy loading in mind).
e.g. base2.use(DOM.Element.scrollIntoView);
Which would mean that the code lived here:
/svn/version/whatever/DOM/HTMLElement/scrollIntoView.js
Thoughts?
Original comment by dean.edw...@gmail.com
on 23 Jul 2007 at 9:54
I will come up with my javascript builder idea shortly. Then we talk.
The code for scrollIntoView at the moment is:
---8<----------------------------------------------------------------------
function GetWindowHeight() {
return window.innerHeight||document.documentElement&&document.documentElement.clientHeight||document.body.clientHeight||0;
}
function GetScrollTop() {
return window.pageYOffset||document.documentElement&&document.documentElement.scrollTop || document.body.scrollTop||0;
}
function GetTop(element) {
var pos=0;
do pos+=element.offsetTop
while(element=element.offsetParent);
return pos;
}
function InView(element,margin) {
if(typeof element=='string') element=$(element);
if(!margin) margin=0;
var Top=GetTop(element), ScrollTop=GetScrollTop();
return !(Top<ScrollTop+margin || Top>ScrollTop+GetWindowHeight()-element.offsetHeight-margin);
}
function ScrollIntoView(element,bAlignTop,margin) {
if(typeof element=='string') element=$(element);
if(!margin) margin=0;
var posY=GetTop(element);
if(bAlignTop) posY-=margin;
else posY+=element.offsetHeight+margin-GetWindowHeight();
window.scrollTo(0, posY);
}
---8<----------------------------------------------------------------------
to long?
Original comment by doek...@gmail.com
on 23 Jul 2007 at 10:06
Too long.
Original comment by dean.edw...@gmail.com
on 23 Jul 2007 at 1:06
That too ;-)
Original comment by doek...@gmail.com
on 23 Jul 2007 at 3:42
We could create DOM/HTML5, and also move getElementsByClassName to there, and
implement:
irrelevant, draggable there. But I for starters, I implement the DOM/strict way.
Original comment by doek...@gmail.com
on 23 Jul 2007 at 10:02
I've added the code to DOM/extras for the moment. One note about the
enhancement. I just found out all
modern browsers support it. Probably an early version of Safari 2 didn't
support it, and Opera8 en Firefox1. But
it's good to have it.
Shall we rename extras to html5?
Original comment by doek...@gmail.com
on 23 Jul 2007 at 11:07
I'm not sure I want to start an HTML5 project just yet. It will just give people
ideas. Leave the code in extras for the time being. It may become useful later.
But
what we really need is documentation! :-)
Original comment by dean.edw...@gmail.com
on 24 Jul 2007 at 12:38
The code is in subversion, but there's a bug: doesn't work on
overflow+fixed-height elements.
I'll pick this up later, since this is actually a legacy enhancement.
Original comment by doek...@gmail.com
on 27 Jul 2007 at 11:24
Original issue reported on code.google.com by
doek...@gmail.com
on 21 Jul 2007 at 8:49