【问题标题】:Make opacity less gradually as element is being dragged via jQuery UI .draggable()通过 jQuery UI .draggable() 拖动元素时逐渐降低不透明度
【发布时间】:2013-09-19 22:03:16
【问题描述】:

我有一个可通过 jQuery UI 的.draggable() 拖动的元素。如何在拖动元素时降低该元素的不透明度?

所以看起来它在被拖动时会淡出?

我也将 revert 设置为 true,并且我希望它在 revert 开始并且正在发生时恢复为完全不透明。

这是我的 jQuery 代码:

$('#draggable').draggable({
    axis: 'x',
    revert: true,
    drag:function(event, ui){
        if(ui.position.left>0){
            console.log("moving right");
            // fade out / make opacity less as drag moves right or ui.position.left becomes higher.
        }
    }
});

这是一个带有代码的 JS Fiddle:http://jsfiddle.net/EybmN/1/

我想知道并希望有人可以帮助我弄清楚如何逐渐淡出/减少拖动对象的不透明度。但如果发生还原并且项目开始滑回其原始位置,则将不透明度恢复为完全。

我将不胜感激!

提前致谢!

【问题讨论】:

    标签: javascript jquery jquery-ui jquery-ui-draggable


    【解决方案1】:

    类似:

    $('#draggable').draggable({
        axis: 'x',
        revert: true,
        drag:function(event, ui){
            ui.helper.css('opacity', 1-ui.position.left/ $(window).width());
        }
    });
    

    FIDDLE

    编辑:

    要使可拖动元素在还原时也改变不透明度,我们必须挂钩该事件:

    $('#draggable').draggable({
        axis: 'x',
        revert: function(valid) {
            if (!valid) {
                $(this).animate({opacity:1}, 'fast').animate(this.originalPosition);
                return true;
            }
            return false;
        },
        drag:function(event, ui){
            ui.helper.css('opacity', 1-ui.position.left/ $(window).width());
        }
    });
    

    FIDDLE

    【讨论】:

    • 一个问题,当还原发生时,不透明度不会返回到 100%。我需要它在被向左或向右拖动时淡出。但是当还原发生时,不透明度需要回升至 100%。
    • @DjangoJohnson - 也为此添加了解决方案!
    • 太棒了,谢谢!还有一个问题:如何让元素在被向左拖动或向右拖动时淡出?并在还原时恢复完全不透明度?
    • 你必须弄清楚元素被拖入的方向,然后根据它使用 position.left / .right ?
    • 啊,好的。感谢您的帮助!
    【解决方案2】:

    这样的?

    http://jsfiddle.net/EybmN/2/

    $('#draggable').draggable({
        axis: 'x',
        revert: true,
        drag:function(event, ui){
            if(ui.position.left>0){
            console.log("moving right");
            $(this).css("opacity", (100-ui.position.left)/100);
            }
        }
    });
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    • 2018-01-31
    • 1970-01-01
    • 2014-02-27
    相关资源
    最近更新 更多