PHP前端开发

Vanilla JS 效果方法

百变鹏仔 3天前 #JavaScript
文章标签 效果

过去,我经常使用 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 元素的本机方法即可。