Задать вопрос
@viktorross

Почему скрипт прокрутки блокирует другие js?

здравствуйте, подскажите пожалуйста, у меня есть скрипт сайдбара, прокручивает рекламу или другой какой-то блок сбоку, автоматически определяет высоту верха и низа, скрипт отличный и в большинстве случаев никаких проблем нет, однако заметил что внутри <aside id="aside1"></aside>

не работают другие скрипты, точнее работают до первой прокрутки, только начинаешь двигать страницу вниз и все, при этом в консоле нет ошибок вообще, кто понимает в этом подскажите пожалуйста проблему, очень нужно чтобы это работало

вот скрипт

<script>
(function(){
var a = document.querySelector('#aside1'), b = null, P = 0;
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[i].indexOf('width') == 0) {
		s += Sa[i] + ': ' +Sa.getPropertyValue(Sa[i]) + '; '
	}
}
a.innerHTML = '<div style="'+s+'">'+a.innerHTML+'</div>';
b = a.children[0];
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 + 0);
if ((Ra.top - P) <= 0) {
if ((Ra.top - P) <= R) {
	b.className = 'stop';
	b.style.top = - R +'px';
} else {
	b.className = 'sticky';
	b.style.top = P + 'px';
}
} else {
b.className = 'dddskfnjs';
b.style.top = '';
}
}
})()
</script>


html

<aside id="aside1">
и например кнопка со скриптом

<a href="javascript:;" id="show_{$phone.caption}">


</aside>
<script>
$("a.show_phone").click(function(event){

	var field = jQuery(this).attr("id").substr(5);

	$.ajax({
		type		: "GET",
		cache		: false,
		url		: "{/literal}{$live_site}/include/get_phone.php?aid={$listing.id}&{if $listing.user_id}id={$listing.user_id}{/if}&field={literal}"+field,
		data		: $(this).serializeArray(),
		success: function(data) {

				$("#span_"+field).html(data);
				$("#show_low_Kd").hide();
				$("#show_low_Kd_whatsapp").hide();
				//$("#show_"+field).show();

			} // end data
		});// end ajax

});
</script>


css

.sticky {position: fixed;z-index: 101;top:60px!important;}
.stop {position: relative;z-index: 101;}

опять же ладно эта кнопка, но допустим половина медийной рекламы яндекса блокируется, некоторые мой блоки с js тоже
  • Вопрос задан
  • 267 просмотров
Подписаться 2 Простой Комментировать
Решения вопроса 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Такое ощущение, что всё портит строчка
a.innerHTML = '<div style="'+s+'">'+a.innerHTML+'</div>';
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы