首页 > 其他分享 >js 粘贴定位 滚动到顶部后,固定在头部

js 粘贴定位 滚动到顶部后,固定在头部

时间:2023-06-01 15:35:41浏览次数:36  
标签:滚动 100% js let topclassBox background height 粘贴

由于css的position:sticky的粘贴定位存在兼容性问题,因为决定使用js来判断盒子的位置,添加固定定位来解决,实例代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<style>
body{
  outline: 1px solid;
}
.topclass{
  width: 100%;
  background: violet;
  height: 50px;
}
.title{
  width: 100%;
  background: rgb(50, 191, 38);
  height: 30px;
}
.content{
  width: 100%;
  background: rgba(24, 104, 233, 0.225);
  height: 2000px;
}
p{
  margin: 0;
}
</style>
<body>
  <div class="g-container">
    <div class="topclass">顶部</div>
    <div class="title">选项卡1454</div>
    <div class="content">
      <p>1i</p>
      <p>2i</p>
      <p>3i</p>
      <p>4i</p>
      <p>5i</p>
      <p>6i</p>
      <p>7i</p>
      <p>8i</p>
      <p>9i</p>
      <p>10i</p>
      <p>11i</p>
      <p>12i</p>
      <p>13i</p>
      <p>14i</p>
      <p>15i</p>
      <p>16i</p>
      <p>17i</p>
      <p>18i</p>
      <p>19i</p>
      <p>20i</p>
      <p>21i</p>
      <p>22i</p>
      <p>23i</p>
      <p>24i</p>
      <p>25i</p>
      <p>26i</p>
      <p>27i</p>
      <p>28i</p>
      <p>29i</p>
      <p>30i</p>
    </div>
  </div>
  <script>
    window.addEventListener("scroll",fun)
    function fun() {
      let dom = document.querySelector(".g-container")
      let rect = dom.getBoundingClientRect()
      let topclassBox = document.querySelector(".title")
      if(rect.top<-50){
        topclassBox.style.position = "fixed"
        topclassBox.style.top = 0  
      }
      if(rect.top>=-50){
        topclassBox.style.position = "relative"
        topclassBox.style.top = 0  
      }
    }
  </script>
</body>
</html>

注意点:不能直接监听要定位的盒子,最好在它外面再加一层,判断外层的盒子!

标签:滚动,100%,js,let,topclassBox,background,height,粘贴
From: https://www.cnblogs.com/hhcome/p/17449168.html

相关文章

  • 常用的js判断简写技巧
    空值合并运算符(??)是一个逻辑运算符,当左侧的操作数为null或者undefined时,返回其右侧操作数,否则返回左侧操作数。function(obj){varb=obj??{}}//等价于=>>function(obj){varb;if(obj===null||obj===undefined){b={}}else......
  • Mysql json数组解析方法
    一、背景在表job_position需要对json数组进行解析,查找json数组对象中的数据 首先想到查找mysql的关于json的函数,这边做个记录。二、解决方案2.1 JSON_EXTRACT(json字段,'$.属性名称')需要了解函数 JSON_EXTRACT(json_doc, path[, path]...)  从json中提取数据,JSON_E......
  • 如何将word图片粘贴到动易CMS里面
    ​ 在之前在工作中遇到在富文本编辑器中粘贴图片不能展示的问题,于是各种网上扒拉,终于找到解决方案,在这里感谢一下知乎中众大神以及TheViper。通过知乎提供的思路找到粘贴的原理,通过TheViper找到粘贴图片的方法。其原理为一下步骤:监听粘贴事件;【用于插入图片】获取光标位置;【......
  • 如何将word图片粘贴到SiteFactory里面
    ​ 如何做到ueditor批量上传word图片?1、前端引用代码<!DOCTYPE html PUBLIC "-//W3C//DTDXHTML1.0Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>......
  • JS垃圾回收——和其他语言一样,JavaScript 的 GC 策略也无法避免一个问题:GC 时,停止响应
    JavaScript内存管理&垃圾回收机制标记清除js中最常用的垃圾回收方式就是标记清除。当变量进入环境时,例如,在函数中声明一个变量,就将这个而变量标记为“进入环境”。从逻辑上讲,永远不能释放进入环境的变量所占用的内存,因为只要执行流进入相应的环境,就可能会用到它们。而当变量离......
  • JS 树型结构 模糊搜索 匹配到所有的节点,包括所有的父节点
    treeData就是el-tree:data要绑定的数据 :data=treeData treeOptions.data是接口返回的原始树形结构数据//根据关键字过滤后的数据consttreeData=computed(()=>{  if(!options.searchText)returntreeOptions.data;  letmhres=filterNodeMethod(opti......
  • nodejs版playwright
        awaitthis._page.waitForLoadState('networkidle');  awaitthis._page.waitForLoadState('load')  awaitthis._page.waitForLoadState('domcontentloaded')  awaitthis._page.waitForSelector('body');await......
  • json.dumps(),json.loads(),json.dump(),json.load()方法的区别(python)
    1.json.dumps()json.dump()是将字典类型转化成字符串类型。importjsondic={'a':'1111','b':'2222','c':'3333','d':'4444'}st=json.dumps(dic)print("我是字典类型的",dic)print("我是字......
  • VirtualBox配置kali 让宿主机可以SSH远程登录虚拟机 vb真难用啊 粘贴板双向死活配置不
    补充:kali里两个虚拟机之间互相访问设置就只需要设置下桥接网络就行!kali里: sudovi/etc/network/interfacesautoeth0ifaceeth0inetdhcp  kali里下载ssh服务包apt-getinstallssh打开ssh服务1servicesshstart打开ssh服务==》开启下!2servicesshstatus查看状......
  • 原生JS输入姓名科目分数添加到表格,可删除
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metahttp-equiv="X-UA-Compatible"content="IE=edge"><metaname="viewport"content="width=d......