teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

リンクを追加しました

2021/06/12 17:52

投稿

futon
futon

スコア10

title CHANGED
File without changes
body CHANGED
@@ -4,6 +4,8 @@
4
4
 
5
5
  [colorbox](https://www.jacklmoore.com/colorbox/)
6
6
 
7
+ [背景固定のデモ](https://memorandums.3ki3ki.com/demo/colorbox/demo2/)
8
+
7
9
  ポップアップの中に元ページへのアンカーリンクを置いています。
8
10
  見よう見まねで書いた背景固定の部分が上手く書けていないよう(?)で、アンカーリンクのリンクはきちんとアンカーの位置に移動するのですが、colorboxを普通に閉じた場合、ページのトップに戻ってしまいます。
9
11
  普通に閉じた場合、ページのトップに戻らず、colorboxを開いたときのそのままの位置に戻りたいのでお知恵を拝借させてください。

1

わかりづらかったかと思い、少し詳細に書き直しました。

2021/06/12 17:52

投稿

futon
futon

スコア10

title CHANGED
@@ -1,1 +1,1 @@
1
- colorboxを閉じたとき、希望する位置移動しません
1
+ colorboxを閉じたとき、ページのトップ戻ってしまいます
body CHANGED
@@ -1,9 +1,13 @@
1
1
  ### 前提・実現したいこと
2
2
 
3
- colorboxの中に元ページへのンカーリンク置いています。
3
+ colorboxを使ってポップップ出しています。
4
- 背景固定している部分が上手く書けていないよう(?)で、アンカーリンクのリンクはきちんとその位置に移動するのですが、colorboxを普通に閉じた場合、ページのトップに戻ってしまいます。
5
- 普通に閉じた場合、ページのトップに戻らず、colorboxを開いたときのそのままの位置に戻りたいです。
6
4
 
5
+ [colorbox](https://www.jacklmoore.com/colorbox/)
6
+
7
+ ポップアップの中に元ページへのアンカーリンクを置いています。
8
+ 見よう見まねで書いた背景固定の部分が上手く書けていないよう(?)で、アンカーリンクのリンクはきちんとアンカーの位置に移動するのですが、colorboxを普通に閉じた場合、ページのトップに戻ってしまいます。
9
+ 普通に閉じた場合、ページのトップに戻らず、colorboxを開いたときのそのままの位置に戻りたいのでお知恵を拝借させてください。
10
+
7
11
  ### 該当のソースコード
8
12
 
9
13
  ```html
@@ -14,11 +18,18 @@
14
18
  <a href="#anchor" class="close">アンカーリンクへ移動する</a>
15
19
  </div>
16
20
  </div>
21
+ .
22
+ .
23
+ .
24
+
17
25
  <div id="anchor">リンク先</div>
18
26
  </div>
19
27
  ```
20
28
 
21
29
  ```javascript
30
+
31
+ var current_scrollY = $(window).scrollTop();
32
+ $(function() {
22
33
  $(".inlineBox").colorbox({
23
34
  inline:true,
24
35
  innerWidth: 600,
@@ -48,14 +59,15 @@
48
59
  var position = $('#anchor').offset().top;
49
60
  window.scrollTo(0,position);
50
61
  });
51
-
62
+ });
52
63
  ```
53
64
 
54
65
  ### 試してみたこと
55
66
 
67
+ ```javascript
56
68
  onClosed:function(){
57
- $('#wrapper').attr({ style:''});
69
+ $('#wrapper').attr({ style:''});
58
- $('html, body').prop({ scrollTop: current_scrollY });
70
+ $('html, body').prop({ scrollTop: current_scrollY });
59
71
  }
60
- としたところ、希望通り、ページのトップには戻らず、colorboxを開いたときのそのままの位置に戻ったのですが、
72
+ ```
61
- 今度はアンカーリンクのほうがcolorboxを開いたときのそのままの位置に戻ってしまい、アンカーリンクの位置にジャンプしません。
73
+ colorboxのonClosedを上記のようにしたところ、ページのトップには戻らず、colorboxを開いたときのそのままの位置にきました。が、今度はアンカーリンクのほうがcolorboxを開いたときのそのままの位置にてしまい、アンカーリンクのある位置にジャンプしません。