За последние 24 часа нас посетили 16675 программистов и 1647 роботов. Сейчас ищут 1855 программистов ...

Вертикальная и горизонтальная фиксация с прокруткой

Тема в разделе "JavaScript и AJAX", создана пользователем Атм_Евгений, 7 дек 2017.

  1. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    Здравствуйте! У меня задача сделать так, чтобы верхняя строка таблицы (шапка) фиксировалась по вертикали, а по горизонтали прокручивалась, а самый левый столбец фиксировался по горизонтали, а по вертикали прокручивался. Нашел я скрипт, по отдельности работает, а вместе не работает. Я в Джава полный ноль, подскажите могут ли эти два скрипта конфликтовать и что изменить, чтобы заработало?

    Верхняя строка таблицы с индексом id="fix_vertical" и position: absolute;
    Скрипт:
    Код (Text):
    1. <script>
    2.     window.onscroll=function(){
    3.         var s=(document.documentElement.scrollTop||document.body.scrollTop);
    4.         document.getElementById("fix_vertical").style.top=s+54+'px';
    5.     };
    6. </script>
    Самый левый столбец с индексом id="fix_horizon" и position: absolute;
    Скрипт:
    Код (Text):
    1. <script>
    2.     window.onscroll=function(){
    3.         var s=(document.documentElement.scrollLeft||document.body.scrollLeft);
    4.         document.getElementById("fix_horizon").style.left=s+20+'px';
    5.     };
    6. </script>
     
  2. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    Что мешает их объединить в один обработчик? Тут только надо по-разному назвать переменные s.
    Мне кажется эта задача решается с помощью css-стилей.
     
  3. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
    С помощью стилей не решается. В один обработчик так:
    Код (Text):
    1. <script>
    2.     window.onscroll=function(){
    3.         var s=(document.documentElement.scrollTop||document.body.scrollTop);
    4.         document.getElementById("fix_vertical").style.top=s+54+'px';
    5.         var o=(document.documentElement.scrollLeft||document.body.scrollLeft);
    6.         document.getElementById("fix_horizon").style.left=s+20+'px';
    7.     };
    8. </script>
     
  4. Maputo

    Maputo Активный пользователь

    С нами с:
    30 июл 2015
    Сообщения:
    1.136
    Симпатии:
    173
    А в 6й строке s ?
     
  5. Атм_Евгений

    Атм_Евгений Активный пользователь

    С нами с:
    21 июл 2017
    Сообщения:
    206
    Симпатии:
    5
  6. TeslaFeo

    TeslaFeo Старожил

    С нами с:
    9 мар 2016
    Сообщения:
    2.984
    Симпатии:
    759
    [​IMG]
    --- Добавлено ---
    Денис, прости)
     
    denis01 нравится это.