本文整理汇总了TypeScript中@interactjs/utils/raf.request函数的典型用法代码示例。如果您正苦于以下问题:TypeScript request函数的具体用法?TypeScript request怎么用?TypeScript request使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了request函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的TypeScript代码示例。
示例1: smothEndTick
function smothEndTick (interaction: Interact.Interaction) {
updateInertiaCoords(interaction)
const state = interaction.inertia
const t = interaction._now() - state.t0
const { smoothEndDuration: duration } = getOptions(interaction)
if (t < duration) {
state.sx = utils.easeOutQuad(t, 0, state.xe, duration)
state.sy = utils.easeOutQuad(t, 0, state.ye, duration)
interaction.move()
state.timeout = raf.request(() => smothEndTick(interaction))
}
else {
state.sx = state.xe
state.sy = state.ye
interaction.move()
interaction.end(state.startEvent)
state.smoothEnd =
state.active = false
interaction.simulation = null
}
}
开发者ID:taye,项目名称:interact.js,代码行数:27,代码来源:index.ts
示例2: inertiaTick
function inertiaTick (interaction: Interact.Interaction) {
updateInertiaCoords(interaction)
utils.pointer.setCoordDeltas(interaction.coords.delta, interaction.coords.prev, interaction.coords.cur)
utils.pointer.setCoordVelocity(interaction.coords.velocity, interaction.coords.delta)
const state = interaction.inertia
const options = getOptions(interaction)
const lambda = options.resistance
const t = interaction._now() / 1000 - state.t0
if (t < state.te) {
const progress = 1 - (Math.exp(-lambda * t) - state.lambda_v0) / state.one_ve_v0
if (state.modifiedXe === state.xe && state.modifiedYe === state.ye) {
state.sx = state.xe * progress
state.sy = state.ye * progress
}
else {
const quadPoint = utils.getQuadraticCurvePoint(
0, 0,
state.xe, state.ye,
state.modifiedXe, state.modifiedYe,
progress)
state.sx = quadPoint.x
state.sy = quadPoint.y
}
interaction.move()
state.timeout = raf.request(() => inertiaTick(interaction))
}
else {
state.sx = state.modifiedXe
state.sy = state.modifiedYe
interaction.move()
interaction.end(state.startEvent)
state.active = false
interaction.simulation = null
}
utils.pointer.copyCoords(interaction.coords.prev, interaction.coords.cur)
}
开发者ID:taye,项目名称:interact.js,代码行数:44,代码来源:index.ts
示例3: getOptions
function release<T extends Interact.ActionName> (
{ interaction, event, noPreEnd }: Interact.SignalArg,
scope: Interact.Scope
) {
const state = interaction.inertia
if (!interaction.interacting() ||
(interaction.simulation && interaction.simulation.active) ||
noPreEnd) {
return null
}
const options = getOptions(interaction)
const now = interaction._now()
const { client: velocityClient } = interaction.coords.velocity
const pointerSpeed = utils.hypot(velocityClient.x, velocityClient.y)
let smoothEnd = false
let modifierResult: ReturnType<typeof modifiers.setAll>
// check if inertia should be started
const inertiaPossible = (options && options.enabled &&
interaction.prepared.name !== 'gesture' &&
event !== state.startEvent)
const inertia = (inertiaPossible &&
(now - interaction.coords.cur.timeStamp) < 50 &&
pointerSpeed > options.minSpeed &&
pointerSpeed > options.endSpeed)
const modifierArg = {
interaction,
pageCoords: utils.extend({}, interaction.coords.cur.page),
states: inertiaPossible && interaction.modifiers.states.map(
(modifierStatus) => utils.extend({}, modifierStatus)
),
preEnd: true,
prevCoords: undefined,
requireEndOnly: null,
}
// smoothEnd
if (inertiaPossible && !inertia) {
modifierArg.prevCoords = interaction.prevEvent.page
modifierArg.requireEndOnly = false
modifierResult = modifiers.setAll(modifierArg)
if (modifierResult.changed) {
smoothEnd = true
}
}
if (!(inertia || smoothEnd)) { return null }
utils.pointer.copyCoords(state.upCoords, interaction.coords.cur)
interaction.pointers[0].pointer = state.startEvent = new scope.InteractEvent(
interaction,
event,
// FIXME add proper typing Action.name
interaction.prepared.name as T,
EventPhase.InertiaStart,
interaction.element,
)
state.t0 = now
state.active = true
state.allowResume = options.allowResume
interaction.simulation = state
interaction.interactable.fire(state.startEvent)
if (inertia) {
state.vx0 = interaction.coords.velocity.client.x
state.vy0 = interaction.coords.velocity.client.y
state.v0 = pointerSpeed
calcInertia(interaction, state)
utils.extend(modifierArg.pageCoords, interaction.coords.cur.page)
modifierArg.pageCoords.x += state.xe
modifierArg.pageCoords.y += state.ye
modifierArg.prevCoords = undefined
modifierArg.requireEndOnly = true
modifierResult = modifiers.setAll(modifierArg)
state.modifiedXe += modifierResult.delta.x
state.modifiedYe += modifierResult.delta.y
state.timeout = raf.request(() => inertiaTick(interaction))
}
else {
state.smoothEnd = true
state.xe = modifierResult.delta.x
state.ye = modifierResult.delta.y
//.........这里部分代码省略.........
开发者ID:taye,项目名称:interact.js,代码行数:101,代码来源:index.ts
示例4: start
x: 0,
y: 0, // Direction each pulse is to scroll in
isScrolling: false,
prevTime: 0,
margin: 0,
speed: 0,
start (interaction: Interact.Interaction) {
autoScroll.isScrolling = true
raf.cancel(autoScroll.i)
interaction.autoScroll = autoScroll
autoScroll.interaction = interaction
autoScroll.prevTime = autoScroll.now()
autoScroll.i = raf.request(autoScroll.scroll)
},
stop () {
autoScroll.isScrolling = false
if (autoScroll.interaction) {
autoScroll.interaction.autoScroll = null
}
raf.cancel(autoScroll.i)
},
// scroll the window by the values in scroll.x/y
scroll () {
const { interaction } = autoScroll
const { interactable, element } = interaction
const options = interactable.options[autoScroll.interaction.prepared.name].autoScroll
开发者ID:taye,项目名称:interact.js,代码行数:31,代码来源:index.ts
注:本文中的@interactjs/utils/raf.request函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论