在文本显示在Scroll上之前在页面上隐藏文本的问题
Issue with hiding text on page before it appears onScroll
晚上好,我在加载时在页面上隐藏文本时遇到问题,它应该在我向下滚动页面后出现。但它是可见的,当我到达设定点时,它消失了,然后立即再次出现。当我再次滚动到顶部时,它终于消失了。当我试图用display: none;
或visibility: hidden;
隐藏它时,它甚至不会出现。我应该更改代码中的哪些内容?谢谢你的帮助!
JS:
$(window).scroll(function() {
var pxFromBottom = 350;
if ($(window).scrollTop() + $(window).height() > $(document).height() - pxFromBottom) {
$('.scroll-btn').fadeIn('slow')
} else {
$('.scroll-btn').fadeOut('slow');
}
});
CSS:
html { height:2000px; background-color: #666; }
HTML:
<div style="position:absolute; top: 120%;" class="scroll-btn"> my content to show </div>
第一次向下滚动时,当代码第一次隐藏div时,它不会先"fadein",然后"fadeout"。只是逐渐消失。解决这个问题,
添加到div样式
display:none;
这样,您就无法在scorling时看到div。
但这件事只解决了一个问题。
div放置在视口高度的120%处。因此,如果视口高度为1080px,则div的顶部将为1296px。
但在你的js代码中,你检查
if $(window).scrolltop + $(window).height > $(document).height() - pxFromBottom)
因此,当div显示时,您看不到它,因为它已经滚动了。但它仍然有渐变输入,所以当你向上滚动时,你可以在渐变输出之前看到它。
你应该把你的if雄蕊改成这样:
if (($(window).scrollTop()) > ($(window).height() - pxFromBottom))
通过这种方式,您可以检查当前滚动是否大于视口高度-pxFromBottom。一旦向下滚动,div就会消失。
Fiddle-https://fiddle.jshell.net/jgthb6m2/5/
我不确定你的问题是什么,但如果文本需要在加载时隐藏,也许可以执行以下操作:
$( document ).ready(function() {
$('.scroll-btn').hide();
});
计算的问题。当滚动顶部到达文本时,以下代码显示文本。我假设当你滚动到文本时,它应该出现,当你再次滚动到顶部时,文本应该消失。
if ($(window).scrollTop() > $('.scroll-btn').position('top')) {
$('.scroll-btn').fadeIn('slow');
console.log('fade in');
} else {
$('.scroll-btn').fadeOut('slow');
console.log('fade out');
}
相关文章:
- 在mvc应用程序中,在回发时保留最初隐藏的文本框的隐藏或可见状态
- 如何使用javascript隐藏文本
- 在显示/隐藏中单击时删除的文本
- 通过ng-if设置隐藏文本框的值
- Codemirror:将特定的基于模式的文本隐藏到编辑器中
- 使文本在它之后再次可见'It’s被一个按钮隐藏了
- 移动HTML输入文本框在提交时隐藏软键盘
- 只隐藏那些为空或没有文本的跨度
- Selenium认为文本框是隐藏的,即使我可以在浏览器中看到它
- 如何根据文本长度立即显示和隐藏字段?-JQuery
- Jquery日期选择器-我们如何将文本隐藏在日期选择器文本框中
- 使用 JS 将文本隐藏在元素中(而不是元素本身)
- 如何使一个文本隐藏另一个文本
- JQuery显示隐藏与无序列表:需要添加动态文本/隐藏功能
- 基于文本隐藏面板
- Span文本隐藏的动画DIV尽管z索引
- 为什么幻灯片面板打开时标题文本隐藏
- Javascript:切换纯文本隐藏它像密码文本点击按钮
- 当到达底部页面部分时,Jquery用锚文本隐藏Div
- Javascript,使多个文本隐藏文本输入可见