Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #81 (permalink)  
Старый 17.12.2017, 19:18
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Ребят, скажите пожалуйста почему при событии onscroll аргументы функции showPage остаются неизменными?

document.addEventListener("scroll", eventScroll);

let lastScrolled = 0;
function eventScroll() {
    const scrolled = window.pageYOffset || document.documentElement.scrollTop;
	if (scrolled < lastScrolled) {
		showPage(pageIndex - 1);
	} else {
		showPage(pageIndex + 1);
	}
	lastScrolled = scrolled;
}

let pageIndex = 0;
showPage(pageIndex);

function showPage(n) {
	const pages = document.querySelectorAll('.page');
	pages[pageIndex].classList.add("active");
}
Ответить с цитированием
  #82 (permalink)  
Старый 17.12.2017, 19:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Nlk,
макет сделайте минимальный
Ответить с цитированием
  #83 (permalink)  
Старый 17.12.2017, 20:31
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

<section id="slider">
	<section class="page"></section>
	<section class="page"></section>
	<section class="page"></section>
	<section class="page"></section>
</section>

* {
	padding: 0;
	margin: 0;
	box-sizing: border-box;
}
html, body{
	min-height: 100%;
}
body {
	display: -webkit-box;
	display: -moz-box;
	display: -ms-flexbox;
	display: -webkit-flex;
	display: flex;
    flex-direction: column;
}
.page {
	-webkit-transition: opacity 1s;
	-moz-transition: opacity 1s;
	-o-transition: opacity 1s;
	transition: opacity 1s;
}
.page:nth-of-type(1) {
	background-color:red;
}
.page:nth-of-type(2) {
	background-color:green;
}
.page:nth-of-type(3) {
	background-color:yellow;
}
.page:nth-of-type(4) {
	background-color:gray;
}
.page:not(.active) {
	visibility: hidden !important;
	opacity: 0;
}


section {
	flex: 1 0 auto;
	height: 100vh;
	width: 100%;
	overflow: auto;
}

'use strict';
document.addEventListener("scroll", eventScroll);

let lastScrolled = 0;
function eventScroll() {
    const scrolled = window.pageYOffset || document.documentElement.scrollTop;
	if (scrolled < lastScrolled) {
		showPage(pageIndex - 1);
	} else {
		showPage(pageIndex + 1);
	}
	lastScrolled = scrolled;
}

let pageIndex = 0;
showPage(pageIndex);

function showPage(n) {
	const pages = document.querySelectorAll('.page');
	pages[pageIndex].classList.add("active");
}
Ответить с цитированием
  #84 (permalink)  
Старый 17.12.2017, 21:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Nlk,
scroll происходит несколько раз, pageIndex никак не изменется ...
возможно вы хотели что-то такое ...(код правильный, но скорее всего не то что вам нужно)
window.addEventListener("DOMContentLoaded", function() {
  document.addEventListener("scroll", eventScroll);
  var pages = document.querySelectorAll(".page");
  var lastScrolled = 0;
  function showPage() {
    [].forEach.call(pages, function(el, i) {
      i == pageIndex ? el.classList.add("active") : el.classList.remove("active");
    });
  }
  var pageIndex = 0;
  showPage();
  function eventScroll() {
    var scrolled = window.pageYOffset || document.documentElement.scrollTop;
    if (scrolled < lastScrolled) {
      --pageIndex;
    } else {
      ++pageIndex;
    }
    pageIndex < 0 && (pageIndex = 0);
    pageIndex > pages.length - 1 && (pageIndex = pages.length - 1);
    showPage();
    lastScrolled = scrolled;
  }
});
Ответить с цитированием
  #85 (permalink)  
Старый 19.12.2017, 10:13
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

рони,
спасибо вам за хороший пример, помогло разобраться!
Ответить с цитированием
  #86 (permalink)  
Старый 19.12.2017, 11:23
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

рони,
скажите, а скрипты которые вы даёте здесь можно использовать в своих проектах?
К примеру popup https://javascript.ru/forum/misc/553...tml#post367958

Последний раз редактировалось Nlk, 19.12.2017 в 11:24. Причина: Дополнение записи
Ответить с цитированием
  #87 (permalink)  
Старый 19.12.2017, 11:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Nlk,
да
Ответить с цитированием
  #88 (permalink)  
Старый 19.12.2017, 11:30
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Nlk,
работа с scroll
devote,
https://javascript.ru/forum/dom-wind...tml#post312682
Malleys,
http://javascript.ru/forum/showthrea...811#post439811
Ответить с цитированием
  #89 (permalink)  
Старый 20.12.2017, 14:56
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

рони,
спасибо за классный материал.
Столкнулся с трудностью не могу понять как реализован скролл на данном сайте без отображения полосы прокрутки..
https://html.nkdev.info/snow/home-9.html
Ответить с цитированием
  #90 (permalink)  
Старый 20.12.2017, 15:05
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Nlk,
https://alvarotrigo.com/fullPage/examples/apple.html
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery выборка элементов из переменной winch jQuery 4 15.04.2016 09:09
выборка элементов таблицы и цвет фона xber9 jQuery 10 07.08.2013 20:30
выборка видимых элементов ChikiSt Общие вопросы Javascript 8 01.12.2011 11:26
Выборка элементов у которых есть данные установленные через дата TicTac jQuery 2 02.05.2011 23:45
выборка элементов jetli13 jQuery 9 30.07.2010 13:53