JS/jquery实现鼠标控制页面元素显隐

最近因为公司网站要上一个活动广告横幅,当用户鼠标划过时显隐二维码。像这种鼠标事件控制页面元素显隐的情况,码农们会经常遇到,可以通过javascript或jquery代码实现,下面就几种常见需求一起归纳一下。

mouseout和mouseleave

这里需要特别注意mouseout与mouseleave的区别。我们通过下面代码示例来看一下:

<p style="color:#333333;font-family:-apple-system, " font-size:16px;"="">

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>鼠标控制页面元素显隐</title>
<script src="http://apps.bdimg.com/libs/jquery/1.11.3/jquery.min.js"></script>
<style>
  #boxout,#boxleave{
  width:250px;
  height:100px;
  padding-top:20px;
  background-color:#cccccc;
  float:left;
  margin-left:30px;
  }
    
  #boxoutson,#boxleaveson{
  width:200px;
  height:50px;
  background-color:yellow;
  padding:0px auto;
  margin:0px auto;
  }
</style>
</head>
<body>
  <div id="boxout">
    <div id="boxoutson">
      第<span></span>此触发mouseout事件
    </div>
  </div>
  <div id="boxleave">
    <div id="boxleaveson">
      第<span></span>此触发mouseleave事件
    </div>
  </div>
  <script>
x=0;
y=0;
  $("#boxout").mouseout(function() {  
        $("#boxout span").text(x+=1);  
    });  
  $("#boxleave").mouseleave(function() {  
  $("#boxleave span").text(y+=1);  
  });  
</script>
</body>
</html>

效果如下:

fadeIn和fadeOut

前文实例中用的是show()和hide()方法,前台显隐效果瞬间完成,为了提高实际用户体验,这里我们介绍两位更友好的“朋友”,即fadeIn和fadeOut。

fadeIn:方法使用淡入效果来显示目标元素。

fadeOut:方法使用淡出效果来隐藏目标元素

这两个方法可以配置参数来控制速度,比如slow、normal、fast或指定毫秒数。

下面我们就show()、hide()与fadeIn()、fadeOut()的效果坐下对比,代码如下:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>鼠标控制页面元素显隐</title>
<script src="http://apps.bdimg.com/libs/jquery/1.11.3/jquery.min.js"></script>
<style>
  #box1,#box2{
  width:250px;
  height:100px;
  padding-top:20px;
  background-color:#cccccc;
  float:left;
  margin-left:30px;
  }
    
  #box1son,#box2son{
  width:200px;
  height:50px;
  background-color:yellow;
  padding:0px auto;
  margin:0px auto;
  }
</style>
</head>
<body>
  <div id="box1">
    <div id="box1son">
      <span>hide和show</span>
    </div>
  </div>
  <div id="box2">
    <div id="box2son">
      <span>fadeIn和fadeOut</span>
    </div>
  </div>
  <script>
    $("#box1 span").hide();
  $("#box1").mouseover(function() { 
        $("#box1 span").show(); 
    }).mouseleave(function() { 
        $("#box1 span").hide();
    });
  $("#box2 span").hide();
  $("#box2").mouseover(function() {  
        $("#box2 span").fadeIn("slow");  
    }).mouseleave(function() {  
        $("#box2 span").fadeOut("slow");  
    });  
</script>
</body>
</html>

效果如下:

小结

本文我们一起了解学习了通过js或jq实现鼠标事件控制页面元素显隐效果,方法十分简单。如果大家还有更好的其他解决方案,欢迎一起讨论交流。

原文地址:http://blog.51cto.com/13761353/2119048

时间: 2024-10-07 05:16:57

JS/jquery实现鼠标控制页面元素显隐的相关文章

h5之scrollIntoView控制页面元素滚动

如果滚动页面也是DOM没有解决的一个问题.为了解决这个问题,浏览器实现了一下方法,以方便开发人员如何更好的控制页面的滚动.在各种专有方法中,HTML5选择了scrollIntoView()作为标准方法.scrollIntoView()可以在所有的HTML元素上调用,通过滚动浏览器窗口或某个容器元素,调用元素就可以出现在视窗中.如果给该方法传入true作为参数,或者不传入任何参数,那么窗口滚动之后会让调动元素顶部和视窗顶部尽可能齐平.如果传入false作为参数,调用元素会尽可能全部出现在视口中(可

控制页面元素的显示和隐藏

CreateTime--2017年7月13日07:30:55Author:Marydon js控制页面元素的显示和隐藏&<c:if></c:if>标签控制页面元素的显示和隐藏 说明:本文的重点在使用后者实现 实例: 医嘱类型分为:长嘱,临嘱,中医三种,页面默认只显示长嘱信息,点击临嘱或中医显示对应信息:选中变色. CSS部分: /* 医嘱:长嘱,临嘱,中医样式显示 Start*/ .yz_td1 { line-height: 28px; height: 28px; padd

元素显隐切换过渡效果的实现

近来看到 饿了么 App和 h5站上,在商家详情页点餐之后,底部放置了一个点击之后能够弹出模态框查看点餐详情的元素,其中有个背景遮罩层的渐进显隐的效果. 凭着我少许的经验,第一时间的想法是觉得这个遮罩层应该是使用 display:none;来控制隐藏和显示的,但是这个属性会破坏 transition动画,也就是说如果遮罩层是使用了这个属性来控制显示与隐藏,那么渐进显隐的效果似乎很难达到,效果应该是瞬间显示与隐藏才对. 使用 Chrome 模拟移动端,查看了一下 饿了么的实现方式,这才想到 饿了么

js如何判断是否在iframe中/JQuery调用iframe父页面元素与方法

//方式一 if (self.frameElement && self.frameElement.tagName == "IFRAME") { alert('在iframe中'); } //方式二 if (window.frames.length != parent.frames.length) { alert('在iframe中'); } //方式三 if (self != top) { alert('在iframe中'); } 第一.在iframe中查找父页面元素的

JQuery调用iframe父页面元素与方法

JQuery操作iframe父页面与子页面的元素与方法 下面简单使用Jquery来操作iframe的一些记录,这个使用纯JS也可以实现. 第一.在iframe中查找父页面元素的方法: $('#id', window.parent.document) 第二.在父页面中获取iframe中的元素方法: $(this).contents().find("#suggestBox") 第三.在iframe中调用父页面中定义的方法和变量: parent.method parent.value 第四.

jQuery基础 -- 如何判断页面元素存在与否

在传统的Javascript里,当我们对某个页面元素进行某种操作前,最好先判断这个元素是否存在.原因是对一个不存在的元素进行操作是不允许的.例如: document.getElementById("someID").innerText("hi"); 如果ID为"someID"的元素不存在,我们将得到Javascript运行错误:document.getElementById("someID") is null 正确的写法应该是

使用JS控制页面元素位置移动

主要使用一下两个函数 parseInt() substr() 首先获取元素的ID var j = document.getElementById("ID"); 然后获取位置属性 var top = j.style.top //这里以控制元素上下位置距离,控制左右的话把top换成left即可 需要注意的是,使用此方法需要把要移动的元素设置为绝对定位,样式中添加    position:absolute; 现在开始移动元素位置了,因为使用方法获取的元素应该为(“0px”)为string字符

JS DOM对象,控制HTML元素

1.认识DOM 文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法.DOM 将HTML文档呈现为带有元素.属性和文本的树结构(节点树). 先来看看下面代码: 将HTML代码分解为DOM节点层次图: HTML文档可以说由节点构成的集合,DOM节点有: 1. 元素节点:上图中<html>.<body>.<p>等都是元素节点,即标签. 2. 文本节点:向用户展示的内容,如<li>...</li>中的Ja

Js/Jquery获取iframe中的元素 在Iframe中获取父窗体的元素方法

在web开发中,经常会用到iframe,难免会碰到需要在父窗口中使用iframe中的元素.或者在iframe框架中使用父窗口的元素 js 在父窗口中获取iframe中的元素  1. 格式:window.frames["iframe的name值"].document.getElementByIdx_x("iframe中控件的ID").click(); 实例:window.frames["ifm"].document.getElementByIdx_