ページをスクロールするときに、fancyboxポップアップウィンドウの位置を画面上で固定するにはどうすればよいですか?
このプラグインにはオプションがありますか、それともcss
を使用して定義する必要がありますか? API pageからjQuery FancyBox:スクロール中のウィンドウに対するポップアップの固定位置
答えて
、centerOnScrollはあなたが望むもののようだ:
キー:centerOnScroll
デフォルト値:falseを 説明:ページ
スクロールしながら真、FancyBoxを中心にcenterOnScroll APIオプションを使用するだけで問題になるのは、ページを上下にスクロールしている間に、ファンシーボックスのウィンドウがアニメーション化されて中央の位置に戻ってくるのを待ち続けることに気づくでしょう。これはあまりにも大きく見えない "ぎこちない"動きを引き起こします。
ファンシーボックスのソースコードを編集しても問題がなければ、fancybox_get_viewport関数を見つけて変更することができます。私はファンシーボックス1.3.4を使用しています。だから、この見つける:
_get_viewport = function() {
return [
$(window).width() - (currentOpts.margin * 2),
$(window).height() - (currentOpts.margin * 2),
$(document).scrollLeft() + currentOpts.margin,
$(document).scrollTop() + currentOpts.margin
];
},
をし、これでそれを置き換える:
_get_viewport = function() {
var isFixed = wrap.css('position') === 'fixed';
return [
$(window).width() - (currentOpts.margin * 2),
$(window).height() - (currentOpts.margin * 2),
(isFixed ? 0 : $(document).scrollLeft()) + currentOpts.margin,
(isFixed ? 0 : $(document).scrollTop()) + currentOpts.margin
];
},
これは、問題を修正し、あなたはスクロールアップ、ページダウン時に、今では、あなたのブラウザーで同じ場所に完全に留まります。唯一の問題は、この変更によってアニメーションに問題が発生することがあり、画面の下部から新しいポップアップが表示されることがあります。これを修正するには、さらにいくつかの変更が必要です。
start_pos = {
top : pos.top,
left : pos.left,
width : wrap.width(),
height : wrap.height()
};
へ:ライン378変更この周り
final_pos = {
top : ((wrap.css('position') === 'fixed') ? pos.top - $(this).scrollTop() : pos.top),
left : pos.left,
width : wrap.width(),
height : wrap.height()
};
とライン978の周りにあなたは同じものが表示されます。そこにも置き換えてください。これにより、修正プログラムに伴うアニメーションの問題が修正されるはずです。 FancyboxのためのあなたのCSSで最後に
は見つける:
#fancybox-wrap {
position: absolute;
top: 0;
left: 0;
padding: 20px;
z-index: 1101;
outline: none;
display: none;
}
とに置き換えた:
#fancybox-wrap {
position:fixed;
top: 0;
left: 0;
padding: 20px;
z-index: 1101;
outline: none;
display: none;
}
私は、これは彼らのポップアップが完全に画面上に固定されたままに望んでいる道を誰かに役立ちます願っています、私にとってこの解決策があったと思っていますが、自分でそれを理解しなければならなかったのです:)
fancyBox 2.0
以降この文書では http://fancyapps.com/fancybox/#docs
autoCenter:trueに設定すると、コンテンツが常に ブールを中央に配置されます。デフォルト値:!isTouch
例:
$('.fc-event').fancybox({
autoCenter: true,
type: 'ajax',
- 1. 絶対位置/固定位置:項目のスクロールを防止する
- 2. スクロールダウン中のスクロール位置 - jquery
- 3. 位置固定 - 水平スクロール
- 4. ie6オーバーレイ位置:固定スクロール
- 5. スクロールdiv内の固定位置
- 6. 位置固定と絶対
- 7. ブートストラップのサイドバーは、 - 固定スクロール位置
- 8. スクロールで固定の位置付け
- 9. 位置のある子供:固定スクロール、固定:オーバーフロー:自動親
- 10. ウィンドウのスクロール中に要素をコンテナ内に固定する
- 11. ウィンドウが元の位置にスクロールされるまで、下のコントロールでdiv位置が固定されました
- 12. Jqueryを使用して、ページ上にスクロールして絶対位置指定のオブジェクトを固定する
- 13. jqueryのオフセットと固定位置のバグ
- 14. IE6のスクロール可能なdivの固定位置をエミュレートする
- 15. スクロール - jqueryの - 特定の位置
- 16. 特定の位置にスクロールするヘッダーフィックス
- 17. 位置:IE9の固定ブレーク
- 18. jQuery固定位置リサイズ可能リスト?
- 19. 固定位置ブレイクJQuery Hover Scroller
- 20. jQuery固定位置スクロールフリッカー修正?
- 21. Jqueryモバイルデータフィルタ固定位置/静的
- 22. ブラウザのウィンドウと位置を絶対にサイズ変更してスクロールする
- 23. div固定位置
- 24. 固定位置は
- 25. CSSの位置固定
- 26. Chromeでの位置固定
- 27. モバイルクロムの固定位置
- 28. blackberry CSSの位置:固定
- 29. CSSの位置:固定
- 30. インターネットエクスプローラでの位置固定