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

标签 javascript jquery

我有以下代码,我循环遍历 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");
      },
    });

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

最佳答案

所以,这对我有用 ^_^

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);

关于javascript - 遍历 img 元素并随机应用幻灯片效果(上、下、左、右),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31067167/

相关文章:

javascript - 如何展平嵌套对象?

javascript - JQuery - 如果单击了具有特定 ID(通配符)的元素,则执行此操作

javascript - 获取 Jasmine 测试报告器输出到指定的页面元素

javascript - jQuery.noop() 函数有什么用?

IE 8 中的 jQuery css 切换错误

jquery - 具有自动和连续滚动功能的 slider /轮播

javascript - knockout 中的复选框 onclick 不会更新 View 模型

javascript - 我怎样才能像 Twitter 那样制作一个字符限制突出显示的文本区域?

javascript - 文件上传后是否可以留在页面上并收到“确定”消息?

javascript - jQuery.get() 是如何工作的?