不加滚动条时,样式是:
但是列表是要加上下的滚动条,加了以后就变成了
里面的定位就不生效了 ,谁知道该如何解决啊?试了很多办法了 没用
不加滚动条时,样式是:
但是列表是要加上下的滚动条,加了以后就变成了
里面的定位就不生效了 ,谁知道该如何解决啊?试了很多办法了 没用
建议你这种就把窗口写在body里面吧,让弹窗基于body position fixed定位,都通用一个,点击时获取你点击的event clientX,clientY坐标,然后动态赋值给弹窗的left和top。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style type="text/css">
.box{
width: 200px;
}
ul{
overflow-y: auto;
height: 100px;
overflow-x: hidden;
}
ul li{
position: relative;
width: 200px;
}
.a{
position: fixed;
background: #FFF;
z-index: 100;
display: none;
}
</style>
</head>
<body>
<div class="box">
<ul>
<li>11111</li>
<li>11111</li>
<li>11111</li>
<li>11111</li>
<li>11111</li>
<li>11111</li>
</ul>
</div>
<div class="a">jjjjjffffffffffjj</div>
<script>
var list = document.querySelectorAll('li');
var a = document.querySelector('.a')
list.forEach(function(el){
el.onclick=function(event){
a.style.display = 'block';
console.log(el.offsetTop)
a.style.top =el.offsetTop+'px';
a.style.left =el.offsetLeft+el.offsetWidth/2+'px';
//a.style.left = event.clientX+'px';
//a.style.top = event.clientY+'px';
}
})
</script>
</body>
</html>
2 回答898 阅读✓ 已解决
3 回答747 阅读✓ 已解决
4 回答1.2k 阅读✓ 已解决
2 回答1.3k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
2 回答2.6k 阅读
1 回答1.1k 阅读✓ 已解决
你层级有问题,而且有滚动条的div不能有relative