Add CTA UI to any site
with one script tag.

floatdock は、既存サイトに <script> 1行で フローティング / 下部固定 / 展開メニュー(FAB) の導線UIを追加する軽量ウィジェットです。 PCとスマホで表示方式を切り替え、スクロール時に隠す挙動も設定できます。

Vanilla JS No dependencies Single file Hide on scroll 3 mobile modes

このページは「紹介ページ」用のサンプルです。右のプレビューは見た目のモックで、 実際の floatdock はこのページ末尾で読み込まれます(./floatdock.js)。

Preview (visual mock)

Hero section / content block

Long page… (scroll to see hide/show)

CTA should stay accessible

bottom-bar は店舗サイト、floating はLP、expand-fab は多機能向け。

Features

Single script

既存サイトに <script> 1行で導入できます。設置の手間を最小限に。

Device modes

PC/スマホで表示方式を切替。スマホは用途に合わせた3つのモードを搭載。

Hide on scroll

スクロール中は隠して、必要時だけ表示。ユーザー体験を妨げません。

Vanilla JS

依存ライブラリ無し。軽量で WordPress 等のCMSでも動作が安定します。

Customizable

文言、色、リンク先はもちろん、表示位置やアニメーションも調整可能。

Accessible

適切な aria-label を付与。最低限のアクセシビリティを確保。

Modes

Desktop

  • floating(右下/右上/左下/左上)
  • サイズ・文言・サブラベルを設定可能

Mobile

  • bottom-bar:下部固定2ボタン
  • floating:丸型または角丸ボタン
  • expand-fab:タップで縦展開メニュー

※ スマホ判定は window.innerWidth < breakpoint で行われます。

Quick start

// 1) HTMLの <head> 内に追加
<script src="https://path/to/floatdock.js" defer></script>
// 2) ページ側から設定を上書きする場合
<script>
window.FLOATDOCK_CONFIG = {
  lineUrl: "https://lin.ee/xxxxxx",
  display: { mobile: "bottom-bar" },
  hideOnScroll: { enabled: true }
};
</script>

Recommended operational style

本番運用は「設定を floatdock.js 内に内蔵」し、設置は <script> 1行だけにするのが最も安全・簡単です。

Config reference

window.FLOATDOCK_CONFIG = {
  breakpoint: 768,
  lineUrl: "https://lin.ee/xxxxxx",
  contactUrl: "/contact",
  display: {
    desktop: "floating",
    mobile: "bottom-bar" // "bottom-bar" | "floating" | "expand-fab"
  },
  hideOnScroll: {
    enabled: true,
    hideDirection: "down",
    hideAfter: 120
  }
};

Common Tips

  • 電話導線tel:000-0000-0000contactUrl に指定可能
  • 外部URL: 原則新規タブで開きます
  • 自動切替: ウィンドウ幅に応じて表示モードが自動で切り替わります
lineUrl contactUrl breakpoint hideOnScroll

Constraints / CSP

1) CSP (Content Security Policy)

サイト側で CSP が厳しい場合、外部JSの読み込みや動的な <style> 挿入が制限されることがあります。

How to check

DevTools → Network で Content-Security-Policy ヘッダを確認してください。

解決策floatdock.js をサイトと同一ドメインに設置してください。

2) SPA / Client-side routing

React/Vueなどでページ遷移時にDOMが再生成される場合、ウィジェットが消えることがあります。

// 遷移後に再初期化
window.LineWidget?.update?.();

各フレームワークのルーター・フック内で上記を実行してください。

Troubleshooting

表示されない

  • • CSPによる制限の確認
  • • ファイルパス(404エラー)の確認
  • • 他要素の z-index との競合

クリックできない

  • • 前面に透明な要素が被っていないか
  • pointer-events: none の設定確認