【问题标题】:shadow box overlay click fadeaway阴影框叠加点击渐隐
【发布时间】:2015-04-15 15:00:40
【问题描述】:

我有这个阴影框,我想要做的是在我点击叠加层时让它消失,但现在它只有在我点击实际图像本身时才有效。我已经在代码中尝试了所有我可以但仍然没有骰子,代码如下:

$(document).ready(function(){

    $('a.shadowbox').click(function(e) {
    $('body').css('overflow-y', 'hidden'); 
    $('<div id="overlay"></div>') 
        .css('top', $(document).scrollTop())
        .css('opacity', '0') 
        .animate({'opacity': '0.9'}, 'slow')
    .appendTo('body');

    $('<div id="shadowbox"></div>')
        .hide()
    .appendTo('body');

    $('<img>')
        .attr('src', $(this).attr('href'))
        .load(function() {
            var top = ($(window).height() - $('#shadowbox').height()) / 2; 
            var left = ($(window).width() - $('#shadowbox').width()) / 2;
            $('#shadowbox') 
            .css({ 
                'top': top + $(document).scrollTop(),
                'left': left
                })
            .fadeIn();
    })
    .click(function() {
        $('#overlay, #shadowbox')
            .fadeOut('slow', function(){ 
                $(this).remove(); 
            $('body').css('overflow-y', 'auto');
            });
        })
    .appendTo('#shadowbox');
    return false;
    });
});

【问题讨论】:

  • 这类问题确实需要一个模型(JSFiddle 或 SO sn-p)。
  • 因为您演示了事件处理程序可以添加到断开连接的元素 +1 :)

标签: javascript jquery html shadowbox


【解决方案1】:

click 事件当前是$('img') 链的一部分(即 attr、load、click、appendTo)。

尝试将点击事件添加到叠加层:

$('#overlay').click(...)

【讨论】:

  • @Ted 对,你是关于元素 id - 如果我只是正确地阅读了这个问题...... :)
猜你喜欢
  • 2021-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-11
  • 1970-01-01
  • 2013-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多