过去,我经常使用 jquery,我喜欢 jquery 的一点是它通过简单且轻量级的语法提供了许多有用的方法。最常用的 jquery 方法之一是效果方法 - 用于为网站创建动画效果。
例如:
w3schools 在这里列出了所有 jquery 效果方法
但是现在随着大量 js 库的增长,jquery 似乎已经过时了,在一些项目中,开发人员必须用纯 js 替换 jquery 代码。
轻松创建与 hide() / show() 相同的函数,只需编辑显示样式即可
element.style.display = 'block' // or none
但是对于更复杂的效果,如 fadein()/fadeout(),我们需要编写更多代码。
在 vanilla js 中编写效果方法的另一个问题是语法冗长。你可以用 jquery 方法看到:
$(".myclass").slidedown();
它非常易读且直观,你可以通过jquery选择器找到元素,然后调用slidedown方法作为该元素的方法。
如果您之前定义了 sliptoggle 方法,则代码在 vanilla js 中实现相同的功能:
const element = document.queryselector(".myclass"); slidetoggle(element);
你查询元素,然后将其传递给slidetoggle()函数,它看起来比使用jquery的示例更不原生,可读性更差。
这里的技巧是使用 htmlelement.prototype 向 html 元素添加一个方法,并且可以将effect函数用作 html 元素的方法。为了简单起见,我们定义 hide() 方法:
HTMLElement.prototype.hide = function() { this.style.display = 'none' } document.querySelector(".myClass").hide()
为了重用,我在这里创建了一些普通的 js 方法来实现效果。只需将其放在代码库中的某个位置并将其用作 html 元素的本机方法即可。