簡體   English   中英

PHP和jQuery-根據主體類或滾動頂部更改href?

[英]PHP & jQuery - Change href depending on body class or scrolltop?

如果希望從主頁(一個頁面滾動網站)單擊,徽標的onclick滾動到頂部(主頁),如果在內部頁面上單擊,則徽標鏈接保留為站點URL。

我的客戶基本上不希望網站從主頁上重新加載徽標的clickclick。

最好的方法是什么? 到目前為止,我已經想到了兩種方法...

  1. 將href屬性替換為url + body類(我的菜單鏈接使用此屬性,並滾動到每個部分,而無需重新加載頁面)
  2. 如果在正文具有class .home時單擊徽標,請滾動到窗口頂部。 但是我不確定這是否會覆蓋主題設置的網址嗎?

這是片段/menus.php文件中如何設置徽標href的摘要...

$logoDiv = '<a href="'.esc_url( home_url( '/' ) ).'" class="navbar-brand" data-minheight="'.(($LOGO->logo_min == "") ? "20" : esc_attr($LOGO->logo_min)).'">';

我在Wordpress上使用Uncode主題。 而且我是PHP和jQuery的新手...對此,最好的建議是最好的建議,我可以自己嘗試一下!

謝謝 :)

您可以使用以下代碼

$logoDiv = '<a href="javascript:void(0)" class="navbar-brand" data-minheight="'.(($LOGO->logo_min == "") ? "20" : esc_attr($LOGO->logo_min)).'" onclick="window.scrollTo(0,0);">';

希望對您有幫助

您可以在呈現頁面之前檢查當前鏈接是否為主頁:

$href = ($_SERVER["REQUEST_URI"]==home_url("","relative")?"#":esc_url( home_url( '/' ) ))

$logoDiv = '<a href="'.$href.'" class="navbar-brand" data-minheight="'.(($LOGO->logo_min == "") ? "20" : esc_attr($LOGO->logo_min)).'">';

如果希望對滾動進行動畫處理,則可以添加以下jQuery:

$("[href='#']").on("click", function (e) {
    e.preventDefault();
     $('html, body').animate({
        scrollTop: 0
     });
});

如果您想限制它,那么它將對所有帶有href='#'鏈接有效,您需要一個更具體的選擇器。

就像您的注釋所建議的那樣,如果您有辦法確定當前頁面是否為主頁,也可以使用jQuery進行此操作。

您的解決方案應該可以工作:

$(document).ready(function() { 
    if($(body).hasClass("home")){ 
        $(".navbar-brand[href='ldngrp.co']").attr('href', '#'); 
     }
}); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM