Восстановление позиции скроллинга в ПолеHTMLДокумента
Написал небольшую обработку для тестирования.
Если устанавливаю Документ.body.scrollTop, получается прокрутить.
Но как получить текущую позицию скроллинга? Когда считываю Документ.body.scrollTop, получаю всегда ноль.
windows.scrollY вообще не работает, с него пробовал начинать.
Если устанавливаю Документ.body.scrollTop, получается прокрутить.
Но как получить текущую позицию скроллинга? Когда считываю Документ.body.scrollTop, получаю всегда ноль.
windows.scrollY вообще не работает, с него пробовал начинать.
Прикрепленные файлы:
Найденные решения
(22) Как ни странно, но это действительно работает.
я просто все body обернул в div с ID scroller.
CSS:
И вот теперь могу получать scroller.ScrollTop:
А я уж думал, все, амба... Спасибо за наводку.
я просто все body обернул в div с ID scroller.
CSS:
.scroller {
Overflow:auto;
Height :100%
}
И вот теперь могу получать scroller.ScrollTop:
scroller = Элемент.Документ.getElementById("scroller");
Если scroller <> Неопределено Тогда
ПозицияY = scroller.scrollTop;
КонецЕсли;
А я уж думал, все, амба... Спасибо за наводку.
Прикрепленные файлы:
ПроверкаПрокрутки2.epf
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
в коде JS нужно написать функцию, примерно так:
Поправь её для себя, чтобы она возвращала позицию скролла
let x = window.scrollX || window.pageXOffset;
let y = window.scrollY || window.pageYOffset;
а в 1с нужно вызвать функцию и получить результат из неё, ниже тоже код примерный:
в коде JS нужно написать функцию, примерно так:
function Message1C(n, my_key_name)
{
document.getElementById('my_key_name').innerHTML = my_key_name;
document.getElementById('my_number_foto').innerHTML = n;
plusSlides(n);
} Поправь её для себя, чтобы она возвращала позицию скролла
let x = window.scrollX || window.pageXOffset;
let y = window.scrollY || window.pageYOffset;
а в 1с нужно вызвать функцию и получить результат из неё, ниже тоже код примерный:
ЭтотОбъект.КоличествоФото = " <a on click=""Message1C(0,'СсылкаВбраузере')"">Ссылка</a></div>" + Символы.ПС;
(8) мимо. В браузере 1С window.ScrollY всегда равен нулю. window.pageyoffset тоже равно нулю.
Вообще все методы на прокрученной до конца вниз странице дают 0:
Вообще все методы на прокрученной до конца вниз странице дают 0:
function bus_scroll_click(event) {
//alert('click');
var bus_scroll = document.getElementById("bus_scroll");
bus_scroll.setAttribute("scrollY", window.scrollY);
bus_scroll.setAttribute("pageYOffset", window.pageYOffset);
bus_scroll.setAttribute("document_documentElement_scrollTop", document.documentElement.scrollTop);
bus_scroll.setAttribute("document_body_scrollTop", document.body.scrollTop);
}
ПоказатьПрикрепленные файлы:
(1) Не по теме вопрос, но может у тебя такая разработка есть.
В ОСВ по 62 счету в 1С Бухгалтерии есть суммы с плюсом и с минусом. Их нужно "схлопнуть". Сделать ручную операцию по 62 счету, которая эти суммы взаимно зачтет. Причем так, чтобы обороты не увеличивались.
Документ «Корректировка долга» не выполнил свою функцию корректно. Поэтому пришлось сделать ручной операцией, но бухгалтер все равно остался недоволен, потому что увеличились обороты.
Есть ли у тебя обработка, которая правильно сформирует проводки по "схлопыванию" сумм с плюсом и с минусом на 62 счете? Или может ты что-то подобное видел.
В ОСВ по 62 счету в 1С Бухгалтерии есть суммы с плюсом и с минусом. Их нужно "схлопнуть". Сделать ручную операцию по 62 счету, которая эти суммы взаимно зачтет. Причем так, чтобы обороты не увеличивались.
Документ «Корректировка долга» не выполнил свою функцию корректно. Поэтому пришлось сделать ручной операцией, но бухгалтер все равно остался недоволен, потому что увеличились обороты.
Есть ли у тебя обработка, которая правильно сформирует проводки по "схлопыванию" сумм с плюсом и с минусом на 62 счете? Или может ты что-то подобное видел.
Вот что на это может пояснить дипсик.
Чтобы получить позицию вертикального скроллера (вертикальную прокрутку) в JavaScript, можно использовать следующие свойства:
1. Для всего документа (страницы):
javascript
// Совместимый способ (работает в большинстве браузеров)
const scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
console.log(scrollPosition); // Выведет текущую позицию скролла по вертикали
2. Для конкретного элемента с прокруткой:
javascript
const element = document.getElementById('scrollable-element');
const scrollPosition = element.scrollTop;
console.log(scrollPosition); // Позиция скролла внутри элемента
3. Современный способ (лучшая практика):
javascript
const scrollPosition = window.scrollY; // Только для вертикального скролла
// или
const scrollPosition = window.scrollX; // Для горизонтального скролла
console.log(scrollPosition);
Пример отслеживания скролла:
javascript
window.addEventListener('scroll', function() {
const scrollPosition = window.scrollY;
console.log('Текущая позиция скролла:', scrollPosition);
});
Примечания:
window.scrollY и window.pageYOffset - это современные и предпочтительные способы.
document.documentElement.scrollTop работает лучше в некоторых случаях (например, в режиме quirks mode).
Для элементов с overflow: auto или overflow: scroll используйте свойство element.scrollTop.
Выберите подходящий вариант в зависимости от того, нужно вам отслеживать прокрутку всей страницы или конкретного элемента.
Показать1. Для всего документа (страницы):
javascript
// Совместимый способ (работает в большинстве браузеров)
const scrollPosition = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop;
console.log(scrollPosition); // Выведет текущую позицию скролла по вертикали
2. Для конкретного элемента с прокруткой:
javascript
const element = document.getElementById('scrollable-element');
const scrollPosition = element.scrollTop;
console.log(scrollPosition); // Позиция скролла внутри элемента
3. Современный способ (лучшая практика):
javascript
const scrollPosition = window.scrollY; // Только для вертикального скролла
// или
const scrollPosition = window.scrollX; // Для горизонтального скролла
console.log(scrollPosition);
Пример отслеживания скролла:
javascript
window.addEventListener('scroll', function() {
const scrollPosition = window.scrollY;
console.log('Текущая позиция скролла:', scrollPosition);
});
Примечания:
window.scrollY и window.pageYOffset - это современные и предпочтительные способы.
document.documentElement.scrollTop работает лучше в некоторых случаях (например, в режиме quirks mode).
Для элементов с overflow: auto или overflow: scroll используйте свойство element.scrollTop.
Выберите подходящий вариант в зависимости от того, нужно вам отслеживать прокрутку всей страницы или конкретного элемента.
(2) я чуть выше писал, что ScrollY всегда возвращает ноль. Такое ощущение, что 1С рассматривает документ как не скроллируемый.
Я написал небольшой файл HTML+JS, где выполняется onScroll. Так вот в браузере все ОК, а в 1С onScroll не вызывается тупо.
Я написал небольшой файл HTML+JS, где выполняется onScroll. Так вот в браузере все ОК, а в 1С onScroll не вызывается тупо.
function addTextToEnd(text) {
// Создаем новый элемент параграфа
const paragraph = document.createElement('p');
// Устанавливаем текст для параграфа
paragraph.textContent = text;
// Добавляем параграф в конец body
document.body.appendChild(paragraph);
}
window.addEventListener('scroll',()=>{
addTextToEnd("Scroll Y: " + window.scrollY);
//console.log(document.documentElement.scrollTop || document.body.scrollTop);
});
Показать
(17) насколько я понял, совет заключается в слушателе события scroll.
Так вот один и тот же html код в браузере ловит событие scroll, а в полетхтмл документа не ловит.
Такое ощущение, что все поле хтмл документа 1с считает одним большим полотном, которое прокручивает не средствами браузера, а своими
Хотя я ещё попробую и выложу версию со слушателем сюда.
Так вот один и тот же html код в браузере ловит событие scroll, а в полетхтмл документа не ловит.
Такое ощущение, что все поле хтмл документа 1с считает одним большим полотном, которое прокручивает не средствами браузера, а своими
Хотя я ещё попробую и выложу версию со слушателем сюда.
(25) Какую обработку? На картинке? Так это фрма, в ней один реквизит типа строка, выведенный в поле ХТМЛ, в коде строке присваивается "хтмл/боди/див стайл = блабла" - т.е. строка. Код на картинке - это тот самый документ.боди.скроллтоп. Для разных позиций скролла он у меня показывает разные цЫфры.
(20) В общем хз, что ты там куришь, но вот я не поленился и в линухе своем залез глянуть. В итоге у меня работает один из методов, который дипсик выдал. Смотри картинку.
ЗЫ: ну ты же понимаешь, что див тут просто для того, чтобы в принципе скроллбар был виден, да? Ну т.е. что это не скорлл внутри дива...
ЗЫ: ну ты же понимаешь, что див тут просто для того, чтобы в принципе скроллбар был виден, да? Ну т.е. что это не скорлл внутри дива...
Прикрепленные файлы:
(22) Как ни странно, но это действительно работает.
я просто все body обернул в div с ID scroller.
CSS:
И вот теперь могу получать scroller.ScrollTop:
А я уж думал, все, амба... Спасибо за наводку.
я просто все body обернул в div с ID scroller.
CSS:
.scroller {
Overflow:auto;
Height :100%
}
И вот теперь могу получать scroller.ScrollTop:
scroller = Элемент.Документ.getElementById("scroller");
Если scroller <> Неопределено Тогда
ПозицияY = scroller.scrollTop;
КонецЕсли;
А я уж думал, все, амба... Спасибо за наводку.
Прикрепленные файлы:
ПроверкаПрокрутки2.epf
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
