遍历img元素并随机应用幻灯片效果(上,下,左,右)

凯特万·托里亚(Ketevan Toria)

我有下面的代码,我通过IMG元素循环,要随机应用slideUp(), slideDown(), slideLeft()slideRight()对他们的影响:

    var sliderEffects = ["slideUp", "slideDown", "slideLeft", "slideRight"];
    function slideLeft(){
        console.log("slide left");
    }
    function slideLeft(){
        console.log("slide right");
    }
    function randomFrom(items) {
        return items[Math.floor(Math.random()*items.length)];
    }
    // console.log(randomFrom(effects));
    $c.each(function(){
        $(this).find('img:gt(0)').hide();

        setInterval(function () {           
            $(this).find(':first-child')
             [randomFrom(sliderEffects)]()
             .next('img')
             .fadeIn()
             .end()
             .appendTo(this)
         }.bind(this), 3000 + Math.random()*4000); // 4 seconds
    });

使用slideUp()slideDown()并且效果很好,因为它们是jQuery方法。当我尝试调用方法时会发生问题:slideLeft()slideRight()我尝试扩展元素对象以添加我的属性:

jQuery.fn.extend({
      slideLeft: function() {
            console.log("slide left");
      },
      slideRight: function() {
            console.log("slide right");
      },
    });

那么,关于如何随机执行不同回调的任何想法?

凯特万·托里亚(Ketevan Toria)

所以,这是对我有用的^ _ ^

var sliderEffects = ["myslideUp", "slideLeft", "slideRight", "myslideDown"];


(function($) {
    $.fn.slideLeft = function() {  
        return this.animate({left:jQuery(this).width()},1000) };
})(jQuery);

(function($) {
    $.fn.slideRight = function() {  
        return this.animate({left:-(jQuery(this).width())},1000) };
})(jQuery);

(function($) {
    $.fn.myslideDown = function() {  
        return this.animate({top:(jQuery(this).height())},1000) };
})(jQuery);

(function($) {
    $.fn.myslideUp = function() {  
        return this.animate({top:-(jQuery(this).height())},1000) };
})(jQuery);

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章