Intereting Posts
используйте как html, так и php в линии эха и href Как поддерживать фиксированный угол при изменении размера элемента DIV после поворота CSS – Элементы списка отступа css background url не работает в express Очистка HTML путем удаления лишних / избыточных тегов форматирования Почему позиция абсолютная делает страницу переполнением? Как вертикально выравнивать текст с помощью шрифта значка? Как нарисовать три треугольника на одной странице с помощью canvasа? BeautifulSoup дает мне unicode + html символы, а не прямо вверх юникод. Это ошибка или непонимание? Чтобы щелкнуть дважды, чтобы открыть ссылки сайта на мобильных устройствах Попытка получить электронную почту для краха в ответных точках столбца с использованием Zurb Foundation Подгонка содержимого (100%) в зависимости от количества элементов в строке Кнопки радиовыхода Горизонтальное выравнивание Удаление новой строки после тегов ? Скремблирование веб-страницы, созданной javascript с помощью C #

Как сделать текст отображаемым в прокрутке в html

Здравствуйте, я хочу, чтобы определенный текст появлялся, когда я прокручиваю его или когда я прокручиваю его до точки, где находится текст. Эффект при появлении должен быть несколько похож на первый эффект в верхней части веб-сайта http://namanyayg.com/ .

Я хочу получить эффект в минимальном коде с чистым CSS и JS, т. Е. Без jQuery.

Я думал, что, возможно, я бы использовал что-то вроде display:none для диапазона, а затем, когда вы прокручиваете его, display становится block но я не знаю, как вызвать эффект с помощью javascript. Любая помощь будет оценена по достоинству.

Сначала оберните любой текст или контент, который вы хотите показать в прокрутке, в одном div, чтобы вы могли скрывать div в зависимости от прокрутки. Напишите два classа для вашего целевого div.

Ваш CSS:

 /*Use this class when you want your content to be hidden*/ .BeforeScroll { height: 100px; /*Whatever you want*/ width: 100%; /*Whatever you want*/ . . display: none; } /*Use this class when you want your content to be shown after some scroll*/ .AfterScroll { height: 100px; /*Whatever you want*/ width: 100%; /*Whatever you want*/ . . display: block; } 

Ваш HTML:

  
Content you want to show hide on scroll

Ваш скрипт:

    

Надеюсь, что это решит вашу проблему.

Я бы порекомендовал этот плагин

http://johnpolacek.github.io/superscrollorama/

Редактировать:

Я не знаю, как никто не заметил, что решение нужно было сделать без использования внешних библиотек, таких как jQuery. Тем не менее, решение очень просто с базовыми функциями. Найдите его здесь

HTML:

 
Psst .. I am here!!

CSS:

 #parent-div { position:relative; height:3000px; width:300px; background-color:red; } #child-div { color:white; position:relative; top:1000px; width:300px; display:none; text-align:center; } 

JS:

 var body=document.getElementsByTagName("body")[0]; var parent=document.getElementById("parent-div"); var child=document.getElementById("child-div"); body.onscroll = function(){ //console.log(documenhttps://fiddle.jshell.net/3urv0tp0/#tidyt.getElementById("child-div").style.top) if(document.documentElement.scrollTop>=child.offsetTop)//Adjust Tolerance as you want { child.style.display="block" } }; 

Мне это нравится:

 var doc = document, dE = doc.documentElement, bod = doc.body; function E(e){ return doc.getElementById(e); } function xy(e, d){ if(!d)d = 'Top'; d = 'offset'+d; var r = e[d]; while(e.offsetParent){ e = e.offsetParent; r += e[d]; } return r; } function x(e){ return xy(e, 'Left'); } function y(e){ return xy(e); } var txt = E('theId'), txtS = txt.style; onscroll = function(){ var left = dE.scrollLeft || bod.scrollLeft || 0; var top = dE.scrollTop || bod.scrollTop || 0; var w = innerWidth || dE.clientWidth || bod.clientWidth; var h = innerHeight || dE.clientHeight || bod.clientHeight; if(top > y(txt)-h){ txtS.display = 'none'; } else{ txtS.display = 'block'; } } в var doc = document, dE = doc.documentElement, bod = doc.body; function E(e){ return doc.getElementById(e); } function xy(e, d){ if(!d)d = 'Top'; d = 'offset'+d; var r = e[d]; while(e.offsetParent){ e = e.offsetParent; r += e[d]; } return r; } function x(e){ return xy(e, 'Left'); } function y(e){ return xy(e); } var txt = E('theId'), txtS = txt.style; onscroll = function(){ var left = dE.scrollLeft || bod.scrollLeft || 0; var top = dE.scrollTop || bod.scrollTop || 0; var w = innerWidth || dE.clientWidth || bod.clientWidth; var h = innerHeight || dE.clientHeight || bod.clientHeight; if(top > y(txt)-h){ txtS.display = 'none'; } else{ txtS.display = 'block'; } } 

На всякий случай я оставил левый материал, но вы, вероятно, можете его удалить.

 var div=$("#divtochange"); $(window).scroll(function () { var windowpos = $(window).scrollTop(); //---check the console to acurately see what the positions you need--- console.log(windowpos); //--------------------- //Enter the band you want the div to be displayed if ((windowpos >= 0) && (windowpos < = 114)){ div.addClass("AfterScroll"); } else{ div.removeClass("AfterScroll"); }