Element.scroll() - 絶対位置を指定して要素内スクロールをする
公開日:
Element.scroll()は、Elementのメソッドです。絶対位置を指定して、要素内スクロールを実行します。scrollToと同じです。
概要
IDL
void scroll(optional ScrollToOptions options);
void scroll(unrestricted double x, unrestricted double y);
dictionary ScrollToOptions : ScrollOptions {
unrestricted double left;
unrestricted double top;
};
dictionary ScrollOptions {
ScrollBehavior behavior = "auto";
};
enum ScrollBehavior { "auto", "instant", "smooth" };
引数
第1引数: options (省略可)
optional ScrollToOptions options
スクロールの内容をオブジェクトで指定する。プロパティは下記の通り。引数を省略した場合、スクロールしません。
- behavior
- 初期値は
"auto"
。スクロールのアニメーション。- "auto"
- ブラウザに任せる。
- "instant"
- アニメーションなし。
- "smooth"
- スムーズスクロール。
- left
- 水平方向の座標。要素のpadding-leftからの距離。
- top
- 垂直方向の座標。要素のpadding-topからの距離。
第1引数: x
unrestricted double x
水平方向の座標。要素のpadding-leftからの距離。
第2引数: y
unrestricted double y
垂直方向の座標。要素のpadding-topからの距離。
返り値
void
返り値はありません。
脚注
:
左のインターフェイスが、右のインターフェイスを継承することを表します。
dictionary
指定できる値などの情報を定義しています。
enum
列挙型の値であることを表し、指定できる値を定義しています。
optional
引数が省略可能であることを表します。
unrestricted double
64bitの浮動小数点数。
void
undefined
が返ることを表す。
仕様書
https://drafts.csswg.org/cssom-view/#extension-to-the-element-interface
説明
scroll()は、絶対位置を指定して、要素内スクロールをするメソッドです。要素内にスクロールできる領域がないと意味がありません。
HTML
<div id="hoge">
<!-- ...大きいコンテンツ... -->
</div>
CSS
div#hoge {
width: 300px ;
overflow: scroll ; /* 表示領域を超えたらスクロール */
}
JavaScript
// 要素を取得
var element = document.getElementById( "hoge" ) ; // <div id="hoge"> ... </div>
// メソッドを実行
element.scroll( 50, 30 ) ; // 左から50px、上から30px離れた位置までスクロール
引数はオブジェクトでも指定できます。ただし、2017年3月現在、サポートしているブラウザは多くありません。
JavaScript
// メソッドを実行
element.scroll( {
behavior: "smooth" , // スムーズスクロールにする
left: 50 , // 左から50px離れた位置
top: 30 , // 上から30px離れた位置
} ) ;
サンプルコード
HTML
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>【デモ】Element.scroll() - 絶対位置を指定して要素内スクロールをする</title>
<link rel="canonical" href="https://syncer.jp/Web/API_Interface/Reference/IDL/Element/scroll/">
<meta content="width=device-width,initial-scale=1.0" name="viewport">
<style>
body {
background-color: #fff ;
}
div#hoge {
overflow: scroll ;
width: 300px ;
height: 300px ;
border: 1px solid #000 ;
}
div#fuga {
width: 2000px ;
height: 2000px ;
background-image: linear-gradient( 45deg,#eee 25%,transparent 0,transparent 75%,#eee 0 ),linear-gradient( 45deg,#eee 25%,transparent 0,transparent 75%,#eee 0 ) ;
background-position: 0 0, 10px 10px ;
background-size: 20px 20px ;
}
</style>
</head>
<body>
<p><button id="run" type="button">メソッドを実行</button></p>
<div id="hoge">
<div id="fuga"></div>
</div>
<script>
// 要素を取得
var element = document.getElementById( "hoge" ) ;
// ボタンのクリックイベント
document.getElementById( "run" ).onclick = function () {
// メソッドを実行
element.scroll( 100, 200 ) ;
}
</script>
</body>
</html>
デモ
サポート状況
Element.scroll()のサポート状況です。
ブラウザ | サポート状況 | ブラウザ | サポート状況 |
---|---|---|---|
Chrome | Not Supported | Firefox | Supported 36+ |
Edge | Not Supported | Internet Explorer | Not Supported |
Safari | Not Supported | Opera | Not Supported |
iOS Safari | Not Supported | Android | Not Supported |
Chrome
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
57 | Not Supported | 2017年3月頃 | 0.1% |
56 | Not Supported | 2017年1月頃 | 12.02% |
55 | Not Supported | 2016年12月頃 | 12.36% |
54 | Not Supported | 2016年10月頃 | 0.44% |
53 | Not Supported | 2016年9月頃 | 0.25% |
52 | Not Supported | 2016年7月頃 | 0.27% |
51 | Not Supported | 2016年6月頃 | 0.4% |
50 | Not Supported | 2016年4月頃 | 0.32% |
49 | Not Supported | 2016年3月頃 | 0.47% |
48 | Not Supported | 2016年1月頃 | 0.02% |
47 | Not Supported | 2015年12月頃 | 0.06% |
46 | Not Supported | 2015年10月頃 | 0.56% |
45 | Not Supported | 2015年9月頃 | 0.01% |
44 | Not Supported | 2015年7月頃 | 0.83% |
43 | Not Supported | 2015年5月頃 | 0.05% |
42 | Not Supported | 2015年4月頃 | 0.05% |
41 | Not Supported | 2015年3月頃 | 0.01% |
40 | Not Supported | 2015年1月頃 | 0.59% |
39 | Not Supported | 2014年11月頃 | 0.02% |
38 | Not Supported | 2014年10月頃 | 0.08% |
37 | Not Supported | 2014年8月頃 | 0.01% |
36 | Not Supported | 2014年7月頃 | 0.01% |
35 | Not Supported | 2014年5月頃 | 0.01% |
34 | Not Supported | 2014年4月頃 | 0.14% |
33 | Not Supported | 2014年2月頃 | 0.01% |
32 | Not Supported | 2014年1月頃 | 0% |
31 | Not Supported | 2013年11月頃 | 0.01% |
30 | Not Supported | 2013年10月頃 | 0.03% |
29 | Not Supported | 2013年8月頃 | 0% |
28 | Not Supported | 2013年6月頃 | 0.03% |
27 | Not Supported | 2013年5月頃 | 0.01% |
26 | Not Supported | 2013年3月頃 | 0% |
25 | Not Supported | 2013年2月頃 | 0% |
24 | Not Supported | 2013年1月頃 | 0% |
23 | Not Supported | 2012年11月頃 | 0% |
22 | Not Supported | 2012年9月頃 | 0% |
21 | Not Supported | 2012年7月頃 | 0% |
20 | Not Supported | 2012年6月頃 | 0% |
19 | Not Supported | 2012年5月頃 | 0% |
18 | Not Supported | 2012年3月頃 | 0.01% |
17 | Not Supported | 2012年2月頃 | 0.01% |
16 | Not Supported | 2011年12月頃 | 0% |
15 | Not Supported | 2011年10月頃 | 0% |
14 | Not Supported | 2011年9月頃 | 0% |
Firefox
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
52 | Supported | 2017年3月頃 | 0.12% |
51 | Supported | 2017年1月頃 | 1.7% |
50 | Supported | 2016年11月頃 | 0.78% |
49 | Supported | 2016年9月頃 | 0.02% |
48 | Supported | 2016年8月頃 | 0.07% |
47 | Supported | 2016年6月頃 | 0.03% |
46 | Supported | 2016年4月頃 | 0.01% |
45 | Supported | 2016年3月頃 | 0.1% |
44 | Supported | 2016年1月頃 | 0.01% |
43 | Supported | 2015年12月頃 | 0.02% |
42 | Supported | 2015年11月頃 | 0.01% |
41 | Supported | 2015年9月頃 | 0% |
40 | Supported | 2015年8月頃 | 0.02% |
39 | Supported | 2015年7月頃 | 0.01% |
38 | Supported | 2015年5月頃 | 0.02% |
37 | Supported | 2015年3月頃 | 0% |
36 | Supported | 2015年2月頃 | 0.01% |
35 | Not Supported | 2015年1月頃 | 0% |
34 | Not Supported | 2014年12月頃 | 0.01% |
33 | Not Supported | 2014年10月頃 | 0% |
32 | Not Supported | 2014年9月頃 | 0% |
31 | Not Supported | 2014年7月頃 | 0.01% |
30 | Not Supported | 2014年6月頃 | 0% |
29 | Not Supported | 2014年4月頃 | 0% |
28 | Not Supported | 2014年3月頃 | 0.01% |
27 | Not Supported | 2014年2月頃 | 0% |
26 | Not Supported | 2013年12月頃 | 0% |
25 | Not Supported | 2013年10月頃 | 0% |
24 | Not Supported | 2013年9月頃 | 0% |
23 | Not Supported | 2013年8月頃 | 0% |
22 | Not Supported | 2013年6月頃 | 0% |
21 | Not Supported | 2013年5月頃 | 0% |
20 | Not Supported | 2013年4月頃 | 0% |
19 | Not Supported | 2013年2月頃 | 0% |
18 | Not Supported | 2013年1月頃 | 0% |
17 | Not Supported | 2012年11月頃 | 0% |
16 | Not Supported | 2012年10月頃 | 0% |
15 | Not Supported | 2012年8月頃 | 0% |
14 | Not Supported | 2012年7月頃 | 0% |
13 | Not Supported | 2012年6月頃 | 0% |
12 | Not Supported | 2012年4月頃 | 0% |
11 | Not Supported | 2012年3月頃 | 0% |
10 | Not Supported | 2012年1月頃 | 0% |
9 | Not Supported | 2011年12月頃 | 0% |
8 | Not Supported | 2011年11月頃 | 0% |
7 | Not Supported | 2011年9月頃 | 0% |
6 | Not Supported | 2011年8月頃 | 0% |
5 | Not Supported | 2011年6月頃 | 0% |
4 | Not Supported | 2011年3月頃 | 0% |
Edge
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
14 | Not Supported | 2016年2月頃 | 1.05% |
13 | Not Supported | 2015年9月頃 | 0.08% |
Internet Explorer
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
11 | Not Supported | 2013年10月頃 | 4.99% |
10 | Not Supported | 2012年8月頃 | 0.09% |
9 | Not Supported | 2011年3月頃 | 0.18% |
8 | Not Supported | 2009年3月頃 | 0.04% |
7 | Not Supported | 2006年10月頃 | 0.01% |
6 | Not Supported | 2001年8月頃 | 0% |
Safari
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
10 | Not Supported | 2016年10月頃 | 0% |
9.1 | Not Supported | 2015年9月頃 | 0% |
8.0 | Not Supported | 2014年10月頃 | 0% |
7.1 | Not Supported | 2013年10月頃 | 0% |
6.0 | Not Supported | 2012年7月頃 | 0% |
5.1 | Not Supported | 2011年7月頃 | 0% |
4 | Not Supported | 2009年6月頃 | 0% |
Opera
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
43 | Not Supported | 2017年2月頃 | 0.06% |
42 | Not Supported | 2016年12月頃 | 0.09% |
41 | Not Supported | 2016年10月頃 | 0.01% |
40 | Not Supported | 2016年9月頃 | 0% |
39 | Not Supported | 2016年8月頃 | 0% |
38 | Not Supported | 2016年6月頃 | 0% |
37 | Not Supported | 2016年5月頃 | 0.01% |
36 | Not Supported | 2016年3月頃 | 0.01% |
35 | Not Supported | 2016年2月頃 | 0% |
34 | Not Supported | 2015年12月頃 | 0% |
33 | Not Supported | 2015年10月頃 | 0% |
32 | Not Supported | 2015年9月頃 | 0% |
31 | Not Supported | 2015年8月頃 | 0% |
30 | Not Supported | 2015年6月頃 | 0% |
29 | Not Supported | 2015年4月頃 | 0% |
28 | Not Supported | 2015年3月頃 | 0% |
27 | Not Supported | 2015年1月頃 | 0% |
26 | Not Supported | 2014年12月頃 | 0% |
25 | Not Supported | 2014年10月頃 | 0% |
24 | Not Supported | 2014年9月頃 | 0% |
23 | Not Supported | 2014年7月頃 | 0% |
22 | Not Supported | 2014年6月頃 | 0% |
21 | Not Supported | 2014年5月頃 | 0.01% |
20 | Not Supported | 2014年3月頃 | 0% |
19 | Not Supported | 2014年1月頃 | 0% |
18 | Not Supported | 2013年11月頃 | 0% |
17 | Not Supported | 2013年10月頃 | 0% |
16 | Not Supported | 2013年8月頃 | 0% |
15 | Not Supported | 2013年7月頃 | 0% |
12 | Not Supported | 2012年6月頃 | 0.02% |
11.6 | Not Supported | 2011年12月頃 | 0% |
11.1 | Not Supported | 2011年4月頃 | 0% |
iOS Safari
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
10.0 | Not Supported | 2016年9月頃 | 39.65% |
9.1 | Not Supported | 2015年9月頃 | 5.39% |
8.3 | Not Supported | 2014年9月頃 | 1.03% |
7.0 | Not Supported | 2013年9月頃 | 0.24% |
6.0 | Not Supported | 2012年9月頃 | 0.05% |
5.1 | Not Supported | 2011年10月頃 | 0.03% |
Android
バージョン | サポート状況 | 公開時期 | シェア |
---|---|---|---|
4.4 | Not Supported | 2013年10月頃 | 0% |
4.3 | Not Supported | 2013年7月頃 | 0% |
4.2 | Not Supported | 2013年3月頃 | 0.03% |
4.1 | Not Supported | 2012年12月頃 | 0% |
4.0 | Not Supported | 2012年6月頃 | 1.61% |
2.3 | Not Supported | 2011年10月頃 | 0% |