Semantic UI 之 下拉菜单 dropdown
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Semantic UI 之 下拉菜单 dropdown相关的知识,希望对你有一定的参考价值。
第一步:创建项目
添加JQuery和Semantic UI包、创建dropdown.html页面:
第二步:dropdown.html页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>分段</title>
<link rel="stylesheet" href="semantic-ui/semantic.min.css">
<script type="text/javascript" src="js/jquery3.3.1.js"></script>
<script type="text/javascript" src="semantic-ui/semantic.min.js"></script>
</head>
<body>
</body>
</html>
最简单的下拉菜单:不需要JavaScript就可下拉
<H2>最简单的下拉菜单:不需要JavaScript就可下拉</H2>
<div class="ui simple dropdown">
课程
<i class="dropdown icon"></i>
<div class="menu">
<div class="item">语文</div>
<div class="item">英语</div>
<div class="item">数学</div>
</div>
</div>
效果:
普通下拉菜单
<h2>普通下拉菜单</h2>
<div class="ui dropdown">
课程 <i class="dropdown icon"></i>
<div class="menu">
<div class="item">语文</div>
<div class="item">英语</div>
<div class="item">数学</div>
</div>
</div>
本菜单以及下面的菜单都需要借助以下JavaScript代码才能显示出来:
<script type="text/javascript">
$(".ui.dropdown").dropdown(
on:hover ,//鼠标悬浮显示,默认值是click
transition:swing right, //设置动画效果
allowAdditions:true //允许添加新的菜单项
);
</script>
效果:
可以选择的下拉菜单
<h2>可以选择的下拉菜单</h2>
<div class="ui selection dropdown">
<div class="default text">课程</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="item">语文</div>
<div class="item">英语</div>
<div class="item">数学</div>
</div>
</div>
效果:
其它下拉菜单
<h2>其它下拉菜单</h2>
<div class="ui floating selection dropdown">
课程 <i class="dropdown icon"></i>
<div class="menu">
<div class="item">语文</div>
<div class="item">英语</div>
<div class="item">数学</div>
</div>
</div>
<div class="ui pointing selection dropdown">
课程 <i class="dropdown icon"></i>
<div class="menu">
<div class="item">语文</div>
<div class="item">英语</div>
<div class="item">数学</div>
</div>
</div>
<div class="ui left pointing selection dropdown">
课程 <i class="dropdown icon"></i>
<div class="menu">
<div class="item">语文</div>
<div class="item">英语</div>
<div class="item">数学</div>
</div>
</div>
效果:
可以选择的文本框下拉菜单:下拉菜单自动设置隐藏域的值
<h2>可以选择的文本框下拉菜单:下拉菜单自动设置隐藏域的值</h2>
<div class="ui selection dropdown">
<input type="hidden" name="course">
<div class="default text">课程</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="item" data-value="11">语文</div>
<div class="item" data-value="22">英语</div>
<div class="item" data-value="33">数学</div>
</div>
</div>
效果: 可以使用浏览器的控制台查看隐藏域的值:
可以搜索的下拉菜单
<h2>可以搜索的下拉菜单</h2>
<div class="ui search selection dropdown">
<div class="default text">课程</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="item">Java</div>
<div class="item">JavaScript</div>
<div class="item">Python</div>
</div>
</div>
效果:
带标签的图标按钮下拉菜单
<h2>带标签的图标按钮下拉菜单</h2>
<div class="ui dropdown labeled icon button">
<i class="dropdown icon"></i>
<div class="text">课程</div>
<div class="menu">
<div class="item">Java</div>
<div class="item">JavaScript</div>
<div class="item">Python</div>
</div>
</div>
效果:
带标签的图标按钮下拉菜单
<h2>带标签的图标按钮下拉菜单</h2>
<div class="ui dropdown labeled icon button">
<i class="dropdown icon"></i>
<div class="text">课程</div>
<div class="menu">
<div class="ui icon search input">
<i class="search icon"></i>
<input type="text" placeholder="搜索">
</div>
<div class="item">Java</div>
<div class="item">JavaScript</div>
<div class="item">Python</div>
</div>
</div>
多选下拉菜单
<label for="language">国家</label>
<div id="language" class="ui selection multiple search dropdown">
<input type="hidden" name="lang">
<i class="dropdown icon"></i>
<div class="default text">请选择语言</div>
<div class="menu">
<div class="item" data-value="2">JavaScript</div>
<div class="item" data-value="1">Java</div>
<div class="item" data-value="2">Python</div>
<div class="item" data-value="2">Cshap</div>
</div>
</div>
效果:
语义 ui 滚动下拉列表不显示所选项目
【中文标题】语义 ui 滚动下拉列表不显示所选项目【英文标题】:semantic ui scrolling dropdown doesn't show the selected item 【发布时间】:2019-07-13 05:08:49 【问题描述】:我正在使用语义 UI 滚动下拉菜单。
在页面加载时,我设置了选定的值。
问题是当我们默认打开下拉菜单时,semantic-ui 会显示下拉菜单的第一个元素并且不显示所选值。
如果您选择另一个值,则新的下拉位置是所选值之一。
有没有办法在第一次打开下拉菜单时显示所选元素。
下拉菜单
$('.dropdown').dropdown();
$('.dropdown').dropdown( 'set selected', '10');
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.1.3/semantic.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>
<div class="ui scrolling dropdown">
<div class="text">10</div>
<i class="dropdown icon"></i>
<div class="menu">
<div class="item" data-value="1">1</div>
<div class="item" data-value="2">2</div>
<div class="item" data-value="3">3</div>
<div class="item" data-value="4">4</div>
<div class="item" data-value="5">5</div>
<div class="item" data-value="6">6</div>
<div class="item" data-value="7">7</div>
<div class="item" data-value="8">8</div>
<div class="item" data-value="9">9</div>
<div class="item" data-value="10">10</div>
</div>
</div>
【问题讨论】:
【参考方案1】:经过一番调查,我使用 .index() 和 .scrollTop() 以及下拉回调 .onShow 解决了
$('.dropdown').dropdown();
$('.dropdown').dropdown('set selected', '10');
$('.dropdown').dropdown(
onShow: function(value, text)
setTimeout(function()
var preSelected = $('#dd > div.item.active.selected').index('.item');
$('#dd').scrollTop((preSelected - 2) * 36);
, 100);
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.1.3/semantic.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/semantic-ui/2.4.1/semantic.min.js"></script>
<div class="ui scrolling dropdown">
<div class="text">10</div>
<i class="dropdown icon"></i>
<div class="menu" id="dd">
<div class="item" data-value="1">1</div>
<div class="item" data-value="2">2</div>
<div class="item" data-value="3">3</div>
<div class="item" data-value="4">4</div>
<div class="item" data-value="5">5</div>
<div class="item" data-value="6">6</div>
<div class="item" data-value="7">7</div>
<div class="item" data-value="8">8</div>
<div class="item" data-value="9">9</div>
<div class="item" data-value="10">10</div>
</div>
</div>
【讨论】:
以上是关于Semantic UI 之 下拉菜单 dropdown的主要内容,如果未能解决你的问题,请参考以下文章
在 React 中使用 Semantic-UI 固定菜单和侧边栏