Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
f433fe00
Commit
f433fe00
authored
Oct 14, 2013
by
Ezio Melotti
Browse files
Options
Browse Files
Download
Plain Diff
#4965: merge with 3.3.
parents
465ada74
71873801
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
46 additions
and
6 deletions
+46
-6
Doc/tools/sphinxext/static/basic.css
Doc/tools/sphinxext/static/basic.css
+2
-0
Doc/tools/sphinxext/static/sidebar.js
Doc/tools/sphinxext/static/sidebar.js
+44
-6
No files found.
Doc/tools/sphinxext/static/basic.css
View file @
f433fe00
...
...
@@ -38,6 +38,8 @@ div.related li.right {
/* -- sidebar --------------------------------------------------------------- */
div
.sphinxsidebarwrapper
{
position
:
relative
;
top
:
0
;
padding
:
10px
5px
0
10px
;
word-wrap
:
break-word
;
}
...
...
Doc/tools/sphinxext/static/sidebar.js
View file @
f433fe00
...
...
@@ -2,7 +2,8 @@
* sidebar.js
* ~~~~~~~~~~
*
* This script makes the Sphinx sidebar collapsible.
* This script makes the Sphinx sidebar collapsible and implements intelligent
* scrolling.
*
* .sphinxsidebar contains .sphinxsidebarwrapper. This script adds in
* .sphixsidebar, after .sphinxsidebarwrapper, the #sidebarbutton used to
...
...
@@ -24,6 +25,8 @@ $(function() {
// global elements used by the functions.
// the 'sidebarbutton' element is defined as global after its
// creation, in the add_sidebar_button function
var
jwindow
=
$
(
window
);
var
jdocument
=
$
(
document
);
var
bodywrapper
=
$
(
'
.bodywrapper
'
);
var
sidebar
=
$
(
'
.sphinxsidebar
'
);
var
sidebarwrapper
=
$
(
'
.sphinxsidebarwrapper
'
);
...
...
@@ -42,6 +45,13 @@ $(function() {
var
dark_color
=
'
#AAAAAA
'
;
var
light_color
=
'
#CCCCCC
'
;
function
get_viewport_height
()
{
if
(
window
.
innerHeight
)
return
window
.
innerHeight
;
else
return
jwindow
.
height
();
}
function
sidebar_is_collapsed
()
{
return
sidebarwrapper
.
is
(
'
:not(:visible)
'
);
}
...
...
@@ -51,6 +61,8 @@ $(function() {
expand_sidebar
();
else
collapse_sidebar
();
// adjust the scrolling of the sidebar
scroll_sidebar
();
}
function
collapse_sidebar
()
{
...
...
@@ -95,11 +107,7 @@ $(function() {
);
var
sidebarbutton
=
$
(
'
#sidebarbutton
'
);
// find the height of the viewport to center the '<<' in the page
var
viewport_height
;
if
(
window
.
innerHeight
)
viewport_height
=
window
.
innerHeight
;
else
viewport_height
=
$
(
window
).
height
();
var
viewport_height
=
get_viewport_height
();
var
sidebar_offset
=
sidebar
.
offset
().
top
;
var
sidebar_height
=
Math
.
max
(
bodywrapper
.
height
(),
sidebar
.
height
());
sidebarbutton
.
find
(
'
span
'
).
css
({
...
...
@@ -152,4 +160,34 @@ $(function() {
add_sidebar_button
();
var
sidebarbutton
=
$
(
'
#sidebarbutton
'
);
set_position_from_cookie
();
/* intelligent scrolling */
function
scroll_sidebar
()
{
var
sidebar_height
=
sidebarwrapper
.
height
();
var
viewport_height
=
get_viewport_height
();
var
offset
=
sidebar
.
position
()[
'
top
'
];
var
wintop
=
jwindow
.
scrollTop
();
var
winbot
=
wintop
+
viewport_height
;
var
curtop
=
sidebarwrapper
.
position
()[
'
top
'
];
var
curbot
=
curtop
+
sidebar_height
;
// does sidebar fit in window?
if
(
sidebar_height
<
viewport_height
)
{
// yes: easy case -- always keep at the top
sidebarwrapper
.
css
(
'
top
'
,
$u
.
min
([
$u
.
max
([
0
,
wintop
-
offset
-
10
]),
jdocument
.
height
()
-
sidebar_height
-
200
]));
}
else
{
// no: only scroll if top/bottom edge of sidebar is at
// top/bottom edge of window
if
(
curtop
>
wintop
&&
curbot
>
winbot
)
{
sidebarwrapper
.
css
(
'
top
'
,
$u
.
max
([
wintop
-
offset
-
10
,
0
]));
}
else
if
(
curtop
<
wintop
&&
curbot
<
winbot
)
{
sidebarwrapper
.
css
(
'
top
'
,
$u
.
min
([
winbot
-
sidebar_height
-
offset
-
20
,
jdocument
.
height
()
-
sidebar_height
-
200
]));
}
}
}
jwindow
.
scroll
(
scroll_sidebar
);
});
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment