[英]PHP & jQuery - Change href depending on body class or scrolltop?
如果希望從主頁(一個頁面滾動網站)單擊,徽標的onclick滾動到頂部(主頁),如果在內部頁面上單擊,則徽標鏈接保留為站點URL。
我的客戶基本上不希望網站從主頁上重新加載徽標的clickclick。
最好的方法是什么? 到目前為止,我已經想到了兩種方法...
這是片段/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.