欢迎来到 SiteSMO | 思默AI智能问答平台!
注册或点击登录代表您同意《SiteSMO网络服务安全协议》
提示信息
请打开微信扫码登录
返回列表

用DIV+JS来模拟 select option 一样的效果

举报
767阅读 | 0人回复 | 2023-05-17 22:04:23

<select>
<option value="1">111</option>
<option value="2">222</option>
<option value="3">333</option>
<option value="4">444</option>
</select>

用DIV+JS实现这个效果

本帖由 Hi' ... 发布,如有侵权联系删除 IP属地:上海

可以使用以下代码来实现用DIV+JS来模拟 select option 的效果:

HTML代码:

<div class="select-box">
  <div class="select-head">
    <span class="selected-option">请选择</span>
    <i class="arrow"></i>
  </div>
  <ul class="option-list">
    <li data-value="1">111</li>
    <li data-value="2">222</li>
    <li data-value="3">333</li>
    <li data-value="4">444</li>
  </ul>
</div>

CSS代码:

.select-box {
  position: relative;
  width: 120px;
  height: 30px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  cursor: pointer;
}

.select-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 10px;
  height: 100%;
}

.selected-option {
  font-size: 14px;
}

.arrow {
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 5px 4px 0 4px;
  border-color: #666 transparent transparent transparent;
}

.option-list {
  position: absolute;
  top: 30px;
  left: 0;
  width: 100%;
  max-height: 120px;
  overflow-y: auto;
  border: 1px solid #ccc;
  border-top: none;
  border-radius: 0 0 4px 4px;
  background-color: #fff;
  z-index: 1;
}

.option-list li {
  padding: 5px 10px;
  font-size: 14px;
  cursor: pointer;
}

.option-list li:hover {
  background-color: #f5f5f5;
}

JS代码:

var selectBox = document.querySelector('.select-box');
var selectedOption = selectBox.querySelector('.selected-option');
var optionList = selectBox.querySelector('.option-list');
var options = optionList.querySelectorAll('li');

selectBox.addEventListener('click', function() {
  optionList.classList.toggle('show');
});

options.forEach(function(option) {
  option.addEventListener('click', function() {
    var value = this.getAttribute('data-value');
    selectedOption.textContent = this.textContent;
    optionList.classList.remove('show');
  });
});

这段代码会生成一个类似于 select option 的下拉框,点击下拉框头部可以展开选项列表,点击选项可以选择对应的值并收起选项列表。

复制
如何与form 和 input 实现搜索?

要实现搜索功能,可以使用form和input元素。具体实现步骤如下:

  1. 使用form元素创建一个表单,设置method属性为“GET”或“POST”,设置action属性为提交表单的URL。

  2. 在form元素内部创建一个input元素,设置type属性为“text”,设置name属性为搜索关键字的参数名。

  3. 在form元素内部创建一个submit按钮,用户点击该按钮时,表单会自动提交。

  4. 在服务器端接收到表单提交的数据后,可以从请求参数中获取搜索关键字,然后根据搜索关键字查询相关数据并返回给客户端。

下面是一个简单的示例代码:

<form method="GET" action="/search">
  <input type="text" name="keyword" placeholder="请输入搜索关键字">
  <button type="submit">搜索</button>
</form>

在这个示例中,form元素的method属性设置为“GET”,action属性设置为“/search”,表示当用户提交表单时,表单数据会以GET方式提交到“/search”URL。input元素的name属性设置为“keyword”,表示搜索关键字的参数名为“keyword”。当用户在搜索框内输入关键字并点击“搜索”按钮时,表单会自动提交,并将搜索关键字作为请求参数发送到服务器端。

在服务器端,可以使用相应的后端语言(如PHP、Python等)获取请求参数中的搜索关键字,并根据关键字查询相关数据。例如,在PHP中,可以使用$_GET['keyword']获取GET请求中的“keyword”参数值,然后根据该值查询相关数据并返回给客户端。

复制
1
0

注:避免重复,不要就相同的标题进行反复追问。

回答共0个
回复禁止带推广链接、违法词及灌水,违规将封禁账号!!
您需要登录后才可以回复 注册 / 登录
每个账号仅有一次回答机会!
取消
提示信息
请选择举报理由
我要回答