get new hover working in catalog

This commit is contained in:
ccd0 2014-04-05 21:59:29 -07:00
parent 904af13063
commit e1c9330250
7 changed files with 72 additions and 50 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -311,7 +311,7 @@ UI = do ->
$.off d, 'mouseup', @up
$.set "#{@id}.position", @style.cssText
hoverstart = ({root, el, latestEvent, endEvents, asapTest, cb, offsetX, offsetY}) ->
hoverstart = ({root, el, latestEvent, endEvents, asapTest, cb, offsetX, offsetY, noRemove}) ->
o = {
root
el
@ -323,6 +323,7 @@ UI = do ->
clientWidth: doc.clientWidth
offsetX: offsetX or 45
offsetY: offsetY or -120
noRemove
}
o.hover = hover.bind o
o.hoverend = hoverend.bind o
@ -339,7 +340,7 @@ UI = do ->
$.on root, 'mousemove', o.hover
<% if (type === 'userscript') { %>
# Workaround for https://github.com/MayhemYDG/4chan-x/issues/377
o.workaround = (e) -> o.hoverend() unless root.contains e.target
o.workaround = (e) -> o.hoverend(e) unless root.contains e.target
$.on doc, 'mousemove', o.workaround
<% } %>
@ -368,7 +369,7 @@ UI = do ->
hoverend = (e) ->
return if e.type is 'keydown' and e.keyCode isnt 13 or e.target.nodeName is "TEXTAREA"
$.rm @el if @el.parentNode is Header.hover
$.rm @el unless @noRemove
$.off @root, @endEvents, @hoverend
$.off d, 'keydown', @hoverend
$.off @root, 'mousemove', @hover

View File

@ -824,10 +824,15 @@ span.hide-announcement {
/* File */
.fileText:hover .fntrunc,
.fileText:not(:hover) .fnfull,
.expanded-image > .post > .file > .fileThumb > img[data-md5],
:not(.expanded-image) > .post > .file .full-image:not(#ihover) {
.expanded-image > .post > .file > .fileThumb > img[data-md5] {
display: none;
}
.full-image:not(#ihover) {
display: none;
}
.expanded-image > .post > .file .full-image:not(#ihover) {
display: inline;
}
.expanding {
opacity: .5;
}

View File

@ -91,7 +91,7 @@ ImageExpand =
video.pause()
for eventName, cb of ImageExpand.videoCB
$.off video, eventName, cb
TrashQueue.add video
TrashQueue.add video, post
post.file.videoControls?.map($.rm)
delete post.file.videoControls
$.rmClass post.nodes.root, 'expanded-image'

View File

@ -12,7 +12,7 @@ ImageHover =
return unless @file?.isImage or @file?.isVideo
$.on @file.thumb, 'mouseover', ImageHover.mouseover
catalogNode: ->
return unless @thread.OP.file?.isImage
return unless @thread.OP.file?.isImage or @thread.OP.file?.isVideo
$.on @nodes.thumb, 'mouseover', ImageHover.mouseover
mouseover: (e) ->
post = if $.hasClass @, 'thumb'
@ -29,7 +29,10 @@ ImageHover =
src: post.file.URL
post.file.fullImage = el
{thumb} = post.file
$.after (if isVideo and Conf['Show Controls'] then thumb.parentNode else thumb), el
if d.body.contains thumb
$.after (if isVideo and Conf['Show Controls'] then thumb.parentNode else thumb), el
else
$.add Header.hover, el
el.id = 'ihover'
el.dataset.fullID = post.fullID
if isVideo
@ -44,10 +47,11 @@ ImageHover =
latestEvent: e
endEvents: 'mouseout click'
asapTest: -> el[naturalHeight]
noRemove: true
cb: ->
if isVideo
el.pause()
TrashQueue.add el
TrashQueue.add el, post
el.removeAttribute 'id'
$.on el, 'error', ImageHover.error
error: ->

View File

@ -1,12 +1,12 @@
TrashQueue =
init: -> return
add: (video) ->
if video isnt @killNext and @killNext
post = Get.postFromNode @killNext
delete post?.file?.fullImage
add: (video, post) ->
if @killNext and video isnt @killNext
delete @killNextPost?.file?.fullImage
$.rm @killNext
@killNext = video
@killNextPost = post
remove: (video) ->
if video is @killNext