Как я могу изменить свой javascript, чтобы прокрутить меньше на 60px - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть iFrame, использующий некоторые js, чтобы включить прокрутку в Advanced iFrame, которая автоматически изменяет размер фрейма.

Моя проблема в том, что, хотя код ниже работает хорошо, он прокручивается слишком далеко. Это не учитывает мою строку меню, которая имеет высоту 60px.

Проблема может быть замечена здесь https://www.rosentreter.website/family-tree/ после выбора буквы алфавита.

Как я могу изменить код top.offset, чтобы уменьшить его на 60px? Я перепробовал все ...

Используя библиотеку jquery -1.7.2.min, мой код выглядит следующим образом:

$(function() {var iframeOffset = $("#gramps", window.parent.document).offset();
  $("a").each(function () {
    var link = $(this);
    var href = link.attr("href");
    if (href && href[0] == "#") {
      var name = href.substring(1)
      $(this).click(function () {
          var nameElement = $("[name='" + name + "']");
          var idElement = $("#" + name);
          var element = null;
          if (nameElement.length > 0) {
             element = nameElement;
          } else if (idElement.length > 0) {
             element = idElement;
          }
           if (element) {
             var offset = element.offset();
              window.parent.scrollTo(offset.left, offset.top + iframeOffset.top);
           }
           return false;
       });
      }
   });
});

1 Ответ

0 голосов
/ 20 апреля 2020

когда я изменил эту часть кода, ваш темп работает довольно хорошо

window.parent.scrollTo(offset.left, offset.top + iframeOffset.top-60);


полный код

$(function() {var iframeOffset = $("#gramps", window.parent.document).offset();
  $("a").each(function () {
      var link = $(this);
      var href = link.attr("href");
      if (href && href[0] == "#") {
          var name = href.substring(1);
          $(this).click(function () {
              var nameElement = $("[name='" + name + "']");
              var idElement = $("#" + name);
              var element = null;
              if (nameElement.length > 0) {
                  element = nameElement;
              } else if (idElement.length > 0) {
                  element = idElement;
              }
               if (element) {
                  var offset = element.offset();
                  window.parent.scrollTo(offset.left, offset.top + iframeOffset.top-60);//Changed!!
              }
               return false;
          });
      }
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...