не работает скролл вверх
От: flаt  
Дата: 07.08.13 20:53
Оценка:
Пытался сделать ссылки "в конец" / "в начало". Первая работает нормально, переход идёт как к <a name="id"/>, так и к <div id="id"/>, окно скроллится к ним. Но вот обратно (вверх) не хочет почему-то.

Также не работает и dom::element(root.find_first("div#top")).scroll_to_view().
Re: не работает скролл вверх
От: c-smile Канада http://terrainformatica.com
Дата: 07.08.13 22:02
Оценка:
Здравствуйте, 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);

Чем этот пример в принципе отличается от твоего?
Re[2]: не работает скролл вверх
От: flаt  
Дата: 08.08.13 07:06
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Чем этот пример в принципе отличается от твоего?

Вот не знаю. Вот минимальный пример, Skiter2 тоже не переходит вверх.

Собственно, из стилей вообще только "widget[type="select"] { min-height: max-intrinsic; }" можно оставить и всё равно не скроллит.
Re[3]: не работает скролл вверх
От: c-smile Канада http://terrainformatica.com
Дата: 08.08.13 17:31
Оценка: 4 (1)
Здравствуйте, flаt, Вы писали:

F>Здравствуйте, c-smile, Вы писали:


CS>>Чем этот пример в принципе отличается от твоего?

F>Вот не знаю. Вот минимальный пример, Skiter2 тоже не переходит вверх.

(настоятельно рекомендую использовать UTF-8 во избежание проблем)

По делу: Не тому элементу имя присвоил, сделай так и все будет работать как ты хочешь.


<div>
   <h2 name="video">Âèäåî&nbsp;<a href="#audio" titleid="go-audio">Àóäèî</a></h2>
   <widget type="select" id="camera-list"></widget>
</div>
....
<div>
   <h2 name="audio">Àóäèî&nbsp;<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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.