我将名为jQuery
和slideRightShow()
的{{1}}效果扩展为一些与slideLeftHide()
和slideUp()
类似的功能,如下所示。不过,我还想实施slideDown()
和slideLeftShow()
。
我知道有大量的库提供这种类型的东西(我想避免添加另一大组slideRightHide()
文件),但任何人都可以提供一个简单的例子来说明如何实现{{1 }或javascript
?
slideLeftShow()
以上slideRightHide()
功能从左侧开始显示图像,并向右侧前进。 我正在寻找一些方法来做同样的事情,但从右侧开始,向左侧进展 。谢谢!
修改
jQuery接口有我需要的东西(我基本上需要他们的“向右滑动”和“向左滑出”功能),但我无法使用jQuery 1.3:http://interface.eyecon.ro/demos/ifx.html。此外,他们的演示似乎已经破解,并且在投出一百万个错误之前它只会进行一次幻灯片。
答案 0 :(得分:184)
此功能作为jquery ui http://docs.jquery.com/UI/Effects/Slide的一部分包含在内,如果您想使用自己的名称对其进行扩展,可以使用此功能。
jQuery.fn.extend({
slideRightShow: function() {
return this.each(function() {
$(this).show('slide', {direction: 'right'}, 1000);
});
},
slideLeftHide: function() {
return this.each(function() {
$(this).hide('slide', {direction: 'left'}, 1000);
});
},
slideRightHide: function() {
return this.each(function() {
$(this).hide('slide', {direction: 'right'}, 1000);
});
},
slideLeftShow: function() {
return this.each(function() {
$(this).show('slide', {direction: 'left'}, 1000);
});
}
});
您需要以下参考资料
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/jquery.effects.core.js"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/jquery.effects.slide.js"></script>
答案 1 :(得分:33)
不要忘记填充和边距......
jQuery.fn.slideLeftHide = function(speed, callback) {
this.animate({
width: "hide",
paddingLeft: "hide",
paddingRight: "hide",
marginLeft: "hide",
marginRight: "hide"
}, speed, callback);
}
jQuery.fn.slideLeftShow = function(speed, callback) {
this.animate({
width: "show",
paddingLeft: "show",
paddingRight: "show",
marginLeft: "show",
marginRight: "show"
}, speed, callback);
}
添加了速度/回调参数后,它是slideUp()
和slideDown()
的完全替代品。
答案 2 :(得分:9)
您可以通过在自己的脚本文件中添加这些行来为jQuery库添加新功能,并且可以轻松使用fadeSlideRight()
和fadeSlideLeft()
。
注意:您可以根据喜欢750px的实例来更改动画的宽度。
$.fn.fadeSlideRight = function(speed,fn) {
return $(this).animate({
'opacity' : 1,
'width' : '750px'
},speed || 400, function() {
$.isFunction(fn) && fn.call(this);
});
}
$.fn.fadeSlideLeft = function(speed,fn) {
return $(this).animate({
'opacity' : 0,
'width' : '0px'
},speed || 400,function() {
$.isFunction(fn) && fn.call(this);
});
}
答案 3 :(得分:5)
如果您想改变速度并包含回调,只需添加如下:
jQuery.fn.extend({
slideRightShow: function(speed,callback) {
return this.each(function() {
$(this).show('slide', {direction: 'right'}, speed, callback);
});
},
slideLeftHide: function(speed,callback) {
return this.each(function() {
$(this).hide('slide', {direction: 'left'}, speed, callback);
});
},
slideRightHide: function(speed,callback) {
return this.each(function() {
$(this).hide('slide', {direction: 'right'}, speed, callback);
});
},
slideLeftShow: function(speed,callback) {
return this.each(function() {
$(this).show('slide', {direction: 'left'}, speed, callback);
});
}
});