Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php动态创建的页面滚动到锚定标记_Php_Anchor - Fatal编程技术网

使用php动态创建的页面滚动到锚定标记

使用php动态创建的页面滚动到锚定标记,php,anchor,Php,Anchor,我有一个页面,从表中读取条目,然后php生成显示每一行的div——div的名称和id根据记录设置为唯一的字符串#。例如: 加载页面时,将以以下格式传递要滚动到的记录的唯一锚定字符串: href='showpost.php#g50' 当页面加载时,它会正确显示带有锚的url,但不会滚动 但是,如果我将光标放在浏览器的地址栏上并按,页面将正确滚动到记录。奇怪的是,和将无法工作(Firefox16) 我猜动态创建的页面与此有关。你知道会发生什么吗?你总是可以使用一个简单的javascript调用滚动

我有一个页面,从表中读取条目,然后php生成显示每一行的div——div的名称和id根据记录设置为唯一的字符串#。例如:

加载页面时,将以以下格式传递要滚动到的记录的唯一锚定字符串: href='showpost.php#g50'

当页面加载时,它会正确显示带有锚的url,但不会滚动

但是,如果我将光标放在浏览器的地址栏上并按
,页面将正确滚动到记录。奇怪的是,
将无法工作(Firefox16)


我猜动态创建的页面与此有关。你知道会发生什么吗?

你总是可以使用一个简单的javascript调用滚动到一个锚。您可以从页面中的任何位置调用Javascript代码,因此为了安全起见,可以在PHP生成所有锚之后将其放在页面末尾

<?php 
    // php generation code here
?>
<script type="text/javascript">
    var hashSplit = location.href.split('#');
    var curHash= hashSplit[1];
    window.location.hash = curHash;
</script>

var hashSplit=location.href.split('#');
var curHash=hashSplit[1];
window.location.hash=curHash;
或者,如果您已经知道通过php页面的锚定将是什么,那么您可以更轻松地完成它

<?php
    $anchor = "home";
?>
<script type="text/javascript">
    window.location.hash = "<?= $anchor; ?>";
</script>

window.location.hash=“”;

非常有用的示例,谢谢SISYN。 但我有我的版本

let hashSplit = location.href.split('#');
let curHash = hashSplit[1];
if(typeof curHash !== 'undefined') {
    $('html, body').animate({
        scrollTop: $('#' + curHash).offset().top
    }, 1000);
}

这相当复杂。我将致力于创建独立的php代码,看看是否可以复制它。那太好了。如果看不到您的问题的具体情况,就很难提供帮助-现在唯一可以帮助您的人是那些遇到完全相同问题的人。嗯,这些可能是显而易见的,但是,一些浏览器在跳转到锚(特别是如果您有很多内容)或可能是格式错误的锚标记之前需要一段时间?或者,如果您使用的是javascript,那么滚动事件可能在页面加载之前触发得太快了。我已经弄明白了。有时需要发布一个问题来了解如何调试它。我发现有一个java脚本onload滚动到0并与锚冲突。谢谢你鼓励我发布代码。