0

このトピックについて SO のいたるところに質問がありますが、このためにさまざまなスクリプトを試してみましたが、自分のサイトで動作させることができません。

私は自分用に個人用ポートフォリオのワードプレス テーマを作成していますが、それを 1 ページのテーマにしたいと考えています。私が欲しいのは、ユーザーがナビゲーションのリンクをクリックすると、ページがそのセクションまでスクロールダウンすることです。簡単でしょ?いいえ。

私のサイトで機能しない理由はわかりませんが、固定ナビゲーションへのスクロールに使用しているスクリプトに関係していると思います。

このページ内ナビゲーションのスクロール効果を作成するために現在使用しようとしているスクリプトは次のとおりです。http://css-tricks.com/snippets/jquery/smooth-scrolling/

そして、固定ナビゲーション効果へのスクロールを作成するために使用しているスクリプトは次のとおりです。

window.onscroll=function () {
    var top = window.pageXOffset ? window.pageXOffset : document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;
    if(top > 640){
        document.getElementById("nav").style.position = "fixed";
        document.getElementById("nav").style.height="65px";
    } else {
        document.getElementById("nav").style.position = "relative";
        document.getElementById("nav").style.height="65px";
    }
}

私がこれをやろうとしているサイトをhttp://www.tylerb.meで見ることができます

2 つのスクリプトが互いに矛盾していて、そのうちの 1 つが機能していませんか?

4

3 に答える 3

3

jQuery.noConflict()ワードプレスは、競合が発生するのを防ぐためにこの方法を使用しているようです。スクリプトの競合のため (たとえば、moo ツールは $ も使用します)、それぞれ$をに置き換えますjQuery。これはあなたの問題を解決するはずです..プラグイン自体ではなく、プラグインを呼び出すコードを意味します。

例:

//normal jquery method call:
$("element").method(etc);

//with noConflict code:
jQuery("element").method(etc);

更新 1:

特定のものを放っておくのを忘れたようです$。この行:

var target = jQuery(this.hash), target = this.hash;

これでなければなりません:

var $target = jQuery(this.hash), target = this.hash;

もちろん、これは . で始まる変数にも当てはまります$。それらのものは削除しないでください。

于 2013-04-03T23:57:51.293 に答える
1

問題の核心は、jQuery がロードされていないことです。

ここに画像の説明を入力

ダイダロスが先に到着しました。問題を引き起こしているのは競合ではありません。$ ではなく jQuery を使用してください。

于 2013-04-03T23:55:47.573 に答える
0

これは、一部の人にとっては役立つかもしれません。

使用してみてください:

jQuery(document).ready(function($){
    // do stuff here using $
});

それ以外の

$(document).ready(function($){
    // do stuff here
});

これは、以前に宣言されたものと競合するのではなく、ローカルの $ を宣言します。

何度も助けてくれました。

于 2014-10-17T07:56:32.370 に答える