Better image contracting repositioning.

It will scroll depending on the position of the post after contracting instead of the position of the
image before contracting.
This commit is contained in:
Nicolas Stepien 2013-03-29 18:16:35 +01:00
parent 140aca5460
commit e63b0705d3

View File

@ -3233,20 +3233,16 @@ ImageExpand =
unless post.file.isExpanded or $.hasClass thumb, 'expanding'
ImageExpand.expand post
return
rect = thumb.parentNode.getBoundingClientRect()
if rect.bottom > 0 # Should be at least partially visible.
# Scroll back to the thumbnail when contracting the image
# to avoid being left miles away from the relevant post.
postRect = post.nodes.root.getBoundingClientRect()
headRect = Header.toggle.getBoundingClientRect()
top = postRect.top - headRect.top - headRect.height - 2
root = if $.engine is 'webkit'
d.body
else
doc
root.scrollTop += top if rect.top < 0
root.scrollLeft = 0 if rect.left < 0
ImageExpand.contract post
rect = post.nodes.root.getBoundingClientRect()
return unless rect.top <= 0 or rect.left <= 0
# Scroll back to the thumbnail when contracting the image
# to avoid being left miles away from the relevant post.
headRect = Header.toggle.getBoundingClientRect()
top = rect.top - headRect.top - headRect.height
root = if $.engine is 'webkit' then d.body else doc
root.scrollTop += top if rect.top < 0
root.scrollLeft = 0 if rect.left < 0
contract: (post) ->
$.rmClass post.nodes.root, 'expanded-image'