تعيين قيمة إزاحة تحميل الصفحة على 0. يتم حساب قيمة الاستقصاء عند الاستقصاء

0

الهدف هو استخدام عنوان url غير مستقر للانتقال إلى قسم معين في صفحة منفصلة عند تحميل الصفحة. <a href="page.php#section>

السلوك غير المتوقع هو أنه عند تحميل الصفحة لا يبدو أن offsetTop يتم حسابه أو يتم استبدال القيمة.

  • عندما أتصل console.log($("#section").offset());
  • من <script> علامة ملف PHP المحمل ،
  • أو ملف js مرتبط يستدعي في jQuery(document).ready(function() {}) ،
  • أو $(window).on('load', function() {})

جميع النتائج في سجل وحدة التحكم { top: 0, left:0 } .

ولكن بمجرد تحميل الملف ، أقوم بفتح أدوات التطوير يدويًا وأدخل console.log($("#section").offset()); وتقوم بإرجاع الناتج المتوقع لـ { top:200px, left: 200px } . - عندما أقوم بتحميل الصفحة دون استدعاء ملف LESS ، يتم الحساب. هذا يقودني إلى الاعتقاد بأنها حالة سباق مع LESS. ولكن هذا يبدو غريباً أن LESS سيقاتل ويستبدل وظيفة html: 5.

2 الاجابة

1
افضل جواب

إلحاق مكون استعلام URI بسيط بقيمة href صفة مرساة الخاص بك.

<a href="page.php?hash=section">Click here</a>

ثم أضف الرمز على page.php للتعامل مع استعلام URI في GET طلب.

<!-- at bottom of markup just before end body -->
<?php if (@$_GET['hash'] === 'section') echo '<script>window.location.hash="section";</script>'; ?>
</body>
:مؤلف
1
افضل جواب

مع جافا سكريبت

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>

:مؤلف
فوق
قائمة طعام