目标是在页面加载时使用URL fragid跳转到单独页面上的特定部分。 <a href="page.php#section>
意外的行为是,在页面加载时,offsetTop似乎无法计算或值被覆盖。
console.log($("#section").offset());
<script>
标记jQuery(document).ready(function() {})
$(window).on('load', function() {})
all导致控制台日志为{ top: 0, left:0 }
。
但是,一旦文件被加载,我将手动打开Dev Tools并输入console.log($("#section").offset());
,它会返回{ top:200px, left: 200px }
的预期输出。
-当我加载页面而不调用LESS文件时,就会进行计算。这使我相信这是LESS的比赛条件。但是,LESS会与之战斗并覆盖html:5函数,这似乎很奇怪。
答案 0 :(得分:1)
将简单的URI查询组件附加到锚点的href
属性的值。
<a href="page.php?hash=section">Click here</a>
然后,在page.php
上添加代码以处理GET
请求中的URI查询。
<!-- at bottom of markup just before end body -->
<?php if (@$_GET['hash'] === 'section') echo '<script>window.location.hash="section";</script>'; ?>
</body>
答案 1 :(得分:0)
使用javascript
window.onload = function (){
"use strict";
document.body.addEventListener("load",function(){
// your code here
});
}
使用jQuery很简单
$("body").on("load",function(){
// here code
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>