Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >基于多事件的jQuery滚动功能

基于多事件的jQuery滚动功能
EN

Stack Overflow用户
提问于 2018-08-21 10:07:17
回答 1查看 34关注 0票数 0

假设我有一些div,其结构如下

代码语言:javascript
运行
AI代码解释
复制
<main>
   <header id="foo"></header>
   <article id="bar"></bar>
   <div id="someDiv"></div>
   <div id="stickyDiv"></div>
   <footer id="bikiniBottom"></footer>

stickyDiv是位于页面底部的元素。只有当用户使用javascript向下滚动页面时,它才会出现,当用户滚动到顶部时,它会消失

代码语言:javascript
运行
AI代码解释
复制
var prevScrollpos = window.pageYOffset;
        window.onscroll = function() {
        var currentScrollPos = window.pageYOffset;
        if (prevScrollpos < currentScrollPos) {
            document.getElementById("stickyDiv").style.bottom = "0";
        } else {
            document.getElementById("stickyDiv").style.bottom = "-80px";
        }
        prevScrollpos = currentScrollPos;
        }

在这种情况下,我想问一下如何使前面的脚本只在到达bar元素时才起作用,然后在到达页脚之前再次消失

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-08-21 10:41:12

这取决于你所说的到达bar元素是什么意思。我假设你的意思是,当bar到达顶部时,显示页脚并隐藏页脚,然后bar就会消失。我已经包括了一个范围,因为有时滚动位置可能会错过,如果用户滚动快。请根据您的需要随意调整

你可以这样做,

代码语言:javascript
运行
AI代码解释
复制
var $el = $('#bar');
var top = $el.position().top;
var bottom = top + $el.height();
if(Math.abs(top - $(window).scrollTop()) < 5) {    
   console.log('Bar is at the top');
   document.getElementById("stickyDiv").style.bottom = "0";
} 

if(Math.abs(bottom - $(window).scrollTop()) < 5) {
   console.log('Bar went out of view');
  document.getElementById("stickyDiv").style.bottom = "-80px";
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51946301

复制
相关文章
jquery 页面滚动事件 scroll()
在没有任何元素的情况下,document的宽高是与window的宽高一致的,那么如果给document加入一些元素呢?
Devops海洋的渔夫
2019/06/02
10.2K0
jQuery 事件对象、 jQuery 拷贝对象、jQuery 多库共存
​ jQuery 对DOM中的事件对象 event 进行了封装,兼容性更好,获取更方便,使用变化不大。事件被触发,就会有事件对象的产生。
梨涡浅笑
2020/10/27
2K0
基于jQuery的公告无限循环滚动实现代码
基于jQuery的公告无限循环滚动实现代码,效果如下,多用于pc端电商网站之中不断的循环更新的公告消息。
王小婷
2018/12/21
3.7K0
jQuery 事件对象,拷贝对象,多库共存
jQuery 对DOM中的事件对象 event 进行了封装,兼容性更好,获取更方便,使用变化不大。事件被触发,就会有事件对象的产生。
星辰_大海
2020/10/09
4210
jQuery 事件对象,拷贝对象,多库共存
页面滚动事件
HTML DOM事件大全:https://www.runoob.com/jsref/dom-obj-event.html
阿超
2022/08/17
1.9K0
jQuery事件
1. 常用事件 click() 鼠标单击 blur() 元素失去焦点 focus() 元素获得焦点 mouseover() 鼠标进入(进入子元素也触发) mouseout() 鼠标离开(离开子元素也触发) ready() DOM加载完成 示例代码: <script> $(function(){ var $li = $('.list li'); var $button = $('#button1') var $text = $("#text1");
落雨
2022/03/01
31.8K0
jquery事件
parent > child在给定的父元素下匹配所有的子元素 参数 parentSelectorV1.0 任何有效选择器 childSelectorV1.0 用以匹配元素的选择器,并且它是第一个选择器的子元素 示例 描述: 匹配表单中所有的子级input元素。 HTML 代码: <form> <label>Name:</label> <input name="name" /> <fieldset> <label>Newsletter:</label> <input nam
wangxl
2018/03/07
1.9K0
JQuery事件
       focus()                 ------获得焦点事件
用户3159471
2018/09/13
2.1K0
jQuery 事件
什么是事件 页面对不同访问者的响应叫做事件。 事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。 常见 DOM 事件: 鼠标事件 键盘事件 表单事件 文档/窗口事件 click keypr
静默虚空
2018/01/05
2.9K0
jQuery 事件
在事件中经常使用术语"触发"(或"激发")例如: "当您按下按键时触发 keypress 事件"。
陈不成i
2021/07/22
2.3K0
jQuery的事件模型
前几天自己着重读了jQuery1.11.1的源码,又结合了之前对DE事件模型的分析,最后也实现一个简陋的事件模型。 jQuery的事件系统离不开jQuery的缓存系统。 jQuery的第一代缓存是直接将数据存储在 缓存体 这个数据结构中,但是需要在元素上添加一个uuid来作为标示, 标记在缓存体中的位置。但是仔细想想,就会发现,如果对window或者document进行事件侦听,就会在这两个 对象上添加额外属性,会造成全局污染,不是很好。 所以jQuery第二代缓存系统应运而生,这次不对元素进行添加属性,而
欲休
2018/03/15
9690
jquery的事件&动画
在1.7之前的版本中jQuery处理事件有多个方法, (google 搜索: jquery live bind degelate)作用各不相同,后来统一的使用on/off方法
bamboo
2019/01/29
1.8K0
jquery的事件&动画
jQuery:详解jQuery中的事件(一)
之前用过一些jQuery的动画和特效,但是用到的部分也不超过10%的样子,感觉好浪费啊——当然浪费的不是jQuery,而是Web资源。后来就想深入研究下jQuery的内部机理,读过两遍jQuery源代码,但是自觉还差的好远,跟好多大神(比如阮一峰)的理解还是有很大差距。现在就一点一点积累自己的知识体系,记录自己学到的和自己所理解的jQuery。
王金龙
2019/02/25
1.7K0
jQuery:详解jQuery中的事件(二)
  上一篇讲到jQuery中的事件,深入学习了加载DOM和事件绑定的相关知识,这篇主要深入讨论jQuery事件中的合成事件、事件冒泡和事件移除等内容。
王金龙
2019/02/25
2.2K0
liMarquee – jQuery无缝滚动插件
liMarquee 是一款基于 jQuery 的无缝滚动插件,类似于 HTML 的 marquee 标签,但比 marquee 更强大。它可以应用于任何 Web 元素,包括文字、图像、表格、表单等元素,同时它可以设置不同的滚动方向(左右上下)、滚动速度、鼠标悬停暂停、鼠标拖动、加载 xml 文件等等。
kirin
2021/01/29
8.9K0
jQuery scroll(滚动)延迟加载
延迟加载 $(window).scroll(function(){ var scrollHeight = $(document).height(); //文档高度 var scrollTop = $(this).scrollTop(); //滚动条卷去高度 var windowHeight = $(this).height(); // 窗口高度 // console.log(scrollHeight, scrollTop, windowHeight) if(scrol
deepcc
2018/05/16
9.1K0
jquery横向滚动条
此代码献给wendy 由于工作太忙,下次再整理成插件调用,先记录下来,欢迎同学们提意见。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" conten
deepcc
2018/05/16
7.1K0
jQuery实现消息滚动播放的效果
场景需求: 在大屏幕上,消息会进行一个实时滚动播报的效果,将现有的内容进行一个来回滚动的播放~~
王小婷
2021/04/04
4.9K0
jQuery 事件注册、事件处理
其他事件和原生基本一致。 比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll 等
梨涡浅笑
2020/10/27
3.9K0
jquery鼠标事件
click()   为点击事件绑定一个事件处理函数,或者触发元素点击事件。   .click( handler(eventObject) )     handler(eventObject)       每次事件触发时候执行的函数。   .click([eventData],handler(eventObject))     eventData       一个对象,它包含的数据键值对应映射将被传递给事件处理程序。   handler(e
用户1197315
2018/01/19
4.6K0

相似问题

多滚动事件jQuery

11

基于滚动鼠标位置的功能

20

jQuery滚动事件

31

jQuery -滚动事件

20

滚动事件的jquery

32
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文