AABB
AlignmentBehavior
ArriveBehavior
AStar
BFS
BoundingSphere
BVH
BVHNode
Cell
CellSpacePartitioning
CohesionBehavior
CompositeGoal
ConvexHull
Corridor
CostTable
DFS
Dijkstra
Edge
EntityManager
EvadeBehavior
EventDispatcher
Behavior
FollowPathBehavior
FuzzyAND
FuzzyCompositeTerm
FuzzyFAIRLY
FuzzyModule
FuzzyOR
FuzzyRule
FuzzySet
FuzzyTerm
FuzzyVariable
FuzzyVERY
GameEntity
Goal
GoalEvaluator
Graph
GraphUtils
HalfEdge
HeuristicPolicyDijkstra
HeuristicPolicyEuclid
HeuristicPolicyEuclidSquared
HeuristicPolicyManhattan
InterposeBehavior
LeftSCurveFuzzySet
LeftShoulderFuzzySet
LineSegment
Logger
MathUtils
Matrix3
Matrix4
MemoryRecord
MemorySystem
MeshGeometry
MessageDispatcher
MovingEntity
NavEdge
NavMesh
NavMeshLoader
NavNode
Node
NormalDistFuzzySet
OBB
ObstacleAvoidanceBehavior
OffsetPursuitBehavior
OnPathBehavior
Path
Plane
Polygon
Polyhedron
PriorityQueue
PursuitBehavior
Quaternion
Ray
RectangleTriggerRegion
Regular
RightSCurveFuzzySet
RightShoulderFuzzySet
SAT
SeekBehavior
SeparationBehavior
SingletonFuzzySet
Smoother
SphericalTriggerRegion
State
StateMachine
SteeringBehavior
SteeringManager
Task
TaskQueue
Telegram
Think
Time
TriangularFuzzySet
Trigger
TriggerRegion
Vector3
Vehicle
Version
WanderBehavior

calculate

功能描述

calculate 方法用于计算滚动条的位置和滚动目标元素的位置,并通过动画滚动到目标位置。该方法执行时会触发 start 事件和 end 事件。

语法

seekBehavior.calculate(target, duration, offset);

参数说明

  • target:目标元素,可以是一个 HTML 元素或者是一个 jQuery 对象。
  • duration:动画持续时间,单位毫秒。默认值为 500。
  • offset:目标元素的偏移量,即滚动至目标元素时,相对于元素顶部的距离。默认值为 0。

使用示例

<!-- HTML 结构 -->
<div id="container">
  <ul>
    <li>Item 1</li>
    <li>Item 2</li>
    <li>Item 3</li>
    <li>Item 4</li>
    <li>Item 5</li>
  </ul>
</div>
// 初始化
var yuka = new Yuka('#container');

// 绑定事件
yuka.bind('start', function() {
  console.log('开始滚动');
}).bind('end', function() {
  console.log('滚动结束');
});

// 执行 calculate 方法
yuka.seekBehavior.calculate($('#container li:eq(2)'), 1000, 100);

事件说明

在执行 calculate 方法时,会触发两个事件:start 事件和 end 事件,分别表示滚动开始和结束。可以通过 bind 方法来绑定这两个事件。

yuka.bind('start', function() {
  console.log('开始滚动');
}).bind('end', function() {
  console.log('滚动结束');
});

start 事件

start 事件会在滚动开始时触发,它没有任何参数。

end 事件

end 事件会在滚动结束时触发,它没有任何参数。

异常情况

如果 target 参数不是一个有效的元素,则会抛出一个异常。

如果 duration 参数不是一个有效的数字,则默认为 500 毫秒。

如果 offset 参数不是一个有效的数字,则默认为 0。