Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.10.2015, 15:09
Интересующийся
Отправить личное сообщение для russia091 Посмотреть профиль Найти все сообщения от russia091
 
Регистрация: 29.10.2015
Сообщений: 12

Исчезающая шапка при прокрутке страницы
Привет всем.

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

Хочу реализовать плавноисчезающую шапку по мере прокрутки страницы (примерно как в приложении Google Play для андройда), но нагуглить такой скрипт не удается.
Сам я в скриптинге не силен.
Пожалуйста помогите решить эту задачу.

У нас есть шапка div с привязанным к ней классом - "name", нужно сделать так, что бы по мере прокрутки страницы данный блок менял свою opacity ближе к нулю (аналогично по мере возвращения страницы к верху opacity меняется ближе к 1). Хотелось бы что бы данный скрипт работал в мобильных браузерах так же хорошо как и в компьютерных.

Хороший пример подобной шапочки есть тут:
https://sevenmilesmoscow.wordpress.com/

заранее спасибо всем кто поможет
Ответить с цитированием
  #2 (permalink)  
Старый 30.10.2015, 13:44
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

(function() {
	var elem = document.querySelector('.name'),
		body = document.body,
		html = document.documentElement;

	window.addEventListener('scroll', function() {
		var scrollHeight = (html.scrollHeight || body.scrollHeight) - this.innerHeight,
			scrollTop = html.scrollTop || body.scrollTop || 0;
		elem.style.opacity = 1 - 1 / scrollHeight * scrollTop;
	});
})();
Ответить с цитированием
  #3 (permalink)  
Старый 30.10.2015, 21:57
Интересующийся
Отправить личное сообщение для russia091 Посмотреть профиль Найти все сообщения от russia091
 
Регистрация: 29.10.2015
Сообщений: 12

Сообщение от Ruslan_xDD Посмотреть сообщение
(function() {
	var elem = document.querySelector('.name'),
		body = document.body,
		html = document.documentElement;

	window.addEventListener('scroll', function() {
		var scrollHeight = (html.scrollHeight || body.scrollHeight) - this.innerHeight,
			scrollTop = html.scrollTop || body.scrollTop || 0;
		elem.style.opacity = 1 - 1 / scrollHeight * scrollTop;
	});
})();
Не срабатывает.
Может я что то не правильно делаю.

Сайт в системе uCoz
Ответить с цитированием
  #4 (permalink)  
Старый 30.10.2015, 22:49
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Видимо да.

Вот, для примера: http://jsfiddle.net/jmLaepso/

Скорей всего Вы не туда скрипт ставите, ставьте перед закрывающимся тэгом body, или оберните в onload/DOMContentLoaded.
Ответить с цитированием
  #5 (permalink)  
Старый 31.10.2015, 20:15
Интересующийся
Отправить личное сообщение для russia091 Посмотреть профиль Найти все сообщения от russia091
 
Регистрация: 29.10.2015
Сообщений: 12

Сообщение от Ruslan_xDD Посмотреть сообщение
(function() {
	var elem = document.querySelector('.name'),
		body = document.body,
		html = document.documentElement;

	window.addEventListener('scroll', function() {
		var scrollHeight = (html.scrollHeight || body.scrollHeight) - this.innerHeight,
			scrollTop = html.scrollTop || body.scrollTop || 0;
		elem.style.opacity = 1 - 1 / scrollHeight * scrollTop;
	});
})();
Вижу что работает, но у меня почему то не пашет
Я его и перед концом body вставлял и в head тоже.

Что значит обернуть в onload/DOMContentLoaded ???
Ответить с цитированием
  #6 (permalink)  
Старый 31.10.2015, 20:18
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Сообщение от russia091
Что значит обернуть в onload/DOMContentLoaded ???
window.addEventListener('DOMContentLoaded', function() {
	var elem = document.querySelector('.name'),
		body = document.body,
		html = document.documentElement;

	this.addEventListener('scroll', function() {
		var scrollHeight = (html.scrollHeight || body.scrollHeight) - this.innerHeight,
			scrollTop = html.scrollTop || body.scrollTop || 0;
		elem.style.opacity = 1 - 1 / scrollHeight * scrollTop;
	});
});
Ответить с цитированием
  #7 (permalink)  
Старый 31.10.2015, 20:47
Интересующийся
Отправить личное сообщение для russia091 Посмотреть профиль Найти все сообщения от russia091
 
Регистрация: 29.10.2015
Сообщений: 12

Неее. Сейчас проверил:

Снес все со своей страницы и поставил скрипт заного... Работает.

Посмотрел хтмл и походу понял:

У меня скролл осуществляется не в <body> а в другом <div>


Т.Е. Боди неподвижна, а скроллится в Див с классом "content" по этому и не реагирует. Как то можно дописать скрипт и указать что бы он скролл брал с определенного ДИВа?
Ответить с цитированием
  #8 (permalink)  
Старый 31.10.2015, 20:55
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

window.addEventListener('DOMContentLoaded', function() {
	var elem = document.querySelector('.name'),
		content = document.querySelector('.content');

	this.addEventListener('scroll', function() {
		elem.style.opacity = 1 - 1 / (content.scrollHeight - content.clientHeight) * content.scrollTop;
	});
});
Ответить с цитированием
  #9 (permalink)  
Старый 04.11.2015, 02:15
Интересующийся
Отправить личное сообщение для russia091 Посмотреть профиль Найти все сообщения от russia091
 
Регистрация: 29.10.2015
Сообщений: 12

Один черт не срабатывает.

Почему такое может быть?
Ответить с цитированием
  #10 (permalink)  
Старый 04.11.2015, 04:17
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

russia091, извиняюсь, это я немного напутал.

window.addEventListener('DOMContentLoaded', function() {
	var elem = document.querySelector('.name'),
		content = document.querySelector('.content');

	content.addEventListener('scroll', function() {
		elem.style.opacity = 1 - 1 / (this.scrollHeight - this.clientHeight) * this.scrollTop;
	});
});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
fadeOut при прокрутке к концу страницы piraids Элементы интерфейса 2 20.06.2014 13:17
Загрузка "хвоста" страницы при прокрутке из внешних файлов. Begoian Events/DOM/Window 10 23.01.2014 19:53
Прижимание блока при прокрутке страницы byFahrenheit Общие вопросы Javascript 2 14.01.2013 14:03
Фиксация объекта при скрулинге страницы Pashok(one) Общие вопросы Javascript 10 08.01.2013 02:52
Как при прокрутке страницы оставлять элемент на месте? FRIE jQuery 1 02.08.2012 20:54