基于滚动位置的 div 位置

2023-12-27

我希望我的徽标根据网站上的滚动位置垂直上下滚动。

就像默认滚动条指示您在网站上的位置一样,我希望我的徽标也能这样做。当您位于网站页面的顶部时,徽标位于顶部,而当您位于底部时,徽标将位于页面底部的垂直栏中,位于网页左侧。

我不知道如何解决这个问题,我看过一些插件,但没有一个提供基于内容的定位,而且我找不到我正在寻找的任何其他 Stack Overflow 结果,尽管我可能没有措辞问题正确。

我的设置是

.logo-scroll {
    position: fixed;
    border: 2px solid white;
    top: 30px;
    left: 30px;
    height: calc(100vh - 60px);
    width: 75px;
}  

.scroll-text {
    height: auto;
} 

.logo-scroll .scroll-text img {
    padding: 0 6px 0 17px;
}

和我的html

<div class="logo-scroll">

    <div class="scroll-text">
        <a href="/home">
            <img src="logo.svg"/>
        </a>
    </div>

</div>

任何帮助将不胜感激

** 编辑 - 让事情变得复杂的是,我有一个 30 像素的边框,该边框不包含在页面高度中。所以顶部和底部偏移 30px。

在我隐藏它之前,边距/边框的大小需要在断点处响应地改变 - 1 也许 2。本质上,滚动条的高度始终需要与减去边距的页面高度或 :before 元素的高度相匹配。

或者,如果我可以设置偏移量,我可以重用 JS 并根据屏幕尺寸进行调整。喜欢 JS 的媒体查询吗?

您可以在这里看到该网页 - 该网页仍在建设中https://www.sheree-new.shereewalker.com/ https://www.sheree-new.shereewalker.com/


你可以尝试一下这样的事情。

window.addEventListener('scroll', e => {
  const logo = document.querySelector('.scroll-text');
  const logoHeight = logo.clientHeight;
  const viewHeight = window.innerHeight;
  const maxLogoOffset = viewHeight - logoHeight;
  const scrollFraction = getElementScrollFraction(document.querySelector('body'));
  logo.style.top = maxLogoOffset*scrollFraction;
});

function getElementScrollFraction(elem){
  return elem.scrollTop / (elem.scrollHeight - elem.clientHeight);
}

您还需要添加position:fixed; to the .scroll-text css.

这是一个工作示例:https://jsbin.com/yuholihece/edit?html,css,js,控制台,输出 https://jsbin.com/yuholihece/edit?html,css,js,console,output

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于滚动位置的 div 位置 的相关文章

随机推荐

  • 为什么 iwlist 扫描几乎每次都会返回缓存结果?

    我有一个运行 linux 内核 2 6 32 的机顶盒 无法升级 请不要建议这样做 我正在使用配置为使用 WEXT 驱动程序的 Realtek 8192CU 驱动程序 什么会导致 iwlist 扫描不断返回缓存结果 看起来 当 STB 启动
  • 使用 WIA、C# 和 Win 7 进行相机捕捉

    我尝试在 Windows 7 上使用 WIA 2 0 C net 4 0 从网络摄像头拍照 我尝试了许多不同的示例 但没有任何效果 我总是收到此异常 ComException was unhandled 来自 HRESULT 的异常 0x8
  • 将函数应用于带有两个参数的 pandas 数据框中的列

    假设我有一定的映射 mapping cat purrfect dog too much work fish meh and a dataframe animal name description 0 cat sparkles NaN 1 d
  • npm 测试没问题,但它也引发了 AskBackend ReferenceError 中未捕获的错误:localStorage 未定义

    我现在开始在 Reactjs 应用程序中测试我的减速器 我用localStorage utils js export const getAuthToken gt return localStorage getItem authToken e
  • WPF 中使用样式的透明按钮背景

    我发现了有关将按钮边框设置为透明的主题 这工作正常 但我想将其用于按钮背景而不是边框 我放入的链接中的解决方案
  • 为 GUID 值专门化模板

    这是后续为什么常量 POD 对象中的字段本身不是常量 https stackoverflow com questions 15392553 why arent fields from constant pod object constant
  • g++ 不生成任何文件或给出任何输出

    我刚刚开始使用 g 从网站下载了最新版本 并且制作了一个简单的 HelloWorld 程序 include
  • 如何合并两个sql查询?

    我有一个库存表 我想创建一个报告来显示订购商品的频率 库存 表 item id pcs operation apples 100 order oranges 50 order apples 100 delivery pears 100 or
  • Haskell中的floor和truncate有区别吗

    两者之间的功能是否存在差异floor and truncate在哈斯克尔 它们似乎执行相同的功能并且具有相同的类型签名 truncate Integral b RealFrac a gt a gt b floor Integral b Re
  • vuetify v-data-table 样式

    默认情况下 在 v data table 的每个非最后子行之间打印一行 我想修改 css 来更改该行 例如去掉它 最初 在开发人员控制台中 有关 border bottom 的 css 如下所示 theme light v table tb
  • 如何更改wpf TabControl中TabItem的顺序

    我需要更改 TabItem 的顺序 我尝试过删除 插入 但不起作用 void UserControl Loaded object sender RoutedEventArgs e if condition TabControl Items
  • mmap 是否与所有进程共享内存?

    当我这样做时 myProgram h myProgram c struct PipeShm all my fields more struct PipeShm myPipe initialization for all fields str
  • 检测何时创建新的托管线程

    有谁知道是否可以检测在托管环境中何时创建新线程 我想要一个应用程序中所有线程的列表 每个线程的 ID 和名称 我在 Visual Studio 中使用并发可视化工具 它仅显示线程 ID 而不是线程名称 如果您有 20 多个没有名称的线程 则
  • Auth::validate 返回 false Laravel 8

    好吧 我正在尝试使用 Auth validate credenciais 通过 Laravel 进行身份验证它不起作用 public function LoginData Request request request gt validat
  • :force => true 在模式文件中意味着什么

    如果你查看 db schema rb 你会看到类似的内容 create table users force gt true do t 什么是 force gt true mean 来自Rails 文档 http api rubyonrail
  • 计算用箭头和鼠标移动的对象

    我正在使用 openGL 做一个 Maya 模拟器应用程序 一切进展顺利 只有一个麻烦 我无法计算出通过鼠标移动物体的 100 准确度 我使用 3D 坐标中的箭头和屏幕坐标中的箭头的缩放 并将其乘以一些缩放来计算屏幕坐标的 x 和 y 方向
  • TensorFlow 嵌入查找

    我正在尝试学习如何使用 TensorFlow 构建用于语音识别的 RNN 首先 我想尝试 TensorFlow 页面上提供的一些示例模型TF RNN https www tensorflow org versions master tuto
  • 如何为 Chrome 上的每个选项卡获取不同的徽章值?

    我正在尝试做像 adblock 那样的事情 Adblock 计算 广告 的数量并更新徽章值 目前 我尝试对 背景页面 执行某些操作 但它们仅运行一次 并且所有选项卡的徽章值都相同 我无法使用浏览器操作 popup html 因为它仅在单击后
  • 在与其他线串的交叉点处匀称分割线串

    我有一组与其他 LineString 相交的 LineString 我想在这些交叉点将 LineString 分割成单独的线段 我有一个解决方案 但我认为这不是最好的方法 假设我们正在处理一个 LineString gt gt gt imp
  • 基于滚动位置的 div 位置

    我希望我的徽标根据网站上的滚动位置垂直上下滚动 就像默认滚动条指示您在网站上的位置一样 我希望我的徽标也能这样做 当您位于网站页面的顶部时 徽标位于顶部 而当您位于底部时 徽标将位于页面底部的垂直栏中 位于网页左侧 我不知道如何解决这个问题