[英]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.