2017-09-21 8 views
0

私はアンカーベースのウェブサイトを持っています。JS/Ajaxを使用してアンカーでURLを動的に取得する

例:デフォルトのURLはdomain.comです。

このウェブサイトの別のセクションにはURL domain.com/#section1があります。

もう1つのセクションにURL domain.com/#section2があります。私はwebisteの完全なURLは、私が

window.location.href

を使用し得ることを試みたが、私は私のページを下にスクロールしたときにURLがdomain.com/#section1に変更

私の「window.location.hrefのdidn t変化。

マイJS:

$anchor = window.location.hash; 

    if($anchor == "#kraftwerk-82"){ 
     $(".starting-logo.default-logo").attr("src","/logo_main.png"); 
     $(".starting-logo.default-logo").attr("srcset","/logo_main.png 1x, /retina_logo.png 2x"); 
    }else{ 
     $(".starting-logo.default-logo").attr("src","/logo_main_white.png"); 
     $(".starting-logo.default-logo").attr("srcset","/logo_main_white.png 1x, /retina_logo_white.png 2x"); 
    } 

どのように動的にJSを使用して右のアンカーでURLを取得することができますか?

yourHash = window.location.hash.substring(1) 

UPDATE II

あなたはハッシュを変更する必要がスクロールし

if(window.location.hash){ 
    console.log(window.location.href + window.location.hash); 
}else{ 
    console.log(window.location.href); 
} 

UPDATE:唯一のハッシュタグを取得するため

+0

あなたはjQueryのを使用しています? –

+0

はい。私は正しいhrefを取得した後、私のifステートメントのために使用しています。 –

+0

アンカー変更機能はどこですか?スクロールするときは? –

答えて

1

あなたはwindow.location.hashを使用することができます。例:あなたは今、ハッシュが何であるかを確認することができますと呼ばれる

var anchor_top = $('a[href="#kraftwerk-82"]').offset().top; 

$(window).on('scroll', function() { 
    if ($(window).scrollTop() > anchor_top) { 
     window.location.hash = '#kraftwerk-82'; 
    } 
}); 

と機能上:

Function track(){ 
    $anchor = window.location.hash; 
    if($anchor == "#kraftwerk-82"){ 
     $(".starting-logo.default-logo").attr("src","/logo_main.png"); 
     $(".starting-logo.default-logo").attr("srcset","/logo_main.png 1x, /retina_logo.png 2x"); 
    }else{ 
     $(".starting-logo.default-logo").attr("src","/logo_main_white.png"); 
     $(".starting-logo.default-logo").attr("srcset","/logo_main_white.png 1x, /retina_logo_white.png 2x"); 
    } 
} 
+0

申し訳ありませんが私の質問は明確ではありませんでした。 私がスクロールしているときに私のウェブサイトの完全なURLを動的に表示する機能を持たせたいのです。 例:私は 'console.log'とgot - ' domain.com'を作った。 別のセクションまでスクロールすると、 'console.log'は私に' domain.com /#section1'を動的に返します。 –

+1

ハッシュタグが存在するかどうかを検出し、あなたのURLを作ることができます。試してみてください –

+0

'console.log'をスクロールしても、最初のアンカーが表示されます。それは動的に他のアンカーを示していません... –

関連する問題