不含JQuery的香草Javascript .fadein().fadeOut()

毗湿奴

我正在为IE10 +开发,因此我决定不使用JQuery。我将自定义javascript函数编写为Select,Fadein,FadeOut等,并且工作正常。但是我喜欢使用JQuery样式的函数(Object.fadeIn(),Object.FadeOut()等)。

我使用的不是JQuery Selector。

function _(el){
    return document.getElementById(el);
}

当我需要选择一个Dom对象时,我使用它。

var myButton = _("button");

当我需要淡入或淡出任何对象时,我可以使用它。

function fade(type, ms, el) {
  var isIn = type === 'in',
    opacity = isIn ? 0 : 1,
    interval = 50,
    duration = ms,
    gap = interval / duration;

  if(isIn) {
    el.style.display = 'inline';
    el.style.opacity = opacity;
  }

  function func() {
    opacity = isIn ? opacity + gap : opacity - gap;
    el.style.opacity = opacity;

    if(opacity <= 0) el.style.display = 'none'
    if(opacity <= 0 || opacity >= 1) window.clearInterval(fading);
  }

  var fading = window.setInterval(func, interval);

}

这是淡化我的按钮的特定代码

fade('out', 500, myButton);

我喜欢这样使用 _( "myButton" ).fadeIn( 100 );

更新:诀窍是使用原型函数“-”添加其他功能,例如fadein(),fadeOut()。

琥珀灯

这将达到目的:

function _(el) {
  if (!(this instanceof _)) {
    return new _(el);
  }
  this.el = document.getElementById(el);
}

_.prototype.fade = function fade(type, ms) {
  var isIn = type === 'in',
    opacity = isIn ? 0 : 1,
    interval = 50,
    duration = ms,
    gap = interval / duration,
    self = this;

  if(isIn) {
    self.el.style.display = 'inline';
    self.el.style.opacity = opacity;
  }

  function func() {
    opacity = isIn ? opacity + gap : opacity - gap;
    self.el.style.opacity = opacity;

    if(opacity <= 0) self.el.style.display = 'none'
    if(opacity <= 0 || opacity >= 1) window.clearInterval(fading);
  }

  var fading = window.setInterval(func, interval);
}

_('myButton').fade('out', 500);

从这里开始,您可以_使用任何类似jQuery的函数扩展对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jQuery停止fadeOut / fadeIn循环

来自分类Dev

jQuery停止fadeOut / fadeIn循环

来自分类Dev

jQuery fadeIn / fadeOut而不是fadeToggle

来自分类Dev

jQuery的FadeOut,Load和FadeIn

来自分类Dev

jQuery FadeIn和FadeOut后台命令

来自分类Dev

jQuery FadeIn / fadeOut无法正常运行

来自分类Dev

jQuery fadeIn()和fadeOUt()毫不延迟

来自分类Dev

jQuery Fadein / Fadeout后保持<a>文本

来自分类Dev

jQuery图像src fadeOut fadeIn效果

来自分类Dev

如何从<div>元素触发jQuery fadeIn()fadeOut()

来自分类Dev

在纯JavaScript中实现FadeOut / FadeIn

来自分类Dev

Javascript测验数组和fadeIn / fadeOut

来自分类Dev

Javascript fadeIn fadeOut不断淡入(没有JQuery!)

来自分类Dev

fadeIn,fadeOut的语法

来自分类Dev

fadeIn()和fadeOut()innerhtml

来自分类Dev

jQuery fadeOut和SlideUp,然后fadeIn和SlideDown

来自分类Dev

jQuery fadeIn和fadeOut与IE8不兼容

来自分类Dev

jQuery fadeOut和fadeIn背景图片

来自分类Dev

Fadein和Fadeout停止jquery函数正常工作

来自分类Dev

jQuery hide()和fadeOut(),show()和fadeIn()之间的区别

来自分类Dev

jQuery触发菜单上的fadeIn和fadeOut

来自分类Dev

与CSS中的过渡同时使用jQuery中的fadeIn和fadeOut

来自分类Dev

Bootstrap 4打破了我的jQuery fadeOut / fadeIn函数?

来自分类Dev

jQuery fadeIn和fadeOut将img放在顶部

来自分类Dev

使fadeIn和fadeOut效果在jquery中顺利工作

来自分类Dev

jQuery fadeIn和fadeOut与IE8不兼容

来自分类Dev

两个浏览器的fadeIn fadeOut jQuery

来自分类Dev

jQuery fadeOut和SlideUp,然后fadeIn和SlideDown

来自分类Dev

使用jQuery fadeIn()和fadeOut()的正确方法是什么?