2017-09-12 7 views
0

スムーズなスクロール(下のスクリプトタグ)にはjavascriptを使用していますが、アンカーリンク用のhrefもあります。すべてのアンカーが正常に動作していますが、javascriptはURLのhrefを無効にしているようです。これを書き直してもうまくいくように助けてくれますか?URL hrefが失敗しました:アンカー、URL、Javascript

<ul class="snip1143"> 
    <li class><a href="#home1" data-hover="Home">Home</a></li> 
    <li><a href="#about1" data-hover="About">About</a></li> 
    <li><a href="#experience1" data-hover="Work">Work</a></li> 
    <li><a href="URL HERE" data-hover="Blog">Blog</a> </li 
    <li><a href="#contact1" data-hover="Contact">Contact</a></li> 

<script> 

    $(document).on('click', 'a', function(event) { 
     event.preventDefault(); 

     $('html, body').animate({ 
      scrollTop: $($.attr(this, 'href')).offset().top 
     }, 500); 
    }); 

</script> 
+2

の前にマークアップを修正する必要があります。 4th liには終了タグが必要です。あなたのulも終了タグが必要です –

答えて

0

event.preventDefault()は、デフォルトのアンカーがそのURLに行くのを防ぐために行われます。おそらくアニメーション化したいアンカーにクラスを追加し、すべてのアンカータグのデフォルトを防止する代わりにそれらを選択するだけです。

+0

可能であれば、コードで詳しく説明してください。私は初心者のビットです。あなたのご意見ありがとうございます。 –

0

各要素にユニークなdata-hoverがあるので、私たちがしなければならないことは、data-hover属性の値を検証することでフィルタリングすることだけです。

<script> 

    $(document).on('click', 'a', function(event) { 
     if($(this).data('hover') !== "Blog"){  
     $('html, body').animate({ 
      scrollTop: $($.attr(this, 'href')).offset().top 
     }, 500); 
    }// since i noticed that you want to redirect the page once the Blog link is clicked 
    }); 

</script> 

これが問題の解決に役立つかどうか教えてください。

+0

ありがとう、それは私のために働いた!残念なことに、他のすべてのhrefリンクは、メニューバーの "ブログ"の外で無効になりました。これを修正する方法はありますか?もう1つはクラスを使用していると言われています。これを達成するのを手伝ってもらえますか? –

+0

こんにちは、リンク(href)のデフォルトのアクションを設定したい場合は、条件ステートメントでいくつかのバリデーションを設定するだけで、 "ブログ"、 "仕事"、 "連絡先"タブ(またはこれらの3つのデフォルトのリダイレクトアクションを実行するには、ここにそれらを含めます($(this).data( 'hover')!== "Blog"){ == "Blog")||($(this)).data( 'hover')!== "Work")||($(this)).data($(this) 'hover')!== "Contact")){次に、event.preventDefault()を挿入します。私はあなたが私の答えで啓発されたことを願っています。 – jhek

+0

これらの他のURLリンクは私のページ全体(メニューバーではありません)にありますが、私はそれらを動作させる必要があります。メニューバーのURLリンクを取得する方法を理解していますが、他のリンクはページ全体に分散されていますか?彼らはすべて無効になっています。私の状態でそれらを単一にすることができる方法は何ですか? –

関連する問題