web-dev-qa-db-ja.com

ホバー時のGIFのアニメーション

これに対する答えを探して見つけましたが、使い方がわかりません。

GIFアニメーションのオンロードを停止し、マウスオーバーでアクティブ化を開始

その質問に対するGuffaの答えはまさに私が欲しいものですが、そのコードの使い方がわかりません。

私はjqueryプラグインを持っていますが、どこにコードを配置しますか(プラグインではなく、Guffaの答えにあったコード)?画像を参照して使用するにはどうすればよいですか?機能させるために呼び出す必要がある関数はありますか?もしそうなら、それを呼び出すための最良の方法は何でしょうか?

すでに回答済みの質問をして申し訳ありませんが、彼の回答は十分具体的ではなく、私は彼にもっと具体的な回答を求めるようにコメントすることができませんでした。

12
Mark Kramer

ここにあなたが必要なもののための実用的な例があります- http://jsfiddle.net/EXNZr/1/

<img id="imgDino" src="http://bestuff.com/images/images_of_stuff/64x64crop/t-rex-51807.jpg?1176587870" />

<script>
    $(function() {
        $("#imgDino").hover(
            function() {
                $(this).attr("src", "animated.gif");
            },
            function() {
                $(this).attr("src", "static.gif");
            }                         
        );                  
    });
</script>
22
Amit

私はリンクを読んでいませんが、これを行う最も簡単な方法は、このようにホバーするときにJavaScriptでimgタグのsrc属性を変更することです(jQuery)

_$(function() {
    $('a').hover(function() {
      $(this).attr('src','path_to_animated.gif');
    },function() {
      $(this).attr('src','path_to_still.gif');
    }
});
_

プラグインは必要ありません...ホバーバインドの前に$('<img />',{ src: 'path_to_animated.gif'});を追加して、アニメーションgifをプリロードすることができます。

それが役に立てば幸い

4
ianbarker

キャンバスを使用しても問題がない場合は、これを試してください。

   <!DOCTYPE html>
    <html>
    <head>
        <style>
            .wrapper {position:absolute; z-index:2;width:400px;height:328px;background-color: transparent;}
            .canvas {position:absolute;z-index:1;}
            .gif {position:absolute;z-index:0;}
            .hide {display:none;}
        </style>

        <script src="https://code.jquery.com/jquery-3.2.1.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>

        <script>
            window.onload = function() {
                var c = document.getElementById("canvas");
                var ctx = c.getContext("2d");
                var img = document.getElementById("gif");
                ctx.drawImage(img, 0, 0);
            }

            $(document).ready(function() {
                $("#wrapper").bind("mouseenter mouseleave", function(e) {
                    $("#canvas").toggleClass("hide");
                });
            });
        </script>

    </head>
    <body>

    <div>
        <img id="gif" class="gif" src="https://www.macobserver.com/imgs/tips/20131206_Pooh_GIF.gif">

        <canvas id="canvas" class="canvas" width="400px" height="328px">
        </canvas>

        <div id="wrapper" class="wrapper"></div>
    </div>

    </body>
    </html>
0
sunny