gpt4 book ai didi

javascript - Bootstrap TokenField下拉项在选择时闪烁

转载 作者:行者123 更新时间:2023-12-01 16:25:13 25 4
gpt4 key购买 nike

我目前正在使用具有自动完成下拉菜单的bootstrap token 字段。但是,当您将鼠标悬停在下拉菜单上时,很明显文本会稍微移动。有什么办法可以解决此问题,以使文本在悬停时完全不会移动?
请运行代码以查看问题。下拉列表位于模式中。非常感谢你的帮助!

<!DOCTYPE html>
<head>
<meta charset="utf-8">
<script src="https://code.jquery.com/jquery-3.3.1.min.js" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-tokenfield/0.12.0/css/bootstrap-tokenfield.css">
<link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.css">
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css">
</head>
<body>
<!-- Button trigger modal -->
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
Launch demo modal
</button>
<style>
.ui-menu.ui-widget.ui-widget-content.ui-autocomplete.ui-front {
z-index: 1051; // Or more
}

.token-input {
width: 25vmin !important;
}

.tokenfield .token {
height: 25px;
}

.ui-menu-item-wrapper {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
background-color: transparent;
border: none !important;
text-decoration: none;
}

.ui-menu-item {
display: block;
width: 100%;
padding: 0.25rem 1.5rem;
clear: both;
font-weight: 400;
color: #000000;
text-align: inherit;
white-space: nowrap;
background-color: transparent;
border: 0;
border-radius: 0.5rem;
}

.ui-menu-item:hover, .ui-menu-item:focus {
color: #ffffff;
text-decoration: none;
background-color: #eaeaf1;
}

.ui-menu-item:hover{
color: #ffffff;
}

.ui-menu:hover .ui-menu-item-wrapper, .ui-menu-item-wrapper:hover{
background: transparent;
border: none;
}
.ui-menu { border-radius: 3px !important; }

.form-control {
height: inherit;
}

@media (max-width: 600px) {
.ui-menu.ui-widget.ui-widget-content.ui-autocomplete.ui-front {
width: auto !important; /* important is used because tokenfield api uses inline styling */
}
}
</style>
<!-- Modal -->
<div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body">
<input type="text" class="form-control" id="tokenfield" value=""/>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary">Save changes</button>
</div>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-tokenfield/0.12.0/bootstrap-tokenfield.js"></script>
</body>

<script>

var sourceDataObj = ["test1", "test2", "3tests"];

$('#tokenfield').tokenfield({
autocomplete: {
source: sourceDataObj,
delay: 100
},
showAutocompleteOnFocus: true,
minWidth: 466

});
</script>
</html>

最佳答案

您的自定义CSS中的几个问题现在已修复。

  • 您有一些不需要的透明背景。
  • border:none !important无法正常工作。
  • .ui-menu-item无需为此使用自定义CSS样式,因为 token 字段提供的样式具有响应性。

  • 编辑:如果您的下拉菜单项大于10,则我还根据需要添加了最大高度和溢出y,您也可以根据需要调整高度。
    运行下面的代码片段以查看其是否正常运行。

    $(document).ready(function() {
    var sourceDataObj = ["test1", "test2", "3tests","test1", "test2", "3tests","test1", "test2", "3tests","test1", "test2", "3tests","test1", "test2", "3tests","test1", "test2", "3tests","test1", "test2", "3tests","test1", "test2", "3tests","test1", "test2", "3tests","test1", "test2", "3tests","test1", "test2", "3tests","test1", "test2", "3tests",];
    $('#tokenfield').tokenfield({
    autocomplete: {
    source: sourceDataObj,
    delay: 100
    },
    showAutocompleteOnFocus: true,
    minWidth: 466

    });

    });
    .ui-menu.ui-widget.ui-widget-content.ui-autocomplete.ui-front {
    z-index: 1051; // Or more
    }

    #ui-id-1 {
    overflow-y: scroll;
    height: 300px;
    }

    .token-input {
    width: 25vmin !important;
    }

    .tokenfield .token {
    height: 25px;
    }

    .ui-menu-item-wrapper {
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    }

    .ui-menu {
    border-radius: 3px !important;
    }

    .form-control {
    height: inherit;
    }

    @media (max-width: 600px) {
    .ui-menu.ui-widget.ui-widget-content.ui-autocomplete.ui-front {
    width: auto !important;
    /* important is used because tokenfield api uses inline styling */
    }
    }
    <!DOCTYPE html>

    <head>
    <meta charset="utf-8">
    <script src="https://code.jquery.com/jquery-3.3.1.min.js" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.js"></script>
    <link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css">
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-tokenfield/0.12.0/css/bootstrap-tokenfield.css">
    <link rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.css">
    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.2/css/all.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/js/bootstrap.js"></script>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-tokenfield/0.12.0/bootstrap-tokenfield.js"></script>
    </head>

    <body>
    <!-- Button trigger modal -->
    <button type="button" class="btn btn-primary" data-toggle="modal" data-target="#exampleModal">
    Launch demo modal
    </button>
    <style>

    </style>
    <!-- Modal -->
    <div class="modal fade" id="exampleModal" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
    <div class="modal-content">
    <div class="modal-header">
    <h5 class="modal-title" id="exampleModalLabel">Modal title</h5>
    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
    <span aria-hidden="true">&times;</span>
    </button>
    </div>
    <div class="modal-body">
    <input type="text" class="form-control" id="tokenfield" value="" />
    </div>
    <div class="modal-footer">
    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
    <button type="button" class="btn btn-primary">Save changes</button>
    </div>
    </div>
    </div>
    </div>
    </body>

    关于javascript - Bootstrap TokenField下拉项在选择时闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62854315/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com