标签: scrollspy

像示例一样,ScrollSpy引导程序侧边栏的最小代码是什么?

我在bootstrap页面上看到了左手ScrollSpy示例:

http://twitter.github.io/bootstrap/2.3.2/javascript.html#scrollspy

但他们没有任何示例代码如何获得相同的风格和效果?实现这一目标所需的最小代码是什么,因为我看到的所有JsFiddle示例都没有样式.

更新

我已停止在我的项目中使用scrollspy,因为滚动条仅适用于页面级别,我需要滚动条仅显示在滚动发生的容器上

twitter-bootstrap scrollspy

25
推荐指数
2
解决办法
3万
查看次数

固定导航栏上的Bootstrap scrollspy偏移不起作用

我已经创建了我的问题,并在这里进行测试:http://jsfiddle.net/aVBUy/7/

问题是,当我点击导航栏项目时,我有一个滚动到元素ID的脚本.当页面处于正确位置时,我正在使用scrollspy来突出显示导航元素.但是,scrollspy仅在它到达浏览器/设备顶部时才更改活动状态.因为我的导航栏是固定的,我需要一个应用于scrollspy的偏移量来偏移51px(导航栏高度).

我已经尝试了一切,但我无法让它发挥作用.请检查我的小提琴,看看你是否能找到我出错的地方,对我这么帮助.

这是我最小化的代码......

HTML

<div class="navbar navbar-inverse navbar-fixed-top">
    <div class="navbar-inner">
        <div class="container">
            <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </a>
            <a class="brand" href="#"><img src="img/logo.gif" alt="" /></a>
            <div class="nav-collapse collapse">
                <ul class="nav">
                    <li><a href="#welcome" data-scroll="#welcome">Welcome</a></li>
                    <li><a href="#about" data-scroll="#about">About</a></li>
                    <li><a href="#route" data-scroll="#route">The Route</a></li>
                    <li><a href="#bike" data-scroll="#bike">The Bike</a></li>
                </ul>
            </div>
        </div>
    </div>
</div>
<div class="container">
    <div id="welcome" class="row-fluid">
        <div class="span12">
            <h3>Welcome</h3>
            ...
        </div>
    </div>
    <hr />
    <div id="about" class="row-fluid">
        <div class="span12">
            <h3>About the ride</h3>
            ... …
Run Code Online (Sandbox Code Playgroud)

jquery jsfiddle twitter-bootstrap scrollspy

15
推荐指数
2
解决办法
5万
查看次数

Bootstrap 3 - 带有侧边栏的Scrollspy

我正在使用Bootstrap 3.我想重新创建与Bootstrap站点上的文档中的侧栏相同的功能.

下面是我的代码,它也在这里:http://bootply.com/82119

两个问题.

  1. 当您向下滚动每个部分的页面时,侧边栏项目不会突出显示.
  2. 当您单击侧边栏项时,它会跳转到相关锚点,但一半的内容不可见.更改data-offset值似乎没有任何效果.

我究竟做错了什么?

<div class="container">
    <div class="row">
        <div class="col-md-3">
            <div class="list-group navbar" id="sidebar">
                <ul class="nav" id="mynav">
                    <li><a href="#c1" class="list-group-item">
                          Content 1
                        </a>
                    </li>
                    <li> <a href="#c2" class="list-group-item" contenteditable="false">Content 2
                        </a>
                    </li>
                    <li> <a href="#c3" class="list-group-item" contenteditable="false">Content 3
                        </a>
                    </li>
                    <li> <a href="#c4" class="list-group-item" contenteditable="false">Content 4
                        </a>
                    </li>
                    <li> <a href="#c5" class="list-group-item" contenteditable="false">Content 5
                        </a>
                    </li>
                </ul>
            </div>
        </div>
        <div class="col-md-9" id="mycontent" data-spy="scroll" data-target="#sidebar" data-offset="0">
                <h2 id="c1" class="">Content 1</h2>
At …
Run Code Online (Sandbox Code Playgroud)

jquery twitter-bootstrap scrollspy twitter-bootstrap-3

11
推荐指数
1
解决办法
2万
查看次数

Bootstrap 4 scrollspy无法使用Angular 4

我正在尝试在Angular 4中实现scrollspy.我在.angular-cli.json文件中导入了jQuery和Bootstrap.js.它没有在控制台中给出任何错误.但是,active类未按li预期应用于元素.

https://v4-alpha.getbootstrap.com/components/scrollspy/

header.component.ts

ngOnInit() {
    $(document).ready(() => {
        $('body').scrollspy({target: "#myNavbar", offset: 50});   
    });
}
Run Code Online (Sandbox Code Playgroud)

header.component.html

<div class="navbar-collapse" id="myNavbar">
  <ul class="nav navbar-nav">
    <li><a href="#PATIENT IDENTIFICATION">Section 1</a></li>
    <li><a href="#INITIATION">Section 2</a></li>
    <li><a href="#section3">Section 3</a></li>
    <li class="dropdown"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Section 4 <span class="caret"></span></a>
      <ul class="dropdown-menu">
        <li><a href="#section41">Section 4-1</a></li>
        <li><a href="#section42">Section 4-2</a></li>
      </ul>
    </li>
  </ul>
</div>
Run Code Online (Sandbox Code Playgroud)

twitter-bootstrap scrollspy angular

11
推荐指数
1
解决办法
4763
查看次数

如何在不使用bootstrap的情况下使用scrollspy

有没有人知道如何使用scrollspy而不使用bootstrap?我正在尝试使用此存储库在我的一个项目中使用它:

https://github.com/sxalexander/jquery-scrollspy

但它只是不做引导程序所做的事情.在标签未标记为活动:(任何帮助将不胜感激.

我试过这样做:

    $('#intel_nav').scrollspy({
        //n: $('#nav').offset().top,
        onEnter: function (element, position) {
            console.log(element);

            $("#intel_nav").addClass('moo');
        },
        onLeave: function (element, position) {
            $("#intel_nav").removeClass('out');
        }
    });
Run Code Online (Sandbox Code Playgroud)

该元素似乎是实际的菜单,所以我不知道如何实际获取我当前悬停的元素的id.

jquery scrollspy

10
推荐指数
2
解决办法
2万
查看次数

Bootstrap Scrollspy会导致Off-Canavas菜单出现问题

更新: 为了消除一些困惑,我添加了一个小提琴,演示它应该如何工作,但它只是缺少 scrollspy:https://jsfiddle.net/kmdLg7t0/如何添加scrollspyto这个小提琴,以便菜单当我在特定部分时突出显示?

我创建了一个固定的左侧菜单,在浏览器宽度为<992px的平板电脑和移动设备上变成了一个非画布菜单 .当我在浏览器宽度> 992px上选择锚点链接时,它会关闭菜单并导航到锚点链接部分.

自定义JQuery代码: 这是我的自定义jQuery代码,当我点击锚链接时关闭Off-Canvas菜单:

// close off-canvas menu and navigate to anchor
$('.navmenu-nav li a').on('click', function() {
  $('body').removeClass('bs.offcanvas');
});
Run Code Online (Sandbox Code Playgroud)

问题:

我决定添加一个bootstrap offscrollspy,它在浏览器宽度大于992px后按预期工作,但是当我将浏览器宽度调整到小于992px时,这会干扰自定义Jquery代码以关闭菜单并导航到锚链接.

这是小提琴:

Bootstrap ScrollSpy导致Off Canvas Menu和JQuery Code出现问题

我的GUESS:我猜这个问题的解决方案是使用jquery或javascript来阻止或删除data-target =".navmenu",当我的屏幕小于<992px时激活.或者,我们可以找到一种方法,只激活scrollspy> 992px.我目前正试图解决这个问题,但我需要一个真正的jquery专家才能解决这个难题.

先决条件:

  • Bootstrap.min.css
  • Bootstrap.min.js
  • jasny-bootstrap.css
  • jasny-bootstrap.js

JS:

$(document).ready(function () {
  toggleOffcanvas($(window).width() <= 992);
});

// simulate modal opening
$('.nav-link').click(function() {
  if ($(window).width() > 992) {
    $('.backdrop').hide(0, …
Run Code Online (Sandbox Code Playgroud)

javascript jquery scrollspy twitter-bootstrap-3 off-canvas-menu

10
推荐指数
1
解决办法
638
查看次数

Bootstrap 3.0 scrollspy响应偏移

我试图让Bootstrap的scrollspy在响应式网站上可靠地工作,其中顶部导航栏的高度根据媒体/浏览器的宽度而变化.因此,不是硬编码data-offset属性的偏移量,而是通过Javascript初始化动态设置它,如下所示:

$('body').scrollspy({ offset: 70, target: '#nav' });
Run Code Online (Sandbox Code Playgroud)

对于宽布局(即Bootstrap -lg),它可以正常工作,但对于较窄的布局,似乎存在"累积"偏移.换句话说,它适用于第一部分,但随后需要增加像素来激活以下部分(例如,下一个为90px,第三部分为110px等).

我尝试直接操作scrollspy对象,如下面的答案中所述: 如何在Bootstrap中设置ScrollSpy的偏移量?但无济于事.

有人可以推荐一种在响应式网站中实现scrollspy的规范方法,其中偏移量根据媒体宽度而变化吗?

附加信息:

我刚刚在两个场景中分析了scrollspy对象,结果发现当通过data-属性而不是通过JS 初始化时,偏移列表是不同的.看起来当我通过JS初始化它时,偏移数组会在一些BS响应调整发生之前填充,因此高度不同.所有响应式内容运行后,如何触发scrollspy的初始化?BS调整布局后是否有钩子/回调?JS是否参与或者是由CSS处理的所有响应式内容?

responsive-design twitter-bootstrap scrollspy twitter-bootstrap-3

9
推荐指数
2
解决办法
2万
查看次数

Scrollspy使用完整URL

我正在尝试使用绝对URL而不是#锚链接使用scrollspy.

例如,我可以通过仅使用来轻松运行scrollspy <a href="#section1"></a>

我希望能够通过使用运行scrollspy <a href="http://myurl.com/#section1"></a>

这样做的原因是,主页上的主要导航是scorllspy,但博客不是主页的一部分.访问博客然后单击主页上的某个链接时,您将被路由到http://myurl.com/blog/#section1而不是主页ID.

我找到了这个解决方案(使用url和hash with bootstrap scrollspy),但无法使其完全正常运行.经过一些调整和大量的正则表达式组合后,我可以将它添加到第一个菜单项的活动类,但它不会刷新.

有什么想让这个工作?我应该使用替代的js库吗?

解决方案感谢特洛伊

jQuery(function($){
  // local url of page (minus any hash, but including any potential query string)
  var url = location.href.replace(/#.*/,'');

  // Find all anchors
  $('.nav-main').find('a[href]').each(function(i,a){
    var $a = $(a);
    var href = $a.attr('href');

    // check is anchor href starts with page's URI
    if (href.indexOf(url+'#') == 0) {
      // remove URI from href
      href = href.replace(url,'');
      // update anchors HREF with new one …
Run Code Online (Sandbox Code Playgroud)

href twitter-bootstrap scrollspy

9
推荐指数
2
解决办法
6368
查看次数

如何使用 React 实现滚动间谍

我想在没有引导程序的情况下实现滚动间谍

我在网上查了很多代码,都是用jQuery实现的。

如何仅使用 React 的强大功能来实现scrollspy

javascript scrollspy reactjs

9
推荐指数
1
解决办法
2万
查看次数

带有粘性导航栏的 Bootstrap Scroll Spy 无法按预期工作

我在使用 Bootstrap Scrollspy组件时遇到问题。

我正在使用sticky-top导航栏,当单击导航按钮时,它会滚动到正确的元素;

但问题是粘性导航栏覆盖了这个元素。

我尝试data-offset = "50"在 body 标签中使用,但它没有任何影响。

正文标签:

<body data-spy="scroll" data-target="#sectionsNav" data-offset="50">
Run Code Online (Sandbox Code Playgroud)

正文标签CSS:

body {
  position: relative;
  overflow-y: auto;
}
Run Code Online (Sandbox Code Playgroud)

导航栏:

<nav class="navbar navbar-light bg-light sticky-top">
        <div id="sectionsNav">
            <ul class="nav nav-pills text-center">
                <li class="nav-item">
                    <a class="nav-link" href="#wihe">What is Home Eats</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#hiw">How it Works</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#pws">Problems we Solve</a>
                </li>
                <li class="nav-item">
                    <a class="nav-link" href="#jhen">Join Now!</a>
                </li>
            </ul>
        </div>
    </nav>
Run Code Online (Sandbox Code Playgroud)

它是如何工作的:

..
<div id="hiw" class="container"> …
Run Code Online (Sandbox Code Playgroud)

html css twitter-bootstrap scrollspy bootstrap-4

9
推荐指数
1
解决办法
4284
查看次数