Bootstrap 4:为什么不显示可滚动下拉列表中的弹出窗口? [英] Bootstrap 4: Why popover inside scrollable dropdown doesn't show?

查看:16
本文介绍了Bootstrap 4:为什么不显示可滚动下拉列表中的弹出窗口?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我希望它像 Bootstrap 3 一样工作.当我在悬停弹出框上有一个带有滚动条的下拉菜单时,我认为 Bootstrap 4 有问题.我需要溢出:隐藏;使下拉滚动,但弹出窗口也隐藏了.我尝试使用 container:'body' 但它没有用.

$(document).ready(function() {$('[data-toggle="popover"]').popover({html:对,容器:'身体'});});

.dropdown-menu{高度:150px;溢出:隐藏;溢出-y:自动}

<头><title>引导示例</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script><身体><div class="容器"><h2>下拉菜单</h2><div class="下拉"><button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">下拉按钮<div class="下拉菜单"><a class="dropdown-item" href="#" title="Header" data-toggle="popover" data-placement="right" data-trigger="hover"data-content="一些内容">链接 1</a></a><a class="dropdown-item" href="#" title="Header" data-toggle="popover" data-placement="right" data-trigger="hover" data-content="一些内容">链接2<a class="dropdown-item" href="#">链接 3</a><a class="dropdown-item" href="#">链接 4</a><a class="dropdown-item" href="#">链接 5</a><a class="dropdown-item" href="#">链接 6</a><a class="dropdown-item" href="#">链接 7</a><a class="dropdown-item" href="#">链接 8</a><a class="dropdown-item" href="#">链接 9</a>

解决方案

有一些问题popper.js,以及它如何定位下拉菜单、弹出框和工具提示.解决方案是将弹出窗口上的 data-boundary 选项设置为 window...

Codeply 上的演示

$(document).ready(function() {$('[data-toggle="popover"]').popover({});});

.dropdown-menu{高度:150px;溢出:隐藏;溢出-y:自动}

<头><title>引导示例</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css"><script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script><身体><div class="容器"><h2>下拉菜单</h2><div class="下拉"><button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">下拉按钮<div class="下拉菜单"><a class="dropdown-item" href="#" title="Header" data-boundary="window" data-toggle="popover" data-placement="right" data-trigger="hover"data-content="一些内容">链接 1</a></a><a class="dropdown-item" href="#" title="Header" data-boundary="window" data-toggle="popover" data-placement="right" data-trigger="hover" data-content="一些内容">链接 2<a class="dropdown-item" href="#">链接 3</a><a class="dropdown-item" href="#">链接 4</a><a class="dropdown-item" href="#">链接 5</a><a class="dropdown-item" href="#">链接 6</a><a class="dropdown-item" href="#">链接 7</a><a class="dropdown-item" href="#">链接 8</a><a class="dropdown-item" href="#">链接 9</a>

I want this to work just like Bootstrap 3. When I have a dropdown with scrollbar on hover popover, and I think there is a problem with Bootstrap 4. I need overflow:hidden; to make the dropdown scroll, but the popover is hidden too. I tried to use container:'body' but it didn't work.

$(document).ready(function() {
  $('[data-toggle="popover"]').popover({
    html: true,
    container: 'body'
  });
});

.dropdown-menu{
	height: 150px;
	overflow: hidden;
	overflow-y: auto
}

<!DOCTYPE html>
<html>
<head>
  <title>Bootstrap Example</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
</head>
<body>

<div class="container">
  <h2>Dropdowns</h2>
                                     
  <div class="dropdown">
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
      Dropdown button
    </button>
    <div class="dropdown-menu">
      <a class="dropdown-item" href="#"	title="Header" data-toggle="popover" data-placement="right" data-trigger="hover"data-content="Some content">Link 1</a></a>
      <a class="dropdown-item" href="#" title="Header" data-toggle="popover" data-placement="right" data-trigger="hover" data-content="Some content">Link 2</a>
      <a class="dropdown-item" href="#">Link 3</a>
      <a class="dropdown-item" href="#">Link 4</a>
      <a class="dropdown-item" href="#">Link 5</a>
      <a class="dropdown-item" href="#">Link 6</a>
      <a class="dropdown-item" href="#">Link 7</a>
      <a class="dropdown-item" href="#">Link 8</a>
      <a class="dropdown-item" href="#">Link 9</a>
    </div>
  </div>
</div>

解决方案

There are some issues with popper.js, and how it positions dropdowns, popovers and tooltips. The solution is to set the data-boundary option on the popovers to window...

Demo on Codeply

$(document).ready(function() {
  $('[data-toggle="popover"]').popover({
  });
});

.dropdown-menu{
	height: 150px;
	overflow: hidden;
	overflow-y: auto
}

<!DOCTYPE html>
<html>
<head>
  <title>Bootstrap Example</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
  <h2>Dropdowns</h2>
  <div class="dropdown">
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown">
      Dropdown button
    </button>
    <div class="dropdown-menu">
      <a class="dropdown-item" href="#"	title="Header" data-boundary="window" data-toggle="popover" data-placement="right" data-trigger="hover"data-content="Some content">Link 1</a></a>
      <a class="dropdown-item" href="#" title="Header" data-boundary="window" data-toggle="popover" data-placement="right" data-trigger="hover" data-content="Some content">Link 2</a>
      <a class="dropdown-item" href="#">Link 3</a>
      <a class="dropdown-item" href="#">Link 4</a>
      <a class="dropdown-item" href="#">Link 5</a>
      <a class="dropdown-item" href="#">Link 6</a>
      <a class="dropdown-item" href="#">Link 7</a>
      <a class="dropdown-item" href="#">Link 8</a>
      <a class="dropdown-item" href="#">Link 9</a>
    </div>
  </div>
</div>

这篇关于Bootstrap 4:为什么不显示可滚动下拉列表中的弹出窗口?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
前端开发最新文章
热门教程
热门工具
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆