
JavaScript文章
文章平均质量分 63
Alcantara6
多多分享交流技术细节
展开
-
关于JavaScript函数的参数按值传递而不是按引用传递的分析
这是个人自制的分析图,针对《JavaScript高级程序设计》第4.1.3节的例子,讲得非常精辟,但讲得还不是特别细,本人细细读了好多遍,按个人的理解做成以下图谱。 作为新手理解定有片面肤浅之处,望阅者多多指教。原创 2017-09-12 19:55:52 · 479 阅读 · 0 评论 -
【移动端事件】swiper左右滑动时禁止页面上下滚动
某些swiper类插件,左右滑动时会导致页面上下滚动,如果在touchmove事件中直接使用event.preventDefault(),就会彻底阻止触摸滑动,给用户的感受就是划不动。以下是增加的fix code // 左右滑动时阻止页面上下滑动 var touchElement = {}; var $slides = $('.am-slider'); if ($...原创 2019-07-16 12:31:17 · 7514 阅读 · 0 评论 -
移动端事件疑难杂症总结
移动端事件梳理click事件 300ms延迟禁用缩放<meta name="viewport" content="user-scalable=no"/>html { -ms-touch-action: manipulation; /* IE10及以下 */ touch-action: manipulation;}适用于:Chrome on And...原创 2019-07-07 13:09:29 · 311 阅读 · 0 评论 -
DOM获取尺寸、位置数据字典
关于DOM尺寸、位置相关的api,非常混乱且容易混淆,于是特别整理出一个数据字典。注意width()和offsetWidth、clientWidth在插入DOM树之前为0涉及CSS的定位,以子元素margin为准;否则以子元素border为准,例如element.style, jquery的position()标准模式下documentElement是html的尺寸,b...原创 2019-06-30 17:29:29 · 251 阅读 · 0 评论 -
addEventListener事件监听使用匿名函数作为回调函数的问题
addEventListener事件监听绑定匿名函数,不能用removeEventListener解除绑定,JS认为这不是对应的那个函数。因此,如果多次执行addEventListener(例如addEventListener事件绑定写在在mousemove事件内),使用匿名函数作为回调函数就是进行了多个函数的绑定,触发事件时会执行多次;具名函数则是绑定的唯一这个函数,触发时只执行一次。...原创 2018-06-01 13:22:14 · 3461 阅读 · 0 评论 -
[JavaScript]元素尺寸定位总结[含兼容性、文档模式测试]
1. 基本概念相对于定位了的父容器注意不含滚动条宽度相当于content+padding注意不含滚动条宽度注意不含border相对定义了relative的父容器,以子元素margin左上角,父元素padding左上角为准offsetWidthclientWidthscrollWidt原创 2018-04-15 00:28:06 · 394 阅读 · 0 评论 -
debug过程中对加载顺序、对象属性、Vue数据传递和计算属性等问题的总结
异步加载JavaScrip脚本放在&amp;lt;head&amp;gt;内:文档页面加载之前装载(不执行代码, 需调用才执行或事件触发执行)。脚本放在&amp;lt;body&amp;gt;内:当页面被加载时执行,用来动态生成页面的一些内容。增加延迟脚本defer属性 ** – 只适用外部脚本文件 – 立即下载,但延迟执行,&amp;lt;/html&amp;gt;标签之后执行 – 多个原创 2018-03-11 16:08:27 · 1695 阅读 · 0 评论 -
【干货】前端重要概念精炼总结--持续更新
1. Q: JavaScript脚本放在哪里 A: 放在header中的脚本,在页面加载之前就被装载,待调用(例如事件),类似函数声明;放在body中的脚本,在页面加载完成后就执行,类似于执行一个函数。原创 2018-01-17 19:34:53 · 479 阅读 · 0 评论 -
用jQuery编写放大镜效果以及图片异步加载的测试
自创jQuery放大镜效果,主要运用offset()、width()、height()、e.pageX、e.pageY等关于位置的方法。核心思想:缩略图的尺寸与放大图尺寸的比值 = 放大镜相对缩略图的坐标X(或Y)/放大图相对包裹它的外框坐标X(或Y)的比值其中有几个关键点需要注意,还有两个bug,调试过程没少为此绞尽脑汁,算是从坑里爬出来,最终得到这样一套程序。问题值得思考、研究和总结,...原创 2017-09-27 22:10:07 · 530 阅读 · 0 评论 -
JS原生数组迭代方法的应用
原生JS的数组迭代方法应用非常广,相比于for循环遍历,代码结构简单、规整,但使用也要非常注意。 以下是本人学习过程中对数组迭代方法的典型应用。1. map()和forEach()方法填坑。 这是Vue获取API新闻列表中的代码片段,计算属性processedPosts,对原始数组results添加imgUrl。 map()方法 forEach()原创 2018-01-18 02:18:41 · 397 阅读 · 0 评论 -
从jQuery的remove()和原生JS的removeChild()方法再观jQuery对象和DOM对象的关系
jQuery对象是通过jQuery包装DOM对象后产生的对象。jQuery的remove()方法和原生js的removeChild()方法都是从DOM中删除节点,方法的返回值是:1. remove()方法:返回一个指向已被删除的节点的引用,这个节点元素还可以使用;2. removeChild()方法:删除的节点仍然存在于内存,只是没有添加到当前文档的DOM树中。可以总结为:remove()方法移除...原创 2018-01-23 00:57:10 · 11436 阅读 · 0 评论 -
浏览器中的 ES6 module 实现
捣腾了一晚上,发现在浏览器实现ES6 module必须,使用firefox54以上和chrome60以上,并且chrome仍然有问题,跨域报错,得放在服务器下,firefox可以实现。文章转载至众成翻译-文蔺http://www.zcfy.cc/article/ecmascript-modules-in-browsers-2744.htmlES6 的模块特性转载 2017-12-13 00:27:10 · 1636 阅读 · 0 评论 -
[JavaScript,ES6]函数声明提升和预解析的总结和试验
1. 变量的声明被提前到作用域顶部,赋值保留在原地2. 函数声明整个“被提前” (且后面不再重新“赋值”)3. 函数表达式时,只有变量“被提前”了,函数没有“被提前”4. 在块中定义的函数声明或函数表达式,只会提升其声明部分,也就是只提升变量名,不提升函数的定义哦。不要在块中声明函数!5.如果在提升的时候发生重命名了怎么办? 首先还是都会提升(函数声明整个“被提前”,且后原创 2017-12-09 18:42:31 · 1307 阅读 · 0 评论 -
阻止事件冒泡和围绕.on()方法 [.selector]事件委托中冒泡情况的探讨
2019-7-23更新:1. document和body代理事件,在某些浏览器无效,目前发现在微信浏览器无效。2. 前端使用模板引擎渲染的节点,可能滞后与事件的绑定,因此这种情况下最适合事件代理。一、事件冒泡和阻止事件冒泡事件冒泡是JavaScript的核心概念之一,它的原理很简单,但真正应用起来还是有不少的坑。这里说一说关于阻止事件冒泡的本质。我们都知道阻止事件冒泡...原创 2017-10-04 23:02:15 · 2759 阅读 · 0 评论