• 解決済 ishikoro

    (@ishikoro)


    お世話になります。

    メニューにjQueryを使って色が変化するアニメーションを実装したいと思い、調べるとプラグインを使わないでJqueryを実装する方法があることがわかりました。

    そこで、header.phpの<head>内に以下のコードを追加しました。

    <script type=”text/javascript” src=”js/jquery.js”>
    $(function(){
    $(document).ready(function(){
    $(“.menu li a”).hover(function() {
    $(this).stop().animate({color: “#0096c1”}, 800);//ONマウス時のカラーと速度
    },function() {
    $(this).stop().animate({color: “#111” }, 800);//OFFマウス時のカラーと速度
    });
    });
    </script>

    しかし、全く機能しません。
    問題点がわかる方、ご指導よろしくお願いいたします。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • 参考になれば。
    参考サイト

    トピック投稿者 ishikoro

    (@ishikoro)

    wizfreek様

    コメントありがとうございます!

    私もちょうどその参考サイトを何度も読んでいたところでした。

    <?php wp_head(); ?> によってwordpress本体に元から入っているjQueryが読み込まれているということで、更にそちらのjQueryに対応させた記述では$をjQueryに全て書き換える必要があると理解し、実行しました。

    <script type=”text/javascript” src=”js/jquery.js”></script>
    <script type=”text/javascript”>
    jQuery(function(){
    jQuery(function(){
    jQuery(document).ready(function(){
    jQuery(“.menu li a”).hover(function() {
    jQuery(this).stop().animate({color: “#0096c1”}, 800);//ONマウス時のカラーと速度
    },function() {
    jQuery(this).stop().animate({color: “#111” }, 800);//OFFマウス時のカラーと速度
    });
    });
    });
    </script>

    しかし、全く何の変化もありません。。

    jQueryを他に読み込む必要があるということでしょうか?
    もしくは上記のコードに誤りがあるのでしょうか?

    ご指導よろしくお願いいたします。

    トピック投稿者 ishikoro

    (@ishikoro)

    <script type=”text/javascript” src=”js/jquery.js”></script>
    <script type=”text/javascript”>
    jQuery(function(){
    jQuery(document).ready(function(){
    jQuery(“.menu li a”).hover(function() {
    jQuery(this).stop().animate({color: “#0096c1”}, 800);//ONマウス時のカラーと速度
    },function() {
    jQuery(this).stop().animate({color: “#111” }, 800);//OFFマウス時のカラーと速度
    });
    });
    </script>

    上記の最上段の<script type=”text/javascript” src=”js/jquery.js”></script>この部分を<script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1.3.6/jquery.min.js”></script&gt;
    に変更したり試しましたが、どうもうまく行きません。

    jquery単体では、colorやbackground-colorのような整数値の値をとらない属性に対しては、
    animate関数は対応していないようです。

    juquery UIというライブラリを読み込めば
    対応できるようです。

    トピック投稿者 ishikoro

    (@ishikoro)

    wizfreek様

    そうなんですか。。

    jquery UIも試したのですが、読み込みがうまくできずに挫折しました。。

    ありがとうございます!なんとかもう少し頑張ってみます。

    <?php
    wp_deregister_script( 'jquery' );
    wp_deregister_script( 'jquery-ui-core' );
    wp_enqueue_script('jquery','http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js');
    wp_enqueue_script('jquery-ui-core','http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js', array('jquery'));
    ?>
    <?php wp_head(); ?>
    <script type="text/javascript">
    jQuery(document).ready(function(){
    jQuery(".menu li a").hover(function() {
    jQuery(this).stop().animate({color: "#0096c1"}, 800);
     },function() {
    jQuery(this).stop().animate({color: "#1a1a1a" }, 800);
     });
     });
    </script>

    でどうでしょうか?一応私の環境下ではこれで動きました。

    参考サイト
    http://creamo.jp/wordpress/jquery-load-wordpress/
    http://kachibito.net/web-design/jqueryui-background-color-change.html

    わたしも色々調べながら組んだのでスマートな方法ではないかもしれません。
    今後他のjqueryのプラグインを使うとすれば、外部ファイル化して、
    wp_enqueue_script()を使って呼び出した方が良いと思います。

    ちなみに、自分のテーマ内からjsファイル等を読み込む場合は、相対パスではなく、
    絶対パスを指定する必要があるので、

    <script type=”text/javascript” src=”js/jquery.js”></script>

    では無く、

    <script type=”text/javascript” src=”<?php bloginfo(template_derectory);?>/js/jquery.js”></script>

    などで、使用しているテーマまでのパスを指定する必要があります。

    トピック投稿者 ishikoro

    (@ishikoro)

    wizfreek様

    ご指導ありがとうございます!

    参考サイトも非常に参考になります!

    ご指導頂いた通り実行してみるとうまくいきました。

    大変助かりました。

    また、返信が遅くなりまして申し訳ありませんでした。

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「プラグインを使わないでjQueryを実装」には新たに返信することはできません。