summaryrefslogtreecommitdiff
path: root/js
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-07-10 22:11:24 +0400
committerAndrew Dolgov <[email protected]>2013-07-10 22:11:24 +0400
commit8ee5e9e5e69e9a54dabad9abc580cc2391198464 (patch)
treeb132d56b9e34de9c3224dd86b8a184b039f54c61 /js
parenta290e9ea2ec80f033abb6eae38d4a9cb80a6b9b2 (diff)
rework floatingtitle
Diffstat (limited to 'js')
-rw-r--r--js/viewfeed.js51
1 files changed, 39 insertions, 12 deletions
diff --git a/js/viewfeed.js b/js/viewfeed.js
index 0cdb09425..ec7706547 100644
--- a/js/viewfeed.js
+++ b/js/viewfeed.js
@@ -2215,27 +2215,54 @@ function openSelectedAttachment(elem) {
}
}
+function scrollToRowId(id) {
+ try {
+ var row = $(id);
+
+ if (row)
+ $("headlines-frame").scrollTop = row.offsetTop;
+
+ } catch (e) {
+ exception_error("scrollToRowId", e);
+ }
+}
+
function updateFloatingTitle() {
try {
var hf = $("headlines-frame");
var child = $("RROW-" + _active_article_id);
- if (child && child.offsetTop + child.offsetHeight > hf.scrollTop) {
+ var elems;
- var header = child.getElementsByClassName("cdmHeader")[0];
+ if (getInitParam("cdm_auto_catchup"))
+ elems = [$$("RROW-" + _active_article_id)];
+ else
+ elems = $$("#headlines-frame > div[id*=RROW]");
- if (child.id != $("floatingTitle").getAttribute("rowid")) {
- $("floatingTitle").setAttribute("rowid", child.id);
- $("floatingTitle").innerHTML = header.innerHTML;
+ for (var i = 0; i < elems.length; i++) {
- PluginHost.run(PluginHost.HOOK_FLOATING_TITLE, child);
- }
+ var child = elems[i];
- if (child.offsetTop < hf.scrollTop - header.offsetHeight - 100 &&
- child.offsetTop + child.offsetHeight - hf.scrollTop > 100)
- Element.show("floatingTitle");
- else
- Element.hide("floatingTitle");
+ if (child && child.offsetTop + child.offsetHeight > hf.scrollTop) {
+
+ var header = child.getElementsByClassName("cdmHeader")[0];
+
+ if (child.id != $("floatingTitle").getAttribute("rowid")) {
+ $("floatingTitle").setAttribute("rowid", child.id);
+ $("floatingTitle").innerHTML = header.innerHTML;
+ $("floatingTitle").firstChild.innerHTML = "<img class='anchor markedPic' src='images/page_white_go.png' onclick=\"scrollToRowId('"+child.id+"')\">" + $("floatingTitle").firstChild.innerHTML;
+
+ PluginHost.run(PluginHost.HOOK_FLOATING_TITLE, child);
+ }
+
+ if (child.offsetTop < hf.scrollTop - header.offsetHeight)
+ Element.show("floatingTitle");
+ else
+ Element.hide("floatingTitle");
+
+ return;
+
+ }
}
} catch (e) {