我已经设置我的网站通过使用scrollTop到某个div函数滚动过强制标题元素。我特意将它设置为慢速滚动,以便用户“知道标题在那里”但在后续页面上,我宁愿它只是从那个滚动位置开始。
我正在尝试使用简单的if / else语句来抓取wordpress页面(is_home)并将动画设置为1200,否则将动画设置为0.我甚至已经进入并设置了自定义字段is_home和True的页面。但它仍然无法正常工作。任何想法如何修复if / else或建议以更好的方式来实现它?
if (is_home()) {
$(window).load(function () {
$('html, body').animate({
scrollTop: $("#grey").offset().top
}, 1200);
});
} else {
$(window).load(function () {
$('html, body').animate({
scrollTop: $("#grey").offset().top
}, 0);
})
}
答案 0 :(得分:1)
好吧,if(is_home())
是来自WordPress API的php语句,在JS中不可用。你可以在此基础上包含不同的脚本调用,但在我看来这是相当糟糕的做法。
确保在插件之后执行以下操作,显然是jquery。好地方可能在wp_footer()
<?php
if (is_home()) { ?>
<script>
$(window).load(function () {
$('html, body').animate({
scrollTop: $("#grey").offset().top
}, 1200);
});
</script>
<?php } else { ?>
<script>
$(window).load(function () {
$('html, body').animate({
scrollTop: $("#grey").offset().top
}, 0);
});
</script>
<?php } ?>
答案 1 :(得分:0)
您正在将PHP和JavaScript结合在一起。 is_home()是一个PHP语句 您需要重写您的代码,如下所示:
<?php
if (is_home()) {
?>
<script type="text/javascript">
$(window).load(function () {
$('html, body').animate({
scrollTop: $("#grey").offset().top
}, 1200);
});
</script>
<?php
} else {
?>
<script type="text/javascript">
$(window).load(function () {
$('html, body').animate({
scrollTop: $("#grey").offset().top
}, 0);
});
</script>
<?php
}
?>
同时使用jQuery
代替$
以避免与任何其他JavaScript库发生冲突