Блок под тизеры

by noname5

HTML

<!DOCTYPE html>
<html lang="ru">

<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>



<main>
  <p>Разнообразный и&nbsp;богатый опыт начало повседневной работы по&nbsp;формированию позиции требуют от&nbsp;нас анализа дальнейших направлений развития. Таким образом постоянный количественный рост и&nbsp;сфера нашей активности в&nbsp;значительной степени обуславливает создание соответствующий условий активизации.</p>
  <p>Разнообразный и&nbsp;богатый опыт начало повседневной работы по&nbsp;формированию позиции требуют от&nbsp;нас анализа дальнейших направлений развития. Таким образом постоянный количественный рост и&nbsp;сфера нашей активности в&nbsp;значительной степени обуславливает создание соответствующий условий активизации.</p>
</main>
		<aside class="tz" role="complementary">
			<div class="post01" >
				<iframe class="pw" width="100%" height="310" frameborder="0" scrolling="no"></iframe>
			</div>
			<div class="post02" >
				<iframe class="pw" width="100%" height="310" frameborder="0" scrolling="no"></iframe>
			</div>
			<div class="post03">
 		    	<iframe class="pw" width="100%" height="310" frameborder="0" scrolling="no"></iframe>
  		    </div>
			<div class="post04">
 		      	<iframe class="pw" width="100%" height="310" frameborder="0" scrolling="no"></iframe>
  	        </div>
			<div class="post05">
				<iframe class="pw" width="100%" height="310" frameborder="0" scrolling="no"></iframe>
			</div>
			<div class="post06">
 		      	<iframe class="pw" width="100%" height="310" frameborder="0" scrolling="no"></iframe>
  	        </div>
			
		</aside>

</div>
</body>
</html>

CSS

main {
max-width: 930px;
margin: auto;
}
  .post01 {grid-area: post01;}
	.post02 {grid-area: post02;}
	.post03 {grid-area: post03;}
	.post04 {grid-area: post04;}
	.post05 {grid-area: post05;}
	.post06 {grid-area: post06;}
  
  .tz {
  margin: auto;
  display: grid;
  grid-gap: 10px;;
  }
  
@media (min-width:930px) {
  .tz {
  max-width: 920px;
  grid-template-columns: 300px 300px 300px;
  grid-template-areas: "post01 post02 post03"
  "post04 post05 post06";}
}

@media (min-width:610px) and  (max-width:930px) {
  .tz {
  max-width: 610px;
  grid-template-columns: 300px 300px;
  grid-template-areas: "post01 post02"
  "post03 post04"
  "post05 post06";}
  }
  
  @media (max-width:610px) {
  .tz {
  max-width: 300px;
  grid-template-columns: 300px;
  grid-template-areas: "post01" 
  "post02"
  "post03"
  "post04"
  "post05"
  "post06";}
  }

JavaScript

const pws = document.querySelectorAll('.pw');
	  const config = {threshold: 0};
	const observer = new IntersectionObserver(entries => {
	  entries.forEach(entry => {
		if (entry.isIntersecting) {
		  // тут выполняется логика, когда элемент впервые попал в область видимости
		  let el = entry.target; // .pw
		  observer.unobserve(el); // т.к. нужно что-то делать один раз - перестаём следить
      el.src = "domain.com/click.php?key=smart-rotator"; //Подгружаем тизер
      // вместо domain.com - домен тизерного трекера
		}
	  });
	}, config // settings
	);

	pws.forEach(pw => observer.observe(pw))