Пытался сделать ссылки "в конец" / "в начало". Первая работает нормально, переход идёт как к <a name="id"/>, так и к <div id="id"/>, окно скроллится к ним. Но вот обратно (вверх) не хочет почему-то.
Также не работает и dom::element(root.find_first("div#top")).scroll_to_view().
Здравствуйте, flаt, Вы писали:
F>Пытался сделать ссылки "в конец" / "в начало". Первая работает нормально, переход идёт как к <a name="id"/>, так и к <div id="id"/>, окно скроллится к ним. Но вот обратно (вверх) не хочет почему-то.
F>Также не работает и dom::element(root.find_first("div#top")).scroll_to_view().
Вот пример (в Sciter):
<html>
<head>
<title></title>
<style>
ol { size:*; overflow:auto; border:1px solid; }
ol > li { margin-top:10px; margin-bottom:10px; }
</style>
<script type="text/tiscript">
function self.ready() {
var list = $(ol);
for(var i in 100)
list.$append(<li>item no {i}</li>);
}
$(button#to-first).onClick = function() { $(ol).first.scrollToView(); }
$(button#to-last).onClick = function() { $(ol).last.scrollToView(); }
$(button#to-top).onClick = function() { $(ol).scrollTo(0,0); }
$(button#to-bottom).onClick = function() { $(ol).scrollTo(0,100000); } // large enough number
</script>
</head>
<body>
<button #to-first>To the first</button>
<button #to-last>To the last</button>
<button #to-top>To the top</button>
<button #to-bottom>To the bottom</button>
<ol>
</ol>
</body>
</html>
Аналог Element.scrollToView() -> HTMLayout/SciterScrollToView(HELEMENT he, UINT SciterScrollFlags);
Аналог Element.scrollTo() -> HTMLayout/SciterSetScrollPos(HELEMENT he, POINT scrollPos);
Чем этот пример в принципе отличается от твоего?
Здравствуйте, c-smile, Вы писали:
CS>Чем этот пример в принципе отличается от твоего?
Вот не знаю.
Вот минимальный пример, Skiter2 тоже не переходит вверх.
Собственно, из стилей вообще только "widget[type="select"] { min-height: max-intrinsic; }" можно оставить и всё равно не скроллит.
Здравствуйте, flаt, Вы писали:
F>Здравствуйте, c-smile, Вы писали:
CS>>Чем этот пример в принципе отличается от твоего?
F>Вот не знаю. Вот минимальный пример, Skiter2 тоже не переходит вверх.
(настоятельно рекомендую использовать UTF-8 во избежание проблем)
По делу: Не тому элементу имя присвоил, сделай так и все будет работать как ты хочешь.
<div>
<h2 name="video">Âèäåî <a href="#audio" titleid="go-audio">Àóäèî</a></h2>
<widget type="select" id="camera-list"></widget>
</div>
....
<div>
<h2 name="audio">Àóäèî <a href="#video" titleid="go-video" class="link">Âèäåî</a></h2>
<widget type="select" id="microphone-list"></widget>
</div>
У тебя был сделан переход на элемент (<div id=video>) который по высоте превышает высоту скролируемого view. Т.е. он всегда видим частично.
В момент когда ты жмешь на <a href="#video"> этот <div id=video> элемент виден на экране, поэтому собственно ничего и не делается — он уже виден и отобразить его полностью нельзя ни при каких условиях.
Починить сие можно так как я показал. Переход делается на элемент который более подходит по смыслу и который заведомо меньше view.