電子書籍の厳選無料作品が豊富!

lightboxやfancyboxで、一定の時間がたったら自動でウィンドウを閉じたいです。

閉じるボタンやオーバーレイ部分をクリックでも閉じれるようにしたいのですが、うまくできませんでした。。

setTimeoutかdelayを使えばいいのかと思いましたが、閉じるボタンでウィンドウを閉じると指定した時間にバラつきが出てしまいました。

有識者の方、ご教授いただければ幸いです!

A 回答 (1件)

こんにちは


試してはいませんが…

>一定の時間がたったら自動でウィンドウを閉じたいです。
表示してから一定時間で自動的に閉じたいという意味ですよね?

例えばfancyboxのドキュメントを見てみると、いくつかのメソッドが公開されており、そのなかにcloseメソッドも用意されています。
表示時のイベントフックも設定されているかと思いましたが、残念ながらそちらは見当たらないようです。
http://fancybox.net/api
とはいっても、表示のきっかけとなる対象要素はわかっているはずですので、直接そちらのクリックイベントをトリガーにして、一定時間経過後にcloseメソッドで閉じる仕組みにしておくことで、ご質問のような機能を追加することは可能だと思われます。

ただし、単独でパネルを表示するようなケースでは上述であまり問題はないと思いますが、複数のパネルをグループ化して表示するようなケースでは、ユーザがパネルを操作・閲覧している間に時間が経過して閉じてしまうという不都合がおきそうな気がします。
そのようなユーザのの移動操作についてもフックできるようなapiが公開されているライブラリであれば、「一定時間」を延長してあげるようにすることで実現可能だと思います。
このあたりも含めてきちんと対応したいのであれば、公開メソッドでそのようなものが備わっているもの(存在するのかは不明ですが)をご利用なさるか、公開されていない場合はライブラリをカスタマイズする等が必要になってくると考えられます。

一方で、ご利用の方法(オプション等)は限定的であると想像しますので、複雑な機能のライブラリをカスタマイズするくらいなら、必要な内容の単機能のものを自作してしまうという選択肢も考えられるかもしれませんね。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!