jquery - 使用 jQuery 改进灯箱动画

标签 jquery html css lightbox

我已经在 CSS 中创建了一个基本的灯箱弹出窗口,我正在尝试在 JS 中实现更好的打开/关闭动画,但我不确定如何实现。我环顾四周,但找不到专门为此而找到的东西,而是整个 JS 解决方案。我正在使用 .fadeToggle,但它不是很流畅。

这是我的标记:

<div class="popup-overlay"></div>
<div class="popup">
  <span class="close-button">
    <div class="menu-bar menu-bar-top"></div>
    <div class="menu-bar menu-bar-bottom"></div>
  </span>
  <div>
    <h2>Heading</h2>
    <div>
      <p>Content</p>
    </div>
  </div>
</div>

jQuery:

$('.popup .close-button, .popup-overlay').on('click', function() {
  $('.popup').fadeToggle('fast');
  $('.popup-overlay').fadeToggle('fast');
});

最佳答案

这对我来说是一个挑战,因为我以前只用原生 javascript 写过灯箱,从来没有用 jQuery。

我尝试用 jquery 动画 .fadeIn().fadeOut().delay() 做一些事情,但是在最后,如您所见,我回到了 CSS transition: opacity 和 javascript setTimeout()

$(document).ready(function(){

    $('button').click(function(){
        $('body').append('<div></div>');
        $('div').addClass('lightbox');

        var lightbox = $('.lightbox');

        lightbox.css({
            'position':'absolute',
            'top':'0',
            'left':'0',
            'width':'100%',
            'height':'100%',
            'background-color':'rgb(0,0,0)',
            'opacity':'0',
            'transition':'opacity 1s ease-out',
        });

        lightbox.hover(function(){
            $(this).css('opacity','0.8');
        });

        lightbox.click(function(){
            $(this).css('opacity','0');
            setTimeout(function(){lightbox.remove();}, 1000);
        });
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<button>Lightbox!</button>

关于jquery - 使用 jQuery 改进灯箱动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41202074/

相关文章:

javascript - 加载页面以提高性能的最佳方法

javascript - 一旦鼠标不再存在 JS 隐藏按钮内容

html - CSS flex box 最后一个空格被移除

jquery - ASP.NET MVC 2 使用 jQuery 加载部分 View - 无客户端验证

javascript - 单击 anchor 启用文本字段

javascript - 将表单状态保存到服务器而不干扰页面

css - 棘轮 CSS 和 Marionette 区域

javascript - 我们如何在 jquery on 函数中获取特定动态添加的 td 的 id

javascript - 更改可扩展 View 中的图标

html - 如何在Flexbox中禁用等高列?