从下拉框中创建弹出窗口

时间:2017-02-11 19:53:52

标签: javascript

我希望能够打开一个下拉菜单,当我选择其中一个选项时,会弹出一个小窗口,提供更多选项。我发现这张照片中显示的内容:http://datasmugglers.com/wp-content/uploads/mute-someone.jpg

我用Google搜索并搜索了但我找不到任何接近解决方案的内容。我可以使用可以转到其他页面的链接创建下拉列表,但这不是我正在寻找的内容。

我也愿意改变语言或使用像JQuery这样的外部库来实现这一目标。

我会发布我的代码,但它只是来自w3schools的下拉教程,但有一些变化。

3 个答案:

答案 0 :(得分:0)

简短回答:

使用默认的$query =DB::table('student') ->join('relation','relation.id_student_girl', '=', 'student.id') ->join('relation','relation .id_student_boy ', '=', 'student.id') ->select('student.*','relation.*') ->get(); 控件,无法完成。 <select>无法附加OnClickListeners元素。

备份答案: 您可以创建自定义下拉列表,基本上创建和设置自己的html元素,当您单击它时,显示项目列表,即带有一些选项的<option>元素,并将onClickListeners附加到那些显示警报的元素。

答案 1 :(得分:0)

<强> 1。创建模态 - 在HTML文档中创建一个带有display:hidden的模式。

<强> 2。收听点击次数 - 在javascript中添加一个事件监听器,用于监听链接上的任何点击。

第3。显示模态 - 当有人点击您的链接时,请将模式的显示更改为block

var link = document.getElementById('your-link');
var modal = document.getElementById('your-modal');

link.addEventListener("click", function(){
   modal.style.display = 'block';
});

答案 2 :(得分:0)

答案很长: 以下是一些示例代码:

<!DOCTYPE html>
<html>
<head>
<style>
.dropbtn {
    background-color: #4CAF50;
    color: white;
    padding: 16px;
    font-size: 16px;
    border: none;
    cursor: pointer;
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #f9f9f9;
    min-width: 160px;
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
}

.dropdown-content a {
    color: black;
    padding: 12px 16px;
    text-decoration: none;
    display: block;
}

.dropdown-content a:hover {background-color: #f1f1f1}

.dropdown:hover .dropdown-content {
    display: block;
}

.dropdown:hover .dropbtn {
    background-color: #3e8e41;
}
</style>
<style>
/* Popup container - can be anything you want */
.popup {
    position: relative;
    display: inline-block;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}

/* The actual popup */
.popup .popuptext {
    visibility: hidden;
    width: 160px;
    background-color: #555;
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 8px 0;
    position: absolute;
    z-index: 1;
    bottom: 125%;
    left: 50%;
    margin-left: -80px;
    margin-bottom: -250px;
}



/* Toggle this class - hide and show the popup */
.popup .show {
    visibility: visible;
    -webkit-animation: fadeIn 1s;
    animation: fadeIn 1s;
}

/* Add animation (fade in the popup) */
@-webkit-keyframes fadeIn {
    from {opacity: 0;} 
    to {opacity: 1;}
}

@keyframes fadeIn {
    from {opacity: 0;}
    to {opacity:1 ;}
}
</style>
</head>
<body style="text-align:center">

<h2>Hoverable Dropdown</h2>
<p>Move the mouse over the button to open the dropdown menu.</p>

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
    <div class="popup" onclick="myFunction()">popup1
      <span class="popuptext" id="myPopup1">A Simple Popup1!</span>
    </div><br><br>
    <div class="popup" onclick="myFunction()">popup2
      <span class="popuptext" id="myPopup2">A Simple Popup2!</span>
    </div><br><br>
    <div class="popup" onclick="myFunction()">popup3
      <span class="popuptext" id="myPopup3">A Simple Popup3!</span>
    </div>
  </div>
</div>



<script>
// When the user clicks on div, open the popup
function myFunction() {
    var popup = document.getElementById("myPopup2"); //you can easily switch this with JS
    popup.classList.toggle("show");
}
</script>

</body>
</html>

此示例使用popup.classList.toggle("show");来显示或隐藏弹出窗口。你应该了解w3schools的下拉。

希望这有帮助!