0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Railsで架空のCafeのHPを作ってみよう!【16日目】『colorboxのスクロール固定』編

Posted at

#概要
基本Railsの記法に則り書いていきます!
1から全ての説明ではなく
その中であれ?どうやるの?と
疑問に思った点や実装に困った箇所を
ピックアップして紹介していきます♩

#設定と準備
・Rails
・HTML
・CSS
・Javascript(jQuery)

↑上記の言語とフレームワークを使い
架空(自分で考えたテキトーなもの)のCafeの
HPを作っていこうと思います!

#16日目の作業内容:round_pushpin:
・colorboxを導入しモーダルを作成

#16日目の気になった箇所:zap:
モーダルを作成できたのは良いが
スクロールすると一緒にスクロールされて
モーダルが見えなくなってしまうの固定したい!

#仮説:pushpin:
position: fixed;
などを使えば上手くいくのかな。

#結論:star:
調べてみたが理解するのが今の自分には非常に難しかったので
今回はどうすれば上手くいくのかだけの紹介になります。

どのような方法でも良いので
JSのファイルがモーダルを使っているHTMLで読み込めるようにしてください。
方法をしましてはcolorboxの導入に成功していることが前提なので、お分かりかと思いますが
拡張子の.jsをつけたファイルを作成しscriptタグで読み込むなどの方法になります。

今回、私はrailsでアプリを作成しているため、

app/javascript配下にmodal.jsという
ファイル(モーダルに関してなのでmodalとしましたが.js付ければ名前はなんでも可)
を作成し、

app/javascript/packs/application.js
require('jquery')
require("../jquery.colorbox-min.js")
require("../jquery.colorbox-ja.js")
require("../modal.js")

このように読み込ませています。

読み込みが成功したら、
作成したファイルに

modal.js
$(document).ready(function(){
  $(".iframe").colorbox({iframe:true, width:"90%", height:"90%",
  fixed: true,
    onOpen: function() {
      var ycoord = $(window).scrollTop();
      $('#colorbox').data('ycoord',ycoord);
      ycoord = ycoord * -1;
      $('body').css('position','fixed').css('left','0px').css('right','0px').css('top',ycoord + 'px');
    },
    onClosed: function() {
      $('body').css('position','').css('left','auto').css('right','auto').css('top','auto');
      $(window).scrollTop($('#colorbox').data('ycoord'));
    }
  });  $("#click").click(function(){
  $('#click').css({"background-color":"#f00", "color":"#fff", "cursor":"inherit"}).text("Open this window again and this message will still be here.");
  return false;
  });
  });

このような記述をしてください。
正直、どこが何を示しているのかほとんどわからないので
コピペで出来なかったらお手上げです...。
iframeはクラス名を自由に変更が可能なので
クラス名を変えている方は
2行目の

$(".iframe")

この箇所を自分のクラス名に変える必要があるかもしれません。
少しでもお力になれたら幸いです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?