tnblog
首页
视频
资源
登录

vue3 实现div滚动到一定位置就固定他,实现一侧滚动到某个位置就固定,实现滚动条滚动到一边的最底部就固定

693人阅读 2024/12/9 11:32 总访问:824569 评论:0 收藏:0 手机
分类: 前端


在vue2以及普通页面里边使用参考:https://www.tnblog.net/aojiancc2/article/details/1273

本来在vue中最好不要去用jquery的,可以直接去监听滚动条的事件来实现的,这会比较忙就直接用一下jquery了。

  1. <script setup lang="ts" name="labroomindex">
  2. import { reactive, onMounted, nextTick, toRefs, ref } from 'vue'
  3. import $ from 'jquery'
  4. onMounted(() => {
  5. // 固定右边这块位置
  6. fixedRight()
  7. })
  8. const fixedRight = () => {
  9. $(window).scroll(function () {
  10. // 获取滚动条的高度
  11. var scrollTop = $(window).scrollTop()
  12. // 获取一个屏幕的高度
  13. var windowHeight = findHeight()
  14. // console.log('div本身的高度:' + $('#rightdiv').height())
  15. // console.log('距离顶部的的位置' + scrollTop)
  16. /*
  17. 有时候某些临界值可能会存在没有机会变回来了,应该还要设置一个一定能变回来的点,
  18. 可以判断是否已经滚动到顶部了,如果已经滚动到顶部了肯定要变回的撒。
  19. 这里写成scrollTop===0也可以,之所以写成scrollTop<10只是为了加一点判断范围而已,这个可以自己控制。
  20. 还要注意一点这个判断要放到是否滚动到底部那个判断前面去,因为之所以写这个判断就是怕下面那个判断滚动条
  21. 是否在底的在某些情况下恒成立了,这样固定的那一块就变不回去了,所以要在那个判断前面先判断,这样优先级就
  22. 会更高一点。
  23. */
  24. if (scrollTop < 10) {
  25. // alert("滚动到顶部了")
  26. $('#rightdiv').css('position', 'static') // 恢复div可以跟随滚动条滚动
  27. }
  28. // 当滚动条滚动到一边的最底部,把需要的div滚动到底部就固定div不让移动了
  29. else if (scrollTop > $('#rightdiv').height() - windowHeight) {
  30. $('#rightdiv').css('position', 'fixed') // 固定div让其不随着滚动条的滚动而滚动
  31. // 这里根据情况设置固定的位置,一般都是设置距离底部一点间距就行了,但是有些时候需要固定的这块内容并不多,占不满一个屏幕,设置距离顶部一点间距也行,比如我这里
  32. $('#rightdiv').css('top', '10px')
  33. // $('#rightdiv').css('bottom', '10px')
  34. // 右边宽度默认是250就设置一个,不然设置为fiexd后会影响宽度,这里根据实际情况来调整吧,因为我这里右边这块的宽度是固定的所以直接给一个宽度就行了,很方便
  35. $('#rightdiv').css('width', '250px')
  36. } else {
  37. $('#rightdiv').css('position', 'static') // 恢复div可以跟随滚动条滚动
  38. }
  39. })
  40. }
  41. const findHeight = () => {
  42. var winHeight = 0
  43. // 获取窗口高度
  44. if (window.innerHeight) {
  45. winHeight = window.innerHeight
  46. } else if (document.body && document.body.clientHeight) {
  47. winHeight = document.body.clientHeight
  48. }
  49. return winHeight
  50. }
  51. </script>

欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739。有需要软件开发,或者学习软件技术的朋友可以和我联系~(Q:815170684)

评价

vue3vue组件props给一个对象参数。vue组件间传参数vue父组件给子组件传参数。组件参数类型。父组件调用子组件的方法。vue组件事件监听给子组件传递方法子组件调用父组件方法

[TOC]组件可以使用props给组件传值,可以同时传递多个,可以是任意类型,比如字符串或者对象。 下面是个简单的例子: &lt...

vue3最基础的数据加载表格table

vue3表格加载一点静态数据 &lt;template&gt; &lt;el-table :data=&quot;tableData&quot; style=&quot;width: 100%&quot...

vue3 Element Plus 表单输入框放到一行

当垂直方向空间受限且表单较简单时,可以在一行内放置表单。 通过设置 inline 属性为 true 可以让表单域变为行内的表单域...

vue3 Element ui Plus 表格 分页vue3 el-pagination分页

其实就是el-pagination控件的使用而已 &lt;template&gt; &lt;div&gt; &lt;el-table :data=&quot;tableData&quot; ...

vue触发a标签的点击事件。vue3 dom操作 触发点击事件 。文件选择库只会触发一次change事件的问题

[TOC]vue触发a标签的点击事件直接操作dom节点的方式比较简单 &lt;button @click=&quot;handleBtnClick&quot;&gt;点击按钮&...

vue3 ref的使用多个ref的使用。通过ref触发点击事件

多个ref获取的方法可以使用一样的,通过变量名来区分就行了 const vabUploadRef = ref() const multipleTableRef = ref() ...

vue elementuivue3 element plus 文件上传的时候设置其他参数。后台.net接收传递的额外参数。图片上传

比如上传文件的时候额外传递两个select选择的值 前台前面上传文件的时候要提供默认参数很简单,el-upload绑定一个data即可...

vuevue3 打开新页面页面跳转。vue跳转到一个新页面。vue路由传参vue3路由传参vue3 获取路由参数

[TOC]VUE页面跳转本地页面跳转 goApplicationCenter() { //进行页面跳转 let path = &quot;/application-center&quo...

vuevue3组件封装vue组件模板。简单组件模板。基础组件模板。vue引入自定义的组件。vue使用自定义的组件。插槽slot使用。vue封装格子效果一块一块的grid布局效果

[TOC]vue封装组件的简单模板贴一个简单模板方便自定义组件的时候直接复制 &lt;template&gt; &lt;div class=&quot;app...

.net6 Signalr+vue3 的运用(上)

.net6 Signalr+Vue3 的运用(上)[TOC] 什么是 SignalR?ASP.NET Core SignalR 是一个开放源代码库,可用于简化向应用添加...

.net6 Signalr+vue3 的运用(下)

.net6 Signalr+Vue3 的运用(下)[TOC] 上篇链接:https://www.tnblog.net/hb/article/details/7961SignalR 中的用户 Sig...

.net6 Signalr+vue3 配合Ingress Nginx的运用

.net6 Signalr+Vue3 配合Ingress Nginx的运用[TOC] 结合上篇:https://www.tnblog.net/hb/article/details/7963 项目打...

vue3 Element Plus 表格使用vue3常用界面搭配。vue3基础模板使用

一个简单的表格加时间搜索界面效果如下: 代码如下: &lt;template&gt; &lt;div class=&quot;app-container&quot;&g...

vue3 如何加prototype。vue3使用globalProperties

在2.X版本中创建一个vue 实例是通过 new Vue()来实现的,到了3.X中则是通过使用createApp这个 API返回一个应用实例,并且可...
这一生多幸运赶上过你.
排名
8
文章
221
粉丝
7
评论
7
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术