Плавающий сайдбар

#16 18 апреля 2020 в 14:08


@Happy2019,

и кидаю туда код плавающей фиксированной кнопки

@Happy2019
А пример можно, не понимаю как туда код вставить?

Capitan

есть виджет HTML, туда вставляешь любой код и вуаля. И сайт не засоряется и отключить в любой момент можно. Я так сделал в контентах кнопку где можно добавлять самим пользователям (объявления, посты и тд на моб версии) prnt.sc/s1qenj
#17 18 апреля 2020 в 17:16

А пример можно, не понимаю как туда код вставить?

Capitan

#18 18 апреля 2020 в 18:24
т.е туда вставить кусок кода с шаблона с сайдбаром?
а можно ли вывести значения полей в данном виджете?
#19 18 апреля 2020 в 18:33
Блин, Capitan, в соседней теме Вы говорили, что знаете-понимаете

а тут задаете такие вопросы. Странно это всё.

Этим виджетом можно подключить файл со скриптом там, где надо или сам скрипт вставить в тело страницы.
#20 18 апреля 2020 в 18:57


т.е туда вставить кусок кода с шаблона с сайдбаром?
а можно ли вывести значения полей в данном виджете?

Capitan

я думал вам только кнопка. А по сути вам только колонку. Обратитесь к разработчикам, за монету вам любой сделает а кнопки, тел и написать автору — эти поля есть в каталоге, а стилями сами доведете до ума.
#21 19 апреля 2020 в 11:29
Мне нужно не просто код какой-то вывести в виджете.
Мне нужно в виджете садбара вывести значения из полей для определенного типа контента. Например поле цена, телефон, автор и тд.
#22 21 апреля 2020 в 13:03
Спасибо за помощь.
В виджет во вкладке "Код для вставки перед </body> в конце страницы"
вставил код скрипта с указанием стиля сайдбара и расстоянием от шапки
<!-- ниже дополнительно -->

<script>
(function(){
var a = document.querySelector('.col-sm-4'), b = null, P = 50;
// если ноль заменить на число, то блок будет прилипать до того, как верхний край окна браузера дойдёт до верхнего края элемента.
// Может быть отрицательным числом
window.addEventListener('scroll', Ascroll, false);
document.body.addEventListener('scroll', Ascroll, false);
function Ascroll() {
if (b == null) {
var Sa = getComputedStyle(a, ''), s = '';
for (var i = 0; i < Sa.length; i++) {
if (Sa.indexOf('overflow') == 0 || Sa.indexOf('padding') == 0 || Sa.indexOf('border') == 0 || Sa.indexOf('outline') == 0 || Sa.indexOf('box-shadow') == 0 || Sa.indexOf('background') == 0) {
s += Sa+ ': ' +Sa.getPropertyValue(Sa) + '; '
}
}
b = document.createElement('div');
b.style.cssText = s + ' box-sizing: border-box; width: ' + a.offsetWidth + 'px;';
a.insertBefore(b, a.firstChild);
var l = a.childNodes.length;
for (var i = 1; i < l; i++) {
b.appendChild(a.childNodes[1]);
}
a.style.height = b.getBoundingClientRect().height + 'px';
a.style.padding = '0';
a.style.border = '0';
}
var Ra = a.getBoundingClientRect(),
R = Math.round(Ra.top + b.getBoundingClientRect().height — document.querySelector('footer').getBoundingClientRect().top + 20);
// селектор блока, при достижении верхнего края которого нужно открепить прилипающий элемент; Math.round() только для IE;
// если ноль заменить на число, то блок будет прилипать до того, как нижний край элемента дойдёт до футера
if ((Ra.top — P) <= 0) {
if ((Ra.top — P) <= R) {
b.className = 'stop1';
b.style.top = — R +'px';
} else {
b.className = 'sticky1';
b.style.top = P + 'px';
}
} else {
b.className = '';
b.style.top = '';
}
window.addEventListener('resize', function() {
a.children[0].style.width = getComputedStyle(a, '').width
}, false);
}
})()
</script>
<!-- выше дополнительно -->
Все заработало.
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.