jquery - CSS/JQuery : Make div appear next to another (with absolute position)

标签 jquery css asp.net-mvc

我有一个 #hidden div,当 #HoverMe 悬停时出现,取消悬停它并再次隐藏。 #hidden 有它的子 div,就像一个下拉列表。 #hidden 使用 position: absolute;。如何强制 #hidden div 出现在 #HowerMe 旁边,并让它的子分区(在 #hidden 分区内)出现在下面?

现在的运作方式:

                          ------------     
                         |  #HoverMe   |                            
                          ------------    
  ---------
 | #hidden |
 | --------|
 | car.name|        
 |---------|
 | car.name|  
  ---------

我想要什么

                      ------------     ---------
                     |  #HoverMe   |  | #hidden |                           
                      ------------    | --------|
                                      | car.name|        
                                      |---------|
                                      | car.name|  
                                       ---------

我的代码: 我使用我的 #HoverMe-div 来显示 #hidden-div,其中包含我要显示的内容列表。

<div style="position: relative">
     <div id="HoverMe" >
         This owner own @Html.DisplayFor(model => model.TotCar) cars in total
     </div>              

     <div id="hidden" style="position: absolute; display: none; background-color: black"> //<------- hidden
         @foreach (var car in Model.Car) { 
             <div>@car.Name</div> 
          }
    </div>
 </div>


<script>
     var hoverEle = $("#HoverMe");
        var popupEle = $("#hidden");    

        function hidePopup() {
            $("#hidden").hide();
        }

        $('#HoverMe, #hidden').hover(function () {
            $("#hidden").stop(true).show();
        }, function () {
            $("#hidden").stop(true).delay(2000).fadeOut();
        });

最佳答案

您应该使用 display: inline-block; 来使隐藏的 div 显示为您想要的。您甚至不需要将 position 设置为 absolute

一些建议

  1. 使用

        <ul>
          <li>Item 1</li>
          <li>Item 2</li>
          <li>Item 3</li>
          <li>Item 4</li>
        </ul>

为了显示列表。

  1. 当您将一个元素保存到变量中时,您可以使用该变量而不是再次调用 $()

    var hoverEle = $("#HoverMe");
    var popupEle = $("#hidden");    
    
    function hidePopup() {
      popupEle.hide(); // indeatd of $("#hidden").hide();
    }
    
    hoverEle.hover(function () {
      popupEle.stop(true).show();
    }, function () {
      popupEle.stop(true).delay(2000).fadeOut();
    });
    

这是工作演示:

var hoverEle = $("#HoverMe");
var popupEle = $("#hidden");    

popupEle.hide();

hoverEle.hover(function() {
  popupEle.fadeIn();
}, function() {
  popupEle.fadeOut();
});
.wrapper {
  width: 100%;
  text-align: left;
}

#HoverMe {
  display: inline-block;
  vertical-align: top;
  width: 200px;
  height: 60px;
  background-color: green;
}

#hidden {
  width: 200px;
  display: inline-block;
  margin: 0;
  vertical-align: top;
  background-color: black;
  color: white;
}
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>

<div class="wrapper">
  <div id="HoverMe" >
    This owner own
  </div>

  <ul id="hidden">
    <li>Car1</li>
    <li>Car2</li>
    <li>Car3</li>
    <li>Car4</li>
    <li>Car5</li>
  </ul>
</div>

在一页中

<!DOCTYPE html>
<html>
<head>
	<title>Test app</title>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
</head>
<body>
	<style type="text/css">
		.wrapper {
			width: 100%;
			text-align: left;
		}

		#HoverMe {
			display: inline-block; // in order to make div behave as inline element
			vertical-align: top;
			width: 200px;
			height: 60px;
			background-color: green;
		}

		#hidden {
			width: 200px;
			display: inline-block; // in order to make div behave as inline element
			margin: 0;
			vertical-align: top;
			background-color: black;
			color: white;
		}
	</style>
	<div class="wrapper">
		<div id="HoverMe" >
			This owner own
		</div>

		<ul id="hidden">
			<li>Car1</li>
			<li>Car2</li>
			<li>Car3</li>
			<li>Car4</li>
			<li>Car5</li>
		</ul>
	</div>

	<script type="text/javascript">
		$(document).ready(function() {
			console.log("ready");
			var hoverEle = $("#HoverMe");
			var popupEle = $("#hidden");    
			
			popupEle.hide();

			hoverEle.hover(function() {
				popupEle.fadeIn();
			}, function() {
				popupEle.fadeOut();
			});
		});
	</script>
</body>
</html>

关于jquery - CSS/JQuery : Make div appear next to another (with absolute position),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39949152/

相关文章:

asp.net - 在 JavaScript 网站上使用 Glimpse

php - 单击提交按钮后按 f5

javascript - 为什么向下滚动到底部页面时会重复数据?

jquery - 使用 jQuery 设置 "width: calc..."的所有供应商前缀版本?

c# - 将对象从部分 View 传递到 Controller

asp.net - 如何使用 View 中的下拉列表将数据从 ViewModel 插入到数据库

javascript - jQuery - 在加载 ajax 的文件中调用函数

javascript - 查找某个元素后面的类

javascript - 如何在WordPress中使用jquery删除脚本

html - 如何将按钮对齐到此文本区域的右侧