热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

动画div演示-从中​​心放大-Animatedivpresentation-zoominfromcenter

Iwouldliketodisplayadivaftertheuserpressesabuttononawebpage.Iwantthedivtozoom

I would like to display a div after the user presses a button on a web page. I want the div to zoom inwards from the center of the screen. I'd like to achieve an effect similar to that in iCloud for creating a new document. How could such an effect be achieved?

我想在用户按下网页上的按钮后显示div。我希望div从屏幕中心向内放大。我希望获得类似于iCloud中用于创建新文档的效果。如何实现这样的效果?

The content of the div will be static and scrollable, it will consist of a toolbar with a button very similar to the element on iCloud.

div的内容将是静态和可滚动的,它将包含一个工具栏,其中的按钮与iCloud上的元素非常相似。

gif

If possible, a pure Javascript solution would be awesome, but I'm open to using jQuery.

如果可能的话,纯Javascript解决方案会很棒,但我愿意使用jQuery。

2 个解决方案

#1


1  

This is a Vanilla JS solution as the OP requested. The reason there are no fallbacks is to make the snippet smaller.

这是OP要求的Vanilla JS解决方案。没有后备的原因是使代码段更小。

document.addEventListener('DOMContentLoaded', function() {

  var toggle = document.getElementById('toggle'),
    window = document.getElementById('window');
  toggle.addEventListener('click', function() {
    window.classList.toggle('opened');
  });

  close.addEventListener('click', function() {
    window.classList.remove('opened');
  });

});
#toggle {cursor: pointer;}
#container {
  width: 95vw;
  height: 95vh;
  background: blue;
  overflow: auto;
}
#window {
  width: 80vw;
  height: 80vh;
  background: red;
  position: fixed;
  top: 10vh;
  left: 10vw;
  opacity: 0;
  z-index: 100;
  overflow: auto;
  transform: scale(0, 0);
  transition-property: opacity, transform;
  transition-duration: 1s;
}
#window.opened {
  display: block;
  transform: scale(1, 1);
  opacity: 1;
}

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam erat lorem, consequat eu feugiat ultrices, condimentum scelerisque nulla. Mauris auctor ipsum justo, at blandit lorem pellentesque a. Nunc vel est luctus, vehicula risus id, tempor nulla. Aenean laoreet nunc dolor, sed feugiat metus tincidunt at. Quisque elementum suscipit enim, vitae ultrices est aliquam id. Quisque cursus tortor sit amet fringilla dapibus. Aliquam interdum a turpis dictum lacinia. Duis risus massa, feugiat quis nibh eget, iaculis cursus purus. Nam ullamcorper in erat quis cursus. Proin nec ornare lectus, at dignissim sem. Sed blandit accumsan dui, a sagittis arcu iaculis a. Maecenas nibh ante, accumsan in enim et, mollis egestas ipsum. Sed convallis vitae nibh ut aliquet. Ut ullamcorper ullamcorper enim vitae pulvinar. Donec vitae tincidunt felis. Ut felis lacus, cursus vel rutrum ut, maximus sed metus. Aenean nisl nulla, maximus ut facilisis a, tristique eu quam. Pellentesque venenatis massa quis eros luctus tempor. Praesent quis quam non tortor imperdiet auctor nec in nunc. Vivamus odio tellus, placerat porta urna vitae, congue tincidunt urna. Nulla auctor pretium venenatis. Fusce non nisi nunc. Morbi pretium malesuada enim, vitae cursus dolor convallis et. Nam nibh eros, sollicitudin sed tristique nec, pulvinar condimentum nunc. Nulla facilisi. Aenean egestas velit dui, vel dignissim enim suscipit euismod. Donec euismod eleifend mi ut pharetra. Sed ac risus quam. Nullam libero diam, tempus sit amet convallis ut, bibendum viverra sapien. Aliquam tellus ligula, egestas ac dictum ut, efficitur eget eros. Sed tempus sem erat, eget efficitur magna tempor ac. Curabitur hendrerit molestie orci, at venenatis enim luctus porta. Vivamus varius ligula eu dui dictum, ac venenatis libero euismod. Sed consectetur nibh in metus tristique, vitae fringilla mauris eleifend. Aenean et rhoncus nunc. Sed eget eros neque. Donec pretium interdum risus, sed cursus nulla euismod sagittis. Nam eu ultricies mi, id auctor leo. Quisque dictum urna eu dictum feugiat. Donec fermentum mi sed diam posuere luctus. In lacinia, leo nec ornare tristique, mauris arcu lobortis elit, sed euismod purus lacus ut nibh. Integer fringilla felis ac augue lobortis, ut commodo libero imperdiet. Aenean at metus vel ligula porttitor varius sed sit amet dolor. Aenean sodales nisl nec urna tristique elementum. Maecenas blandit efficitur massa et congue. Mauris nec tortor felis. Ut vulputate maximus massa, sed commodo odio laoreet vel. Sed eu laoreet urna. Cras id pellentesque augue. Vestibulum finibus leo non lectus rhoncus vehicula. Mauris dignissim venenatis sem, quis pellentesque risus posuere blandit. Sed lorem enim, pretium vitae felis sed, tincidunt semper ipsum. Vivamus non ex tortor. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae;

#2


1  

The following is Javascript only solution, without Jquery.

以下是仅Javascript解决方案,没有Jquery。

CSS For the centered div for both vertical and horizontal:

CSS对于垂直和水平的居中div:


    #panel{
      display:none;
      width: 1%;
    height: 1%;
    background-color: red;

    position: absolute;
    top:0;
    bottom: 0;
    left: 0;
    right: 0;

    margin: auto;

    }

The Javascript:

Javascript:


The Demo: http://jsbin.com/madaku

演示:http://jsbin.com/madaku


推荐阅读
author-avatar
337364卢
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有