CSS制作图形变形弹出效果的示例分享

我双手接过晶莹的雪花,想数一数它有几朵花瓣,谁知它到手上就不见了,变成了小水珠。

弹出窗体是网页常用的一个交互设计,在这个注重交互动画体验的时代,网页弹窗也可以来点新鲜的点子,比如今天分享的CSS 变形Modal Window。

当用户点击按钮时,按钮将会变成一个全屏的屏幕,然后再显示内容,整个展示过程流畅友好,也许你可以尝试到你的新项目上。

演示页:http://codyhouse.co/gem/morphing-modal-window/
点击“Fire Modal Window”按钮后,按钮将会慢慢变大,直到整个屏幕。下面来个GIF演示:

使用好代码教程

本代码兼容Chrome, Firefox, Safari, Opera,而IE需要9.0或以上版本(IE9+)

STEP 1: 创建HTML布局

XML/HTML Code复制内容到剪贴板
  1. <sectionclass="cd-section">
  2. <!--sectioncontenthere-->
  3. <divclass="cd-modal-action">
  4. <arel="nofollow noopener noreferrer" href="#0"class="btn"data-type="modal-trigger">FireModalWindow</a><!—这是窗体按钮-->
  5. <spanclass="cd-modal-bg"></span>
  6. </div>
  7. <divclass="cd-modal">
  8. <divclass="cd-modal-content">
  9. <!—这是窗体内容区域-->
  10. </div>
  11. </div>
  12. <arel="nofollow noopener noreferrer" href="#0"class="cd-modal-close">Close</a><!—这是关闭按钮-->
  13. </section>

STEP 2: 添加CSS样式

CSS Code复制内容到剪贴板
  1. .cd-modal-action{
  2. position:relative;
  3. }
  4. .cd-modal-action.btn{
  5. width:12.5em;
  6. height:4em;
  7. background-color:#123758;
  8. border-radius:5em;
  9. transition:color0.2s0.3s,width0.3s0s;
  10. }
  11. .cd-modal-action.btn.to-circle{
  12. width:4em;
  13. color:transparent;
  14. transition:color0.2s0s,width0.3s0.2s;
  15. }
  16. .cd-modal-action.cd-modal-bg{
  17. position:absolute;
  18. top:0;
  19. left:50%;
  20. transform:translateX(-2em);
  21. width:4em;
  22. height:4em;
  23. background-color:#123758;
  24. border-radius:50%;
  25. opacity:0;
  26. visibility:hidden;
  27. transition:visibility0s0.5s;
  28. }
  29. .cd-modal-action.cd-modal-bg.is-visible{
  30. opacity:1;
  31. visibility:visible;
  32. }

STEP 3: 添加jQuery

本代码使用了jQuery,你可以通过下面代码来修改窗口大小。

JavaScript Code复制内容到剪贴板
  1. varbtnRadius=$('.cd-modal-bg').width()/2,
  2. left=$('.cd-modal-bg').offset().left+btnRadius,
  3. top=$('.cd-modal-bg').offset().top+btnRadius-$(window).scrollTop(),
  4. scale=scaleValue(top,left,btnRadius,$(window).height(),$(window).width());
  5. functionscaleValue(topValue,leftValue,radiusValue,windowW,windowH){
  6. varmaxDistHor=(leftValue>windowW/2)?leftValue:(windowW-leftValue),
  7. maxDistVert=(topValue>windowH/2)?topValue:(windowH-topValue);
  8. returnMath.ceil(Math.sqrt(Math.pow(maxDistHor,2)+Math.pow(maxDistVert,2))/radiusValue);
  9. }

以上就是CSS制作图形变形弹出效果的示例分享。阳光暖一点,再暖一点,日子慢一些,再慢一些。晚安!更多关于CSS制作图形变形弹出效果的示例分享请关注haodaima.com其它相关文章!

您可能有感兴趣的文章
css让页脚保持在底部位置的四种方案

CSS如何使用Flex和Grid布局如何实现3D骰子

Flex布局史上最简单使用语法教程

新的CSS 伪类函数 :is() 和 :where()示例详解

纯CSS打字动画的如何实现示例