鼠标悬停显示div层

<style type="text/css">
.pop {
	width:357px;
	height:194px;
	background:#0F0;
	position:absolute;
	display:none;
}
.pop .ct {
	margin:10px 10px 10px 60px;
	background:#F00;
}
</style>
<div class="pop" id="popDV" οnmοuseοut="hide(event)" οnmοuseοver="clearTimeout(mouseOutTimer)">
  <div class="ct"><a href="#">hello world</div>
</div>
<div id="dvCT"><a href="#">把鼠标放这里吧</a> </div>

<script type="text/javascript">
function getAbsolutePosition(o){
  //获取对象的绝对位置
  var p={x:o.offsetLeft,y:o.offsetTop};
  while(o=o.offsetParent){
    p.x+=o.offsetLeft;p.y+=o.offsetTop;
  }
  return p;
}
function showPopUp(){//
  var p=getAbsolutePosition(this),popDV=document.getElementById('popDV');
  popDV.style.left=p.x+this.offsetWidth+'px';
  popDV.style.top=p.y+'px';
  popDV.style.display='block';
}
var mouseOutTimer=false;

window.οnlοad=function(){//加载完毕后给a标签添加事件
  var as=document.getElementById('dvCT').getElementsByTagName('a');
  for(var i=0;i<as.length;i++){
    as[i].οnmοuseοver=showPopUp;
    as[i].οnmοuseοut=function(){mouseOutTimer=setTimeout(function(){hide(true);},100);}
  }
}

function hide(e){
  var dv=document.getElementById('popDV');
  if(e===true)dv.style.display='none';//计时器直接隐藏
  else{//如果鼠标从弹出层移出时,需要判断是否是移动到弹出层里面的子控件上了,因为移动到子控件,如a标签等上时,也会触发onmuseout事件
    var refObj=e.toElement||e.relatedTarget;
    if(!dv.contains(refObj))dv.style.display='none';//不是div的子控件则隐藏
  }
}

if(typeof HTMLElement!='undefined')HTMLElement.prototype.contains=function(o){//扩展非IE浏览器下的contains方法
  if(this==o)return true;
  while(o=o.parentNode)if(o==this)return true;
  return false;
}
</script>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用CSSJavaScript来实现鼠标悬停显示div左右按钮的效果。下面是一个简单的示例代码: HTML: ```html <div class="container"> <div class="content"> <!-- 内容 --> </div> <div class="buttons"> <button class="left-button"><</button> <button class="right-button">></button> </div> </div> ``` CSS: ```css .container { position: relative; width: 200px; height: 200px; } .content { width: 100%; height: 100%; background-color: #ccc; } .buttons { position: absolute; top: 50%; left: 0; right: 0; transform: translateY(-50%); text-align: center; } .left-button, .right-button { display: none; } .container:hover .buttons { display: block; } .left-button, .right-button { padding: 5px 10px; margin: 0 5px; background-color: #fff; } ``` JavaScript: ```javascript const container = document.querySelector('.container'); const leftButton = document.querySelector('.left-button'); const rightButton = document.querySelector('.right-button'); container.addEventListener('mouseover', () => { leftButton.style.display = 'block'; rightButton.style.display = 'block'; }); container.addEventListener('mouseout', () => { leftButton.style.display = 'none'; rightButton.style.display = 'none'; }); ``` 这段代码中,我们首先创建一个包含内容和按钮的容器div。通过CSS设置容器的样式,其中按钮初始状态下是隐藏的。然后,通过JavaScript监听鼠标悬停和离开容器的事件,根据事件的触发来显示或隐藏按钮。 您可以根据自己的需求自定义CSS样式和按钮的功能。希望这个代码示例能帮到您!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值