На стандартной странице SharePoint прокручивается только рабочая область страницы, без ленты.
Реализовано это в файле init.js (в функции FixRibbonAndWorkspaceDimensions
) автоматическим присвоением блоку s4-workspace определенной ширины и высоты.
Например, параметр высота задается так:
Если лента свернута, s4-ribbonrow.высота = 44px + WebPartAdderUpdatePanelContainer.высота
Если лента развернута, s4-ribbonrow.высота = 155px + WebPartAdderUpdatePanelContainer.высота
s4-workspace.высота = window.innerHeight – s4-ribbonrow.высота – s4-ribbonrow.
Исходный код этой функции:
function FixRibbonAndWorkspaceDimensions() {
a: ;
g_frl = true;
var b = GetCachedElement("s4-ribbonrow"), a = GetCachedElement("s4-workspace"), f = GetCachedElement("s4-titlerow"), c = GetCachedElement("s4-bodyContainer");
if (!b || !a || !c) return;
if (!g_setWidthInited) {
var h = true;
if (a.className.indexOf("s4-nosetwidth") > -1) h = false;
g_setWidth = h;
g_setWidthInited = true
} else var h = g_setWidth;
var l = RibbonIsMinimized() ? 44 : 135, j = l + g_wpadderHeight;
if (GetCurrentEltStyle(b, "visibility") == "hidden") j = 0;
b.style.height = j + "px";
var d = g_viewportHeight;
if (null === d) { d = GetViewportHeight(); g_viewportHeight = d } var e = d - b.offsetHeight - AbsTop(b);
if (e < 0) e = 0; a.style.height = e + "px";
if (h) {
a.style.width = document.documentElement.clientWidth + "px";
if (c.offsetWidth < a.clientWidth) c.style.width = a.clientWidth + "px";
if (f) {
f.style.width = Math.max(c.offsetWidth - 1, 0) + "px"; f.className += " ms-titlerowborder"
}
} var m = browseris.ie && browseris.iever == 7 && !browseris.ie8standard;
if (!g_setScrollPos) {
browseris.firefox && browseris.firefox36up && window.scroll(0, 0);
if (window.location.search.match("[?&]IsDlg=1")) if (!m || a.scrollHeight < a.clientHeight) a.style.overflowY = "auto";
var g = document.getElementById("_maintainWorkspaceScrollPosition");
if (g != null && g.value != null) a.scrollTop = g.value;
g_setScrollPos = true
} for (var k = [].concat(g_workspaceResizedHandlers), i = 0, n = k.length; i < n; i++) k[i]();
g_frl = false
}
Можете переопределить данную функцию - в свою главную страницу скопировать данный код в блок <script> и внести необходимые изменения.
При работе в диалоге под размерами экрана подразумевается размер элемента iframe, в котором содержится страница.
Сначала автоматически под содержимое подгоняется размер iframe, а затем размер s4-workspace.