aboutsummaryrefslogtreecommitdiff
path: root/files/zh-cn/web/api/scrolltooptions/index.html
blob: 53593c4232906d3fca032e38f0d0aa6012686a8c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
---
title: ScrollToOptions
slug: Web/API/ScrollToOptions
translation_of: Web/API/ScrollToOptions
---
<div>{{ APIRef("CSSOM View") }}</div>

<p class="summary">CSSOM View 规范的 <strong><code>ScrollToOptions</code></strong> 字典(dictionary)当中的属性用于指定一个元素应该滚动到哪里,以及滚动是否应该平滑。</p>

<p>一个 <code>ScrollToOptions</code> 字典可以作为参数提供给下面的方法:</p>

<ul>
 <li>{{domxref("Window.scroll()")}}</li>
 <li>{{domxref("Window.scrollBy()")}}</li>
 <li>{{domxref("Window.scrollTo()")}}</li>
 <li>{{domxref("Element.scroll()")}}</li>
 <li>{{domxref("Element.scrollBy()")}}</li>
 <li>{{domxref("Element.scrollTo()")}}</li>
</ul>

<h2 id="属性">属性</h2>

<dl>
 <dt>{{domxref("ScrollToOptions.top")}}</dt>
 <dd>指定 window 或元素 Y 轴方向滚动的像素数。</dd>
 <dt>{{domxref("ScrollToOptions.left")}}</dt>
 <dd>指定 window 或元素 X 轴方向滚动的像素数。</dd>
 <dt>{{domxref("ScrollToOptions.behavior")}}</dt>
 <dd>指定滚动是否应该平滑进行,还是立即跳到指定位置。该属性实际上定义在 <code>ScrollOptions</code> 字典上,它通过 <code>ScrollToOptions</code> 实现。</dd>
</dl>

<h2 id="示例">示例</h2>

<p>在我们的 <a href="https://github.com/mdn/dom-examples/tree/master/scrolltooptions">scrolltooptions </a>示例中(<a href="https://mdn.github.io/dom-examples/scrolltooptions/">在线查看 </a>),包含一个表单,允许用户输入三个值——两个数值表示 left 和 top 属性(即沿 X 和 Y 轴方向滚动后的位置),以及一个表示是否开启平滑滚动的复选框。</p>

<p>当提交表单时,会运行事件监听器,该事件监听器会把输入的值写入 ScrollToOptions 字典,然后传入 {{domxref("Window.ScrollTo()")}} 方法,并调用:</p>

<pre class="brush: js">form.addEventListener('submit', (e) =&gt; {
  e.preventDefault();
  scrollOptions = {
    left: leftInput.value,
    top: topInput.value,
    behavior: scrollInput.checked ? 'smooth' : 'auto'
  }

  window.scrollTo(scrollOptions);
});</pre>

<h2 id="规范">规范</h2>

<table class="standard-table">
 <tbody>
  <tr>
   <th scope="col">Specification</th>
   <th scope="col">Status</th>
   <th scope="col">Comment</th>
  </tr>
  <tr>
   <td>{{SpecName('CSSOM View', '#dictdef-scrolltooptions', 'ScrollToOptions')}}</td>
   <td>{{Spec2('CSSOM View')}}</td>
   <td></td>
  </tr>
 </tbody>
</table>

<h2 id="浏览器兼容性">浏览器兼容性</h2>

<div>


<p>{{Compat("api.ScrollToOptions", 10)}}</p>
</div>