首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在没有jQuery的情况下在外部单击时模糊div

基础概念

在没有使用jQuery的情况下,可以通过纯JavaScript来实现外部点击时使div模糊的效果。这通常涉及到事件监听和DOM操作。

相关优势

  1. 性能优化:纯JavaScript通常比引入整个库更轻量,加载和执行速度更快。
  2. 减少依赖:不依赖于外部库可以减少项目的复杂性和潜在的兼容性问题。
  3. 灵活性:直接使用原生API可以提供更大的灵活性和控制力。

类型与应用场景

  • 类型:这是一种基于事件的交互设计。
  • 应用场景:适用于需要响应用户点击外部区域以关闭或隐藏某个元素的界面,如弹出框、菜单等。

示例代码

以下是一个简单的示例,展示了如何实现这一功能:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blur Div on Outside Click</title>
<style>
  .blur {
    filter: blur(5px);
  }
</style>
</head>
<body>

<div id="myDiv" style="width: 200px; height: 200px; background-color: lightblue;">
  Click outside this box to blur it.
</div>

<script>
  document.addEventListener('DOMContentLoaded', function() {
    var myDiv = document.getElementById('myDiv');
    
    // Function to check if the click was outside the div
    function isClickOutside(event) {
      return !myDiv.contains(event.target);
    }
    
    // Add event listener for clicks on the document
    document.addEventListener('click', function(event) {
      if (isClickOutside(event)) {
        myDiv.classList.add('blur');
      } else {
        myDiv.classList.remove('blur');
      }
    });
  });
</script>

</body>
</html>

遇到的问题及解决方法

问题:为什么点击div内部时也会触发模糊效果?

原因:可能是因为事件冒泡导致的,即点击div内部时,事件也传递到了文档级别。

解决方法:在div内部的点击事件中阻止事件冒泡。

代码语言:txt
复制
myDiv.addEventListener('click', function(event) {
  event.stopPropagation();
});

通过这种方式,可以确保只有当点击发生在div外部时,才会应用模糊效果。

总结

通过上述方法,可以在不使用jQuery的情况下,有效地实现点击页面其他部分时对特定div进行模糊处理的功能。这种方法不仅提高了性能,还增加了代码的可维护性和灵活性。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

在没有源代码的情况下对Linux二进制代码进行模糊测试

在drAFL的帮助下,我们就可以在没有源代码的情况下对LInux二进制代码进行模糊测试了。 ?...drAFL 原始版本的AFL支持使用QEMU模式来对待测目标进行黑盒测试,因此在使用drAFL之前,作者强烈建议大家先尝试使用一下原始版本的AFL,如果达不到各位的目标,再来使用drAFL。...除此之外,你还需要设置AFL的fork服务器(AFLNOFORKSRV=1),或者设置“AFLSKIPBIN_CHECK=1”。具体请参考代码构建部分的第五步。...注意:请注意,针对64位代码库,你需要使用64位的DynamoRIO,如果使用的是32位的代码库,你就需要使用32位的DynamoRIO了,否则工具将无法正常运行。.../afl_test @@ 注意:对于afl_test测试样例,可能需要大概25-30秒的执行时间。

1.6K10
  • WEB入门之十四 jQuery事件

    test中调用,然后给onload事件绑定test函数即可 虽然示例5.3把问题解决了,但是在某些情况下仍然不能满足需求,例如,如果脚本代码分布在多个外部js文件中,而每个js文件都需要使用onload...jQuery在遵循W3C规范的情况下,对event对象做了进一步封装,使得该对象在各大浏览器下都可以正常运行。...div>div> 该示例与5.12差不多,只是由hover事件换成了toggle事件,当鼠标单击绿色的标题时,下面的内容就会显示出来;当鼠标再次单击绿色的标题时,下面的内容就会隐藏起来...把bind换成live后,表格中的任何一行在单击时都可以改变背景色,包括动态创建的行。...,因此页面一打开,在用户没有进行任何操作的情况下就会先后弹出两个对话框。

    10810

    WEB入门之十四 jQuery事件

    test中调用,然后给onload事件绑定test函数即可 虽然示例5.3把问题解决了,但是在某些情况下仍然不能满足需求,例如,如果脚本代码分布在多个外部js文件中,而每个js文件都需要使用onload...jQuery在遵循W3C规范的情况下,对event对象做了进一步封装,使得该对象在各大浏览器下都可以正常运行。...div> div> 该示例与5.12差不多,只是由hover事件换成了toggle事件,当鼠标单击绿色的标题时,下面的内容就会显示出来;当鼠标再次单击绿色的标题时...把bind换成live后,表格中的任何一行在单击时都可以改变背景色,包括动态创建的行。...,因此页面一打开,在用户没有进行任何操作的情况下就会先后弹出两个对话框。

    17210

    JavaScript 开发者需要了解的15个 DevTools 技巧

    查找未使用的 JavaScript Chrome 的 Coverage 面板可以让你能够快速找到 JavaScript 有没有被使用。...单击任何 JavaScript 文件,未使用的代码会用红条突出显示。 5. 找到DOM更改代码 当事件被触发时,很难确定哪个函数负责更新特定的 HTML DOM 元素。...网速节流 在快速,可靠的网络上使用高性能的设备测试你的站点可能并不能表示实际使用情况。你的用户可能处在慢速的网络环境下。...这可以让你: 在不需要构建工具的情况下在实时编辑脚本或样式 离线开发一个网站,该网站通常会要求第三方域提供基本文件 临时替换不必要的脚本,例如 analytics。...可以在 Chrome 中或使用任何代码编辑器来编辑文件,每当重新加载页面时,都将使用更新的版本。 14. 管理客户端存储 网页可以使用多种技术将数据存储在客户端上。

    4.9K20

    jQuery 双击事件(dblclick)时,不触发单击事件(click)

    出处:jQuery 双击事件(dblclick)时,不触发单击事件(click) 在jQuery的事件绑定中,执行双击事件(dblclick)时能触发两次单击事件(click)。...即一个标签元素(如div等),如果元素同时绑定了单击事件(click)和双击事件(dblclick),那么执行单击事件(click)时,不会触发双击事件(dblclick), 执行双击事件(dblclick...)时却会触发两次单击事件(click)。...mouseout,click,dblclick; 在双击事件(dblclick),触发的两次单击事件(click)中,第一次的单击事件(click)会被屏蔽掉,但第二次不会。...}) 从测试结果来看,如果前后两次点击的时间在 300ms 左右的时候,还是很容易出现 click 和 dblclick 事件被“同时”调用的情况,而如果间隔的时间更短或更长,则只会有 click 或

    5.4K30

    Web API--入门--(一)ASP.NET Web API 2(C#)入门

    我正在使用本教程的空模板,因为我想显示没有MVC的Web API。一般来说,你不需要知道ASP.NET MVC来使用Web API。 添加模型 一个模型是代表你的应用程序中的数据的对象。...当然,在实际应用中,您可以查询数据库或使用其他外部数据源。 控制器定义了返回产品的两种方法: 该GetAllProducts方法将整个产品列表作为IEnumerable 类型返回。...使用Javascript和jQuery调用Web API 在本节中,我们将添加一个使用AJAX调用Web API的HTML页面。我们将使用jQuery来进行AJAX调用,并且还可以使用结果更新页面。...jQuery getJSON函数发送一个AJAX请求。对于响应包含JSON对象的数组。该done函数指定在请求成功时调用的回调。在回调中,我们使用产品信息更新DOM。...如果您输入的ID无效,则服务器返回HTTP错误: ? 使用F12查看HTTP请求和响应 当您使用HTTP服务时,查看HTTP请求和请求消息非常有用。

    4.3K10

    继续死磕前端

    大可放心,jquery 有容错机制,即使没有找到元素,也不会出错。还为你提供了验证是否找到的方法,那便是 length 属性。...(比如单击onclick事件),如果此对象定义了此事件的处理程序,那么此事件就会调用这个处理程序,如果没有定义此事件处理程序或者事件返回true,那么这个事件会向这个对象的父级对象传播,从里到外,直至它被处理...,它有两种情况: 1、移动现有标签的位置 2、将新创建的标签插入到现有的标签中 创建新标签 var $div = $('div>'); //创建一个空的div var $div2 = $('div>...div id="div1">div> 2、 prepend() 和 prependTo():在现存元素的内部,从前面放入元素 3、 after() 和 insertAfter():在现存元素的外部...,从后面放入元素 4、 before() 和 insertBefore():在现存元素的外部,从前面放入元素 删除标签 $('#div1').remove(); 3.4 对象 JavaScript 的对象

    2.8K10

    WEB入门之十六 操作DOM节点

    7.1.2 插入节点 在实际开发中,有些节点需要动态的插入到页面中,这时可以通过jQuery提供好的一些函数来实现,详见表7-1-1所示。...如果把代码中的prepend换成before函数,其他不变 如果把代码中的before换成after函数,其他不变 通过对比可以得出before和after这两个函数的异同点:这两个函数都是向元素外部插入新节点的...jQuery针对节点操作提供了很多函数供开发人员使用,这些函数很多比较相似,大家在使用的时候要注意区分。 ​...添加节点时,需要先单击选中某个一级或二级节点,然后在文本框中填写新添加的节点名,单击【添加】按钮把节点名作为新节点添加到选中的节点下面。删除节点只实现删除三级节点即可。...当单击【修改】按钮时,单元格中的文本信息替换为文本框;单击【确定】按钮时,文本框中的数据显示到单元格中。

    11310

    【jQuery动画】显示与隐藏效果

    jQuery中内置了一系列方法用于实现动画,当这些方法不能满足实际要求时,用户也可以自定义动画。...fn:在动画完成时执行的函数。 实现效果 当点击“显示”,则div中的内容会显示,并弹出提示框,点击“隐藏”则隐藏内容,弹出提示框,点击“切换”,则会在二者之间切换。...>div> jQuery部分 思路: 1、引入jQuery,如图 2、添加ready函数,ready是jQuery的文档就绪函数,它用于防止文档在完全加载之前允许jQuery...代码,如果在文档没有完全加载之前就运行函数,操作可能失败; 3、给三个按钮添加点击事件,这里用到筛选选择器eq; 4、实现单击显示按钮,控制div元素的显示(show),并弹出提示框(alert);...5、实现单击隐藏按钮,控制div元素的隐藏(hide),并弹出提示框; 6、实现单击切换按钮,控制元素显示与隐藏切换(toggle)。

    6.8K10

    WEB入门之十六 操作DOM节点

    7.1.2 插入节点 在实际开发中,有些节点需要动态的插入到页面中,这时可以通过jQuery提供好的一些函数来实现,详见表7-1-1所示。...如果把代码中的prepend换成before函数,其他不变 如果把代码中的before换成after函数,其他不变 通过对比可以得出before和after这两个函数的异同点:这两个函数都是向元素外部插入新节点的...jQuery针对节点操作提供了很多函数供开发人员使用,这些函数很多比较相似,大家在使用的时候要注意区分。...添加节点时,需要先单击选中某个一级或二级节点,然后在文本框中填写新添加的节点名,单击【添加】按钮把节点名作为新节点添加到选中的节点下面。删除节点只实现删除三级节点即可。...当单击【修改】按钮时,单元格中的文本信息替换为文本框;单击【确定】按钮时,文本框中的数据显示到单元格中。

    8910

    Ajax与jQuery异步加载数据

    的div将展示Ajax数据 (document).ready(function(){})指页面其他元素加载完成后开始加载Ajax数据,此时,浏览器不会有加载条和转圈的情况出现。...在动态更新页面的情况下,用户无法回到前一个页面状态,这是因为浏览器仅能记下历史记录中的静态页面。...一个被完整读入的页面与一个已经被动态修改过的页面之间的可能差别非常微妙;用户通常都希望单击后退按钮,就能够取消他们的前一次操作,但是在Ajax应用程序中,却无法这样做。...不过开发者已想出了种种办法来解决这个问题,HTML5之前的方法大多是在用户单击后退按钮访问历史记录时,通过创建或使用一个隐藏的IFRAME来重现页面上的变更。...(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态)。

    10.9K20

    js事件防止冒泡

    jQuery对这个事件对象进行了必要的扩展,从而在不论什么浏览器中都能够使用这个属性。通过.target,能够确定DOM中首先接收到事件的元素(即实际被单击的元素)。...默认操作 假设我们把单击事件处理程序注冊到一个锚元素,而不是一个外层的div>上,那么就要面对另外一个问题:当用户单击链接时。浏览器会载入一个新页面。...在这样的情况下,.preventDefault()方法则能够在触发默认操作之前终止事件 。 提示 当在事件的环境中完毕了某些验证之后,一般会用到.preventDefault()。比如。...事件传播和默认操作是相互独立的两套机制,在二者不论什么一方发生时,都能够终止还有一方。假设想要同一时候停止事件传播和默认操作,能够在事件处理程序中返回false。...这是对在事件对象上同一时候调用.stopPropagation()和.preventDefault()的一种简写方式。

    2.5K40

    Jump Start Bootstrap 第4章

    现在,我们有了一个简单的下拉菜单,在单击链接时显示菜单。我们可以在浏览器中查看它,如图所示。 ? 让我们结合使用下拉式插件和我们在前一章中创建的标签和按钮菜单。...Bootstrap为下拉插件提供了一些附加事件,它们是: show.bs.dropdown: 这个事件在句柄被单击时触发;下拉句柄收到请求去显示隐藏菜单; shown.bs.dropdown: 这个事件在菜单被显示时触发...当你点击按钮时,你会看到一个类似于插图效果的样式;在再次单击时,它返回到原来的样式,如图所示。data-toggle=”button”实现了这个切换功能。 ?...添加data-dismiss使按钮在单击时关闭模式对话框。 对于本体,我们需要一个包含类modal-body的div>元素。您可以将几乎任何内容放到该元素中。...它应该有一个data-target属性来告诉Bootstrap,在一个网页中可以有多个模式对话框。我们还需要定义的data-toggle属性来确定单击时触发的内容。

    28.5K40

    WEB入门之十八 动画特效

    核心技能部分​ 8.1 显示/隐藏动画 在DOM中,可以通过样式属性display来控制元素的显示和隐藏,但是这没有动画效果。jQuery提供了实现显示/隐藏动画的函数,详见表8-1-1所示。...,该参数的取值有: Ø 无参数:元素将直接显示/隐藏,没有动画特效 Ø slow:慢速(在600ms内)显示/隐藏 Ø normal:正常速度(在400毫秒内)显示/隐藏 Ø fast:快速(在200毫秒内...下面我们对上一个示例进行简单改造,单击按钮时,让图片显示;再次单击时,让图片隐藏;依次循环... ......,该参数的取值有: 无参数:元素将直接显示/隐藏,没有动画特效 slow:慢速(在600ms内)滑动 normal:正常速度(在400毫秒内)滑动 fast:快速(在200毫秒内)滑动 自定义数字...任务实训部分​ 1:表格展开/关闭动画 ​训练技能点​ jQuery内置动画特效函数 ​需求说明​ 实现一个如图8.2.1所示的表格,当单击某个分组时,该分组下面的成员就显示/隐藏。

    10310

    AJAX常见面试问题

    3.有没有遇到过这种情况 在ie浏览器中 后台图片数据已经改变 但是客户端没有发生改变 该怎么处理?...缺点: .AJAX干掉了Back和History功能,即对浏览器机制的破坏。 在动态更新页面的情况下,用户无法回到前一个页面状态,因为浏览器仅能记忆历史记录中的静态页面。...一个被完整读入的页面与一个已经被动态修改过的页面之间的差别非常微妙;用户通常会希望单击后退按钮能够取消他们的前一次操作,但是在Ajax应用程序中,这将无法实现。...答案是肯定的,用过Gmail的知道,Gmail下面采用的Ajax技术解决了这个问题,在Gmail下面是可以后退的,但是,它也并不能改变Ajax的机制,它只是采用的一个比较笨但是有效的办法,即用户单击后退按钮访问历史记录时...(例如,当用户在Google Maps中单击后退时,它在一个隐藏的IFRAME中进行搜索,然后将搜索结果反映到Ajax元素上,以便将应用程序状态恢复到当时的状态。)

    1.9K20
    领券