• 締切済み

スクロールに沿ってjavascriptで背景画像を

現在webサイトを作成しています。ページのメインビジュアルを「.mainVisual」というclassを作成し背景画像を指定して表示しています。 この背景画像を画面スクロールした際に、下に動くように以下のjavascriptを実装しています。 $(function() { $(window).scroll(function(){ var y = $(this).scrollTop(); $('.mainVisual').css('background-position-y', '0 ' + parseInt( +y / 10 ) + 'px'); }); }); この状態で動くのですが、今回新たに背景画像の元々の表示位置を「background-position」で調整したいと考えています。(単純に画像が下に下がるので、事前に画像の位置を上に上げておきたい) cssの記載で位置の調整はできるのですが、スクロールしてjavascriptが実装されると「background-position」の値が0pxになってしまい、背景画像の指定位置が元に戻ってしまいます。 こちら既に指定指定した「background-position」の値を残しつつ、jsでスクロールに併せて要素を動かすにはどのようにすればよいでしょうか。 わかりにく説明と、ひどく初心者の質問で大変に恐縮ですが、どなたかご教授いただけませんでしょうか。 よろしくお願いいたします。

みんなの回答

回答No.1

単純に別のdiv用意して、そこにposition: fixed;とかでwidth:100%;height:100%;にしちゃうのはだめなんですかね? 書いてある内容だと、これで実現できそうですが・・・。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 【jquery】スクロールで背景画像もついてくる

    よろしくお願いいたします。 jqueryを使って背景画像をスクロールと一緒についてくるようにしたいのですが、 思い通りにいかず、質問させていただきたいと思います。 やりたいと思っていることは、 まず背景画像1(1.jpg)をbodyにbackgroundに設定して、 その上に<div></div>タグで背景画像2(2.png:透過画像)をbackgroundに設定し、 背景画像2だけスクロールと一緒についてくるようにしたいと思っています。 現状のソースは以下になっています。 【html head内】 <script src="jquery.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { $(window).scroll(function(){ var y = $(this).scrollTop(); $('#haikei').css('background-position', '50%'+ parseInt( y / 3 ) + 'px'); }); }); </script> 【html body内】 <div id="haikei"> <div id="wrapper"> <div id="header">  ~略~ </div> <div id="contents">  ~略~ </div> </div> </div> 【CSS内】 #bg01 { background: url(2.png) top center repeat-y; } 今の状態だと、動き自体は思い通りに動いてくれるのですが、 背景画像を表示させたい位置がありまして、 <div id="header"></div>内には2.pngを表示させず、 <div id="contents"></div>の部分から2.pngを表示させて スクロールについてくるようにしたいと思っています。 下記のように、 <div id="wrapper"> <div id="header">  ~略~ </div> <div id="haikei"> <div id="contents">  ~略~ </div> </div> </div> と、<div id="haikei"></div>の位置を変えてみましたが、 これだとスクロールしたときに、<div id="header"></div>の下から 画像が途中からはみ出てくる?ような感じで、きれいにスクロールされません。 さらにCSSのrepeat-yをno-repeatに変えて試してみましたが、 その場合画像がページの一番下まで動いてくれません。 (途中までしか画像がついてきてくれない感じです) 方法としては、2.pngの表示開始位置を<div id="header"></div>より下に位置指定すれば うまくいくのかなと思ったのですが、書き方がわからず。。。 なにかうまくいく書き方はないでしょうか・・? もしくは上記の方法以外でも、実現できそうなやり方や、 参考になりそうなサイトがあればお教えいただきたいと思っています。 ちなみに、私が参考にさせていただいたサイト様はこちらです。 http://www.webopixel.net/javascript/350.html わかりにくい点がありましたら、補足いたします。 どうぞよろしくお願いいたします。

  • CSS/背景画像をセンタリングした際に、スクロールバーの有無で位置が変わってしまうのを防ぐには?

    背景画像を中央で縦に並べる形でサイトを作っております.  background-repeat:repeat-y;  background-position:50%(或いはcenter) ページによって、スクロールバーの有無があるのですが、これによって(バーの幅による)中央の背景位置に微妙なズレが生じてしまいます。 フレーム使用のため少々対応に困っております. スクロールバーをどのページでも出す、背景画像をpx指定、これ以外に何か方法はあるものでしょうか? よろしければお教えいただければありがたく思います.

  • CSSでの背景の指定について質問いたします。

    CSSでの背景の指定について質問いたします。 background: url(../img/bg.gif) 0 -36px repeat-y; この場合の、0 -36px はどのような意味ですか? 背景画像の位置の指定なのでしょうが、具体的にどのように指定しているものなのか 教えていただけませんか? よろしくお願いいたします。

  • 背景画像を任意の位置に置きたい

    こんにちは、Santaと申します。 いつもお世話になっております。 Firefox 8.0 Chrome 16.0 背景画像を任意の位置に置きたいです。 画像のとおりです。 背景画像の大きさは width:950px; height:800px; です。 左右にオレンジ色の矩形を置いております。オレンジの矩形の間の白いところは、白の矩形です。 左右では、center真ん中に来るように、上からは200px;の位置に置きたいと思っております。 自分の書いたCSSでは、絵柄が少し表示されるだけで、全体の画像も表示することができませんでした。 css --------------------------------- body { background-image:url(../images/background_line_wall.gif); background-position:50% 50%; background-repeat:no-repeat; } ----------------------------------- どのように書きましたら、上から200pxの位置へ、左、右からは中央へセンタリングできますでしょうか? よろしくお願いいたします 失礼致します。

    • ベストアンサー
    • CSS
  • cssで、imgタグに、背景画像を敷きたい

    cssで、imgタグに、背景画像(影)を敷く方法を教えてください。 ※divタグに敷く方法は分かるのですが、imgタグに敷く方法が分かりません。 ■現状 <HTML> <div id="hoge"> <img src~ <CSS> #hoge img { background-image:url(/images/background_shodow.jpg); background-repeat: none; background:position: ? width:? height:? margin:? padding:?; <影の大きさ> ・width400px ・height200px <写真のサイズ指定> ・width390px ・height190px ※これまでは、 写真のサイズが違うので、 css部分の#hoge img で、 画像の大きさを強制指定してました。 出来れば、 画像の大きさは、html側で指定せずに、 css側で調整したいです。 ムリなら、html側で大きさ指定します。 div枠にcss設定できれば早いかと思いますが、 それが出来ないため(img タグにしかcss指定不可)の相談です。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 背景画像をCSSで中央に指定し、さらにその背景画像の中に違う画像を

    背景画像をCSSで中央に指定し、さらにその背景画像の中に違う画像を 位置指定したいのですが、うまく反映されませんでした。 「 background-position: center center; 」「 background-position: center center; 」 がCSS側での背景画像位置指定と多くヒットしたのですが、反映はされませんでした。 「 margin-left: 80px; 」を指定したところ、画面中央に位置が反映されたのですが 画面サイズを1024×768から1280×1024に変更すると 中央から左寄りにずれてしまいます。 下記に実際のソースを記載致しますので、どなたか解る方がいらっしゃいましたら アドバイスの程宜しくお願いいたします。 - 画面サイズを変更すると位置がずれてしまうソース - @charset "utf-8"; #img { width: 700px; height: 125px; background: url(img.jpg); margin-left: 80px; background-repeat: no-repeat; } #img #img2 { float: right; margin-right: 0px; margin-left: 30px; margin-top: 59px; margin-bottom: 0px; } ---------------------------------- - HTML - <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Style-Type" content="text/css" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>img</title> <link rel="stylesheet" href="style.css" type="text/css" /> </head> <body"> <div id="img"> <div id="img2"><img src="img_1.gif" width="50" height="30" border="0" />&nbsp;<img src="img_2.gif" width="50" height="30" border="0" /></div> </div> </body> </html> ------------------------------------------- - 検索でヒットした位置指定のソース - @charset "utf-8"; #img { width: 700px; height: 125px; background: url(img_2.jpg); background-position: center center; background-repeat: no-repeat; } #img #img2 { float: right; margin-right: 0px; margin-left: 30px; margin-top: 59px; margin-bottom: 0px; } ------------------------------------------- - HTMLは上記と同じ -

    • ベストアンサー
    • HTML
  • 背景画像の大きさ指定。

    cssのbackground-positionで背景画像の位置を設定してますが、この場合画像の大きさは設定 できないのでしょうか。どこにwidth="",height=""を書けばいいかわからなくて…。 単純な質問かもしれませんがよろしくお願いします。

    • ベストアンサー
    • HTML
  • JavaScriptで縦固定と横スクロールしたい

    CSSでは不可能とわかったのですが縦は位置を固定で横だけスクロールで見れるようにしたいのですが、その方法はどうすればいいでしょうか。 position-y:fixed; position-x:absolute; と書いていますがCSSでは目次が消えてしまいます。 そこでJavaScriptなら可能と聞きました。 目次を縦のときは固定でスクロールしても動かないようにしたいのですが、解像度が低いモニターのために横だけはスクロールしたときに横だけ全部見えるようにしたいです。 よろしくお願いいたします。

  • スクロール と 背景

    こんばんわ。 HP作成作業を頑張ってます。 超初心者でここのページや本を参考に作っております。ドリームウィーバーとCSSとで作っております。 背景をbody { background-image:url(haikei-1.jpg); background-repeat:no-repeat; background-attachment: fixed; background-position:center;} に指定しています。 このページの下の方に <textarea name="myText" cols="50" rows="10" readonly></textarea> を入れたところ テキストを書くところ背景が白いのです。 このテキストを入れるスクロールボックス?と言うのですか?良く分かりませんがその中も 背景がすける様にするにはどうしたら良いのですか? 初心者で至らない質問かと思いますが,ご伝授ください。

  • スクロール と 背景

    こんばんわ。 HP作成作業を頑張ってます。 超初心者でここのページや本を参考に作っております。ドリームウィーバーとCSSとで作っております。 背景をbody { background-image:url(haikei-1.jpg); background-repeat:no-repeat; background-attachment: fixed; background-position:center;} に指定しています。 このページの下の方に <textarea name="myText" cols="50" rows="10" readonly></textarea> を入れたところ テキストを書くところの背景が白いのです。 このテキストを入れるスクロールボックス?と言うのですか?良く分かりませんがその中も 背景がすける様にするにはどうしたら良いのですか? 初心者で至らない質問かと思いますが,ご伝授ください。

    • ベストアンサー
    • HTML
このQ&Aのポイント
  • パワーポイントの文章をワードに変換する方法について教えてください。現在、ソフトではパワーポイントの文章をワードに変換できず、PDFに変換されてしまいます。PDFをワードに変換できる方法もありますが、素人にとっては手間がかかるようです。
  • パワーポイントの文章を簡単にワードに変換する方法を教えてください。通常のソフトではパワーポイントの文章を直接ワードに変換することはできず、PDFに変換されてしまいます。しかし、PDFをワードに変換する方法もありますが、素人にとっては手間がかかるため困っています。
  • パワーポイントの文章をワードに変換する方法をお教えください。現在、通常のソフトではパワーポイントの文章を直接ワードに変換することはできず、PDFに変換されてしまいます。素人がPDFをワードに変換する方法もありますが、手間がかかるため困っています。
回答を見る

専門家に質問してみよう