- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在使用纯 javascript 处理淡入淡出函数,这里是代码:
(function() {
var fx = {
easing: {
linear: function(progress) {
return progress;
},
quadratic: function(progress) {
return Math.pow(progress, 2);
},
swing: function(progress) {
return 0.5 - Math.cos(progress * Math.PI) / 2;
},
circ: function(progress) {
return 1 - Math.sin(Math.acos(progress));
},
back: function(progress, x) {
return Math.pow(progress, 2) * ((x + 1) * progress - x);
},
bounce: function(progress) {
for (var a = 0, b = 1, result; 1; a += b, b /= 2) {
if (progress >= (7 - 4 * a) / 11) {
return -Math.pow((11 - 6 * a - 11 * progress) / 4, 2) + Math.pow(b, 2);
}
}
},
elastic: function(progress, x) {
return Math.pow(2, 10 * (progress - 1)) * Math.cos(20 * Math.PI * x / 3 * progress);
}
},
animate: function(options) {
var start = new Date;
var id = setInterval(function() {
var timePassed = new Date - start;
var progress = timePassed / options.duration;
if (progress > 1) {
progress = 1;
}
options.progress = progress;
var delta = options.delta(progress);
options.step(delta);
if (progress == 1) {
clearInterval(id);
options.complete();
}
}, options.delay || 10);
},
fadeOut: function(element, options) {
var to = 1;
this.animate({
duration: options.duration,
delta: function(progress) {
progress = this.progress;
return fx.easing.swing(progress);
},
complete: options.complete,
step: function(delta) {
element.style.opacity = to - delta;
}
});
},
fadeIn: function(element, options) {
var to = 0;
this.animate({
duration: options.duration,
delta: function(progress) {
progress = this.progress;
return fx.easing.swing(progress);
},
complete: options.complete,
step: function(delta) {
element.style.opacity = to + delta;
}
});
}
};
window.fx = fx;
})()
我正在使用以下代码来激活该功能:
document.getElementById('in').addEventListener('click', function() {
FX.fadeIn(document.getElementById('type'), {
duration: 2000,
});
}, false);
但是当我加载页面时,我收到激活码错误。
谁知道我做错了什么?
非常感谢。
最佳答案
通过一些调整,您的代码应该可以正常工作...
fx
而不是 FX
调用对象。为所有选项添加默认值,以防未提供选项(您的示例代码抛出错误,因为 options.complete
未定义)。示例:
this.animate({
duration: options.duration || 1000,
...
complete: options.complete || function() { },
...
});
在设置动画之前调整样式(假设使用 display: none
而不是 opacity: 0
隐藏了一个元素)...示例(对于 淡入
):
element.style.opacity = 0;
element.style.visibility = "visible";
element.style.display = "block";
检查是否需要一个 Action (例如调用 fadeIn
尽管元素已经可见):
isVisible: function(element) {
return element.style.display !== "none" &&
element.style.visibility !== "hidden" &&
element.style.opacity !== "0";
}
// In fadeIn:
if (!this.isVisible(element)) {
...
}
下面是更正后的代码示例:JSFiddle
当然可以进一步调整它,处理一些极端情况(例如,如果在元素当前正在淡出时调用 fadeIn
会发生什么?),我很确定它不适用于所有浏览器(旧 IE)...但我希望我指出了正确的方向。 :)
关于javascript - fadeIn 和 fadeOut 功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19272429/
我正在努力编写我的第一个 jQuery 脚本。我的页面上有一个 DIV,该 DIV 设置为通过 CSS 隐藏。然后,我运行这个脚本以使其淡入、淡出,然后再次淡入: (function($) {
我刚刚学习了一些 jQUery,以便在我为酒店创建的网站上建立一个基本的图片库,但目前还没有计划。我明白了,所以箭头会在图像中循环(还没有动画),但我决定箭头应该在图像悬停时淡入,而不是淡出,但这不知
我有一个具有不同模块的交互式表单系统,其中每个模块的表单包含在不同的 div 元素内。当我从一个模块更改为另一个模块时,我经常这样做: $('#module_1').hide(); $('#modul
我想在滚动页面时淡入我的标题。这是我到目前为止所得到的,除了 .fadeIn() 之外一切正常。 $(document).scroll(function() { if( $(this).scr
我有一个 jquery 错误,我已经找了好几个小时了,我不知道出了什么问题......我有这段代码: $(document).ready(function(){ $('#ulPhotos a
我试图搜索并查看是否在此下方列出了任何内容,但我什么也没看到。我有一个使用 Isotope 布局的图库,它工作正常,但是在页面加载时,图库中的图像显示在页面中间,然后一旦加载就跳转到各自的位置。 我试
如果我执行更改表格尺寸的 fadeIn(),Firefox 会剪切新显示行的背景。 如果我在远离标签的地方单击焦点,然后单击返回,背景将恢复。 Chrome 中没有裁剪问题。我在 Firefox 26
现在,当我淡入叠加层 div 时,它会自动设置为 display: block;。但我希望它是 display: table。有没有像 fadein() 这样的 jQuery 函数可以做到这一点? j
我有这个函数,非常适合延迟加载。 panel.find('img[data-src]').each(function(){ element = $(this);
有人可以告诉我我做错了什么吗: 风格: .warning{border: 1px solid #F0AAAA; background:#FFBABA; color: #C90000;} 标记: A
当我单击切换按钮时,它会将元素的样式属性从“不显示”更改为“阻止”。现在,当发生这种情况时,我想为菜单的左侧位置设置动画。我有这样的代码,但工作有问题,而且,当它应该返回到右侧时,它出现在左侧.. v
我有这段代码,可以在一定的延迟后切换图像的不透明度: $(".pattern-overlay").css("background","black").delay(2000).queue(functio
我对 jQuery 很陌生,所以请耐心等待。 我想逐步淡入列表。但我的功能出了什么问题。请问有人可以帮助我吗? 非常感谢! 编辑:我检查了所有内容,没有发现任何错误。主体具有所需的类。 $(".sid
我希望有人能帮助我。我遇到以下问题: http://jsfiddle.net/zhPAF/ 标记: About Us
这是我的代码..我想要应用淡入淡出,我按照下面的方式做了,但淡入淡出没有应用 $(document).ready(function(){ var i = 1; $
我使用 jquery 加载和淡入目标 div 中的内容。这很好用,我喜欢它看起来很整洁。但是,如果您单击链接多次(快速)淡入内容,则内容似乎不会完全不透明。因此,如果我按链接两次(再次非常快),它只能
非常简单的 jQuery 元素作为实践。我已经设置了一个按钮(#btn),我想看看当我单击该按钮时是否可以淡入 Div。我设置了一个 Fiddle,代码本身有什么问题吗? 链接到JsFiddle .
我正在开发一个网站,我希望每次打开网页时都会淡入文本,所以我做了这样的事情: $(document).ready(function() { $('#title').fadeIn(100); }
请有人让我摆脱痛苦......我已经投入了一个又一个小时...... 我已经(这是缩写)创建了一个函数,该函数使用 append 将框添加到页面。问题是一旦添加了它们,淡入功能就不起作用了。 但是,如
与我在这里看到的其他帖子不同,我使用 jQuery fadeIn 来处理可变文本而不是图像。我看到它逐渐褪色,最后一个脉冲变成全彩。我希望它能逐渐淡出。我已将其发布在 jsFiddle 上:http:
我是一名优秀的程序员,十分优秀!