Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как с помощью скрипта высчитать ширину полосы прокрутки? (https://javascript.ru/forum/dom-window/71320-kak-s-pomoshhyu-skripta-vyschitat-shirinu-polosy-prokrutki.html)

Nexus 12.11.2017 16:34

Цитата:

Сообщение от LADYX
конфликт решается заменой строки

никакого конфликта нет, есть банальное отсутствие элемента на странице.
Цитата:

Сообщение от LADYX
на страницах, где нет блока .pp-sections, в консоли появляется ошибка

Ну а как она не появится, если вы зная, что такого элемента на странице нет, все равно пытаетесь с ним взаимодействовать?
Проверить есть элемент на странице или нет можно так:
var element = $('.pp-sections');
if(element.length)
    alert('Элемент есть');
else
    alert('Элемента нет');

LADYX 12.11.2017 20:48

Цитата:

Сообщение от Nexus
никакого конфликта нет, есть банальное отсутствие элемента на странице.

да, вы конечно правы, так и есть до меня доперло, как до жирафа на седьмые сутки.
Nexus,
видите, что получается, есть у меня одна категория, в которой ряд страниц. И на одной из них есть блок div .pp-sections. Так вот на этой странице естественно никаких ошибок не возникает. А на всех остальных страницах появляется ошибка, в связи с чем и не работают все остальные скрипты, которые расположены ниже этого скрипта. Но я не имею такой возможности отдельно именно для этой страницы подключать отдельный файл с этим скриптом, поэтому этот скрипт находится в общем файле со всеми скриптами. Так вот скажите, пожалуйста, возможно ли что-то сделать с этим скриптом, чтобы он срабатывал только тогда, когда на странице есть такой блок, а если на странице такого блока нет, то чтобы этот скрипт полностью игнорировался? Реально ли такое сделать?

рони 12.11.2017 21:38

Цитата:

Сообщение от LADYX
Реально ли такое сделать?

:blink:
Цитата:

Сообщение от Nexus
Проверить есть элемент на странице или нет можно так:

:-?

LADYX 13.11.2017 12:16

рони,
делаю так
$(function() {
  $(window).scroll(function() {
    var windowScroll = $(window).scrollTop();
    var element = $('.pp-sections');
if(element.length) {
    var distanceTop = element.offset().top - ($(window).height() / 2);
    var distanceHeight = element.offset().top - ($(window).height() / 2 - element.height());
    if (windowScroll > distanceTop && windowScroll < distanceHeight)
      $('#panel-pp').animate({ 'left': '0px' }, 500);
    else
      $('#panel-pp').stop(true).animate({ 'left': '-146px' }, 200);
}
  });
});

и консоль ругается, указывает на ошибку закрывающих скобок в скриптах, которые расположены ниже этого. Скажите, пожалуйста, где у меня ошибка?

Nexus 13.11.2017 12:32

LADYX, в этом участке кода синтаксических ошибок нет.

LADYX 13.11.2017 12:50

Nexus,
Цитата:

Сообщение от Nexus
LADYX, в этом участке кода синтаксических ошибок нет.

Да, вы правы. Увидел свою ошибку. Теперь всё работает как нужно.

Nexus,
рони,
огромнейшее вам спасибо за помощь и терпение! Удачи!


Часовой пояс GMT +3, время: 19:25.