位置: 编程技术 - 正文

jquery跟随屏幕滚动效果的实现代码(jquery滚动条滚动到指定位置)

编辑:rootadmin

推荐整理分享jquery跟随屏幕滚动效果的实现代码(jquery滚动条滚动到指定位置),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:jquery设置滚动条到底部,jquery滚动事件,jquery滚动事件,jquery滚动条滚动到指定位置,jquery div滚动条,jquery滚动条滚动到指定位置,jquery跟随鼠标移动,jquery div滚动条,内容如对您有帮助,希望把文章链接给更多的朋友!

我们在很多网站看到,当我们滚动网页时,网页内的广告或某个小区域并不会消失,而是浮动在屏幕的某个地方,特别是一些局域广告。那么这是怎么实现的呢?本文将引用乌徒帮的跟随屏幕滚动代码,对此效果做详解。

一、原始代码

下面是乌徒帮的跟随屏幕滚动代码,它的作用域为乌徒帮网页两侧的边栏,以及双击屏幕后的右侧隐藏栏。

网络上有很多相关的代码,更有7行代码解决此问题的方法,甚至还有通用性的插件来实现此效果。然而它们都太过普遍化,对于不同的网站,特殊性不同,在一些细节上要做更多的考虑。

二、选择用什么方式跟随屏幕滚动

方案有三种:

1、使用position:absolute;然后对top值进行动态赋值;2、使用position:fixed;然后对top值进行动态赋值;3、对padding-top或margin-top进行动态赋值;

前两种都是用到了postion对元素的位置进行安排,和float一样,position将元素从正常的文本流中拖出来。而padding或margin的方法则是控制元素的边距来实现。到底哪一种好呢?

使用position:absolute;会出现滚动时发生抖动(火狐中不会) ,使用padding-top时会让有背景的元素看上去难看,也会发生抖动,使用position:fixed不支持IE6,使用margin-top没有尝试过,应该会发生抖动。本段代码选择的是position:fixed,唯一不发生抖动的方案,但是在IE6下不会有该效果。

三、要考虑的情况

之所以乌徒帮要将本站的代码拿出来讲解,是因为网上的代码没有具体分析,很多问题都没有考虑到。

1、要跟随的元素的高度和屏幕的高度进行比较

网上所有的代码考虑的是该区域的高度小于窗口高度的情况,因此代码很简单。当区域高度等于和大于窗口高度时,我们又会有新的考虑。

2、如果区域高度超出窗口,何时开始跟随滚动?

这要看我们想给用户展示什么,如果是一个广告,如果是一段文字,如果是一个列表。我的设计是,当屏幕往下滚动,但是还没有将要显示的元素全部显示完整时,不进行任何效果,当屏幕滚动到元素的底部临界处时,效果触发,再往下滚动时,元素的底端和屏幕的底端对齐,元素的下部一直呈现在屏幕内。当然,不同的网页,你的设计自然不同,你也可能设计为,向下滚动时先没有效果,当滚动到某一个广告之后,这个广告和屏幕顶端对齐跟随滚动。

图一 跟随屏幕滚动逻辑设计图

从图一中我们来看一下这一设计思路。图中绿色部分为要跟随滚动的区域,灰色部分为整个网页,浅灰色部分为屏幕(能看到的区域)我们通过向下移动浅灰色的屏幕来模拟往下滚动滚动条。在①的阶段为初始阶段,这个时候网页一切照初始运作,没有任何动作。到②的阶段,屏幕向下滚动到一个临界点,即要跟随滚动区域的最低端。第③阶段是滚动过临界点之后,元素开始跟随屏幕滚动,我们可以看到,元素的底端和屏幕的底端对齐,元素的顶端已经看不到。第④个阶段的屏幕滚动到底部,可以想象,网页的底部是存在一些版权信息的,元素不能跟随滚到底部把这些信息遮住,因此在红线的地方就不再跟随滚动。

这是屏幕向下滚动的示意图,当屏幕向上滚动时,这是这个顺序的逆向。但是还有另外一个考虑,当屏幕在向上滚动时实现和向下滚动初始状的一种效果,即临界点是此时④中的绿色区域顶端,向上滚动时屏幕顶端和元素顶端对齐。出于技术难度的考虑,乌徒帮没有实现这一效果。

3、数和量的计算

jquery跟随屏幕滚动效果的实现代码(jquery滚动条滚动到指定位置)

在滚动时,我们要掌握好那些量是变化的,哪些又不变,在不变中找变,在变中找不变,总之要保持头脑清晰,分清如何去计算各种高度关系。

在图一中,我用了一条蓝色竖线来辅助高度计算,用红色的线指示屏幕和元素的位置,将蓝色竖线分成了a、b、c、d、e、f六段。那么他们之间有着哪些变化数量关系呢?(我们将绿色区域的元素定义为#myDiv,将版权信息在内的底部定义为#footer)

在整个变化过程中,变化的值只有$(window).scrollTop()=$(docment).scrollTop()和$('#myDiv').offset().top,因此我们要抓住这些值之间的加减数量关系,做好逻辑判断和赋值。

4、值在什么时候获取

你可以看到,我在scroll事件之前事先获取了

正是由于他们在scroll事件发生时会发生变化,因此要提前存放在变量中。

四、特殊情况特殊考虑

在写出这么多代码之前,我曾想过写出一个可以通用的代码,然而事情并非那么简单,在乌徒帮中,三个要滚动 的区域都具有特殊性,因此必须认真考虑他们的事件逻辑和仔细赋值。

1、元素是否自由随意

由于乌徒帮双击屏幕滑向右侧时出现的区域是自由的,顶部和底部没有阻挡信息,因此我们的处理更方便一些,不用获取顶部距离的初始值和考虑滚到底部时空出一段。但是仍然要考虑下面第2点,屏幕和元素高度的比较。

而对于边侧栏的滚到,我们要考虑边侧栏顶部到文档顶部还有一段距离,底部还有版权信息。滚到的位置要通过上文获得的值,再配合css中获得的值进行精确计算。

2、判断元素的高度和屏幕高度之间的关系

当元素高度小的时候,我们的处理比较简单,只需要将元素顶端和屏幕顶端对齐,和上面第1点结合,也会出现不同的情况:如果元素顶部到文档顶部还有一段距离的话,我们还不能屏幕一滚动就开始让它和屏幕顶端对齐,而必须滚到它的顶端这个临界点的时候才可以开始。

而当元素的高度大于屏幕的高度的时候,我们要进行更复杂的判断,和第1点判断何时开始跟随滚动:只有当屏幕的底端和元素底端对齐时,元素开始跟随屏幕滚动。

但是还有一种情况,即元素的高度超出了我们想要的高度,我们可以使用overflow来对元素进行处理,这时我们通过元素的高度和页面中一些固定值的比较来处理这一环节。乌徒帮通过比较右侧元素的高度和底部的关系来进行overflow的处理:

3、自己网页内特殊情况的变化

乌徒帮由于左右还可以滚动,因此产生了一系列问题,position:fixed时左右方向上元素的距离并没有固定值,因此在进行左右滚动时,元素会遮住滚动完的屏幕,因此我又对$(document).scrollLeft()进行了判断,进行了一些处理。

另外,乌徒帮还是一个自适应的网页设计网站,在不同宽度的屏幕上显示的效果也不同,js的特点是当屏幕发生变化时仍然起作用,因此,我也增加了屏幕宽度的判断。

总结

在跟随屏幕滚动这个问题上,原始的思路是很简单的,即通过本文列举的三种方案进行位置或距离的动态改变,然而,要在具体细节上把握好,必须对动态变化中的各个数值有所把握。于此同时,结合自己的网页,对不同情况下的动态效果有一个好的设计和规划,也是实现跟随屏幕滚动的关键环节。

以上这篇jquery跟随屏幕滚动效果的实现代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

jQuery操作属性和样式详解 区分DOM属性和元素属性imgsrc="images/image.1.jpg"id="hibiscus"alt="Hibiscus"class="classA"/通常开发人员习惯将id,src,alt等叫做这个元素的"属性"。我们将其称为"元素属

即将发布的jQuery 3 有哪些新特性 jQuery的横空出世,至今已有十个年头了,而它的长盛不衰显然不是没有理由的。jQuery是继prototype之后又一个优秀的Javascript库。它是轻量级的js库,它兼

基于jQuery实现音乐播放试听列表 本文为大家分享了jQuery实现的音乐播放试听列表,可以实现播放,暂停,自动获取音频路径功能,具体内容如下1.html文件!DOCTYPEhtmlhtmlheadmetahttp-equiv="Conte

标签: jquery滚动条滚动到指定位置

本文链接地址:https://www.jiuchutong.com/biancheng/384925.html 转载请保留说明!

上一篇:两种方法解决javascript url post 特殊字符转义 + & #(两种方法解决问题三年级下册)

下一篇:jQuery操作属性和样式详解(jquery基本操作)

  • 企业收到银行汇票退回的多余款项
  • 报销宽带费属于什么科目
  • 累计纳税工资是什么意思
  • 资本公积金转增股本是利好吗
  • 丢失增值税发票最新处理办法
  • 汽车的购置税可以不交吗
  • 注销地税需要缴纳什么税费
  • 一般纳税人税率2023
  • 多交增值税怎么调整
  • 去年已支付的费用怎么查
  • 进口材料海关到港
  • 个人合伙企业有没有企业所得税
  • 出纳现金日记账表格模板
  • 小企业税金及附加会计分录
  • 合伙企业出资额不计入实收资本和资本公积 那放哪
  • 去税务局增加税目需要带什么资料
  • 生产企业出口退税流程及账务处理
  • 会计人员必备的知识和技能
  • 企业所得税怎么做
  • 清包工程增值税税率
  • 增值税开票系统收款人在哪里设置
  • 6月实施的新政有哪些?
  • 没有发票的房租调增金额怎算
  • 企业收到票据时应以什么入账
  • 研发费用的
  • 用友t3怎么增加现金流量项目
  • 金蝶怎么打开以前的年度账
  • 研发费用归集会计分录
  • 让别公司开发票,不打款公账,可以不
  • git pull远程
  • 应交增值税视频讲解
  • 向银行借入长期借款50万元
  • 承接旅游业务
  • React hooks中 useState踩坑-=--异步问题
  • 电子承兑可以提前贴现吗
  • 库存商品的分类有哪些
  • 个体户生产经营所得减免政策
  • 报销差旅费退回现金会计分录
  • 图像风格迁移网站
  • axios是干嘛的
  • thinkphpgui
  • 事业结余对应政府会计哪个科目
  • 增值税发票抵扣期限是多久
  • 计提工会经费的工资总额包括哪些
  • sql server 2008打开界面
  • 综合所得算税公式
  • 购买性支出和转移性支出的区别
  • 销售补偿法
  • 个体工商户所得税率
  • 支付临时工人的报酬属于工资薪金概算吗
  • 发票联遗失的证明怎么开
  • 法人私户转公户备注什么
  • 现金收款的程序是什么
  • 住房公积金的账号怎样可以查询得到
  • 金税盘销项税额怎么导出来
  • 航天开票系统怎么导出已开票明细
  • 初次建账应准备哪几种会计本
  • win7小技巧
  • 电脑安装win8
  • centos sudoers
  • ubuntu系统安装谷歌浏览器
  • 如何延迟windows更新
  • 如何解决win7系统卡顿
  • 解决出现的问题下一句,欢迎的语气
  • 微信小程序实现留言功能
  • 音频焦点是什么
  • python中matplotlib绘制曲线
  • shell脚本入门详解
  • 安卓解析工具
  • python中的set方法
  • jquery datatable排序
  • 国税干部任前谈心谈话
  • 供热企业税收优惠政策执行情况
  • 为什么非贸易付不了款呢
  • 怎么删除天眼查信息
  • 餐饮发票怎么看真假
  • 全国税收总收入完成59260.61
  • 请领导审核怎么说
  • 企业税务人员岗位竞聘报告怎么写
  • 当月专票作废流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设