メニュー項目を同じページの見出しにスクロールさせる方法は?


7

連絡先情報が配置されているホームページの一番下までスクロールするメニュー項目(この場合は「連絡先」)を作成する方法を探しています。

外部URLメニュー項目を作成し、URlフィールドに「#contact」を<a name="contact"> </a>入力してからソースコードに配置しようとしましたが、機能しませんでした。

Joomlaでこれを達成する方法はありますか?


リンクをスクロールするレイアウトの位置の IDを使用する必要があります。それは私のために働いた!

回答:


7

アンカーを作成するときは、次のように名前を要素のIDとして割り当てる必要があります。

リンク:

<a href="#contact">Contact</a>

アンカー:

<div id="contact">
  // Your form here
</div>

クリックすると、このアンカーに移動します。スムーズなスクロールでトランジションをアニメーション化したい場合は、jQueryを次のように使用できます。

jQuery(document).ready(function($) {

    $('a[href=#contact]').on('click', function(e) {
        e.preventDefault();
        $('html,body').animate({scrollTop:$(this.hash).offset().top-0}, 500);
    });

});

3

これはjQueryを使用して行うことができます(Lodderが提案)。これは代替ソリューションです(StackOverflowでのこの回答から)。このコードをindex.phpファイルに配置します。

<script>
var $root = jQuery('html, body');
jQuery('#contact').click(function() {
    var href = jQuery.attr(this, 'href');
    $root.animate({
        scrollTop: $(href).offset().top
    }, 2000, function () {
        window.location.hash = href;
    });
    return false;
});  
</script>

さらに、メニュー項目がサイトのどの部分からでも機能する必要がある場合(連絡先情報がホームページにのみ表示される場合)、これをメニュー項目のURLに入れます。

index.php/#contact
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.