У меня есть прокрутка с несколькими изображениями.
события работают так, что прокрутку можно перетаскивать.
я хочу иметь возможность щелкнуть одно изображение, чтобы получить подробное представление, поэтому использовал:
surface.on 'click', => @parent.navTo('detail')
однако это приводит к тому, что если я щелкну изображение при прокрутке, вышеуказанное событие также сработает.
я думаю, это единственная причина, по которой мобильные браузеры имеют задержку в 300 мс, чтобы определить, щелкаете ли вы или перетаскиваете. Есть ли у Famous другие события, которые стоит послушать?
В inputs/FastClick.js я вижу только «touchstart», «touchmove» и «touchend».
мы должны отслеживать, произошло ли движение перетаскивания, в нашем собственном коде, или знаменитый движок помогает с этим?
FWIW я использую GenericSync для передачи событий и для того, чтобы представление также работало на рабочем столе.
constructor: (@parentView, @data) ->
SCROLLDIR = 1 # 0 horiz, 1 vertical
super({
direction: SCROLLDIR
paginated: true
pageStopSpeed: 5
})
@addContent()
@mouseSync = new famous.inputs.MouseSync({direction: SCROLLDIR})
@mouseSync.pipe(this)
addContent: () ->
comics = Comics.find()
surfaces = []
@sequenceFrom(surfaces)
for item in comics.fetch()
div = document.createElement('div')
comp = UI.renderWithData(Template.comicCover, item)
UI.insert(comp, div)
surface = new famous.core.Surface({
content: div
size: [undefined, 400]
properties:
backgroundColor: "#eff"
})
surfaces.push(surface)
surface.pipe(this)
surface.on 'click', => @parentView.navTo('comicPages')
# surface.pipe(@mouseSync)
return @surface