如何实现盒子以动画的形式自动弹出?

补充知识:

①display:none;与translation过渡效果冲突,即使用display:none|block;操作盒子时无法实现动画效果。

②虽然定位能够使元素脱离文档流,但是当父元素设置overflow:hidden时,该元素如果定位的位置超出父元素的可视区域之外,将不会显示。即元素设置overflow:hidden;其可视区域就是其宽高所构成的区域,超出该区域无法可视。

③设置动画盒子时,由于动画盒子采用绝对定位的方式,所以要善于利用left,top,bottom,right四个属性,left,top,bottom,right四个属性的设置相当于在设置构造动画盒子的起始点。

一、方案一:(具有通用性)

①动画盒子使用绝对定位的形式在适当位置勾画出符合要求的盒子。

②设置动画盒子:(比如)

height:0px;

overflow:hidden;/*隐藏盒子中的内容*/

transition:all .2s linear|ease-in|ease-out|ease-in-out .1s;

③hover事件触发动画盒子:(比如)

height:还原高度;

transform:translateY(60px);

opacity:1;/*可以不添加;也可能需要设置z-index。*/

二、方案二:(动画盒子定位在触发事件盒子的同一区域)

①动画盒子使用绝对定位的形式在适当位置勾画出符合要求的盒子。

②使用z-index隐藏动画盒子;

必须要求动画盒子的父级盒子(所有父级盒子)不能使用overflow:hidden。

③设置动画盒子:(比如)

transition:all .2s linear|ease-in|ease-out|ease-in-out .1s;

z-index:设置合适的值(应为负值);

④触发事件盒子:

该盒子的父级盒子或者为包含动画盒子的盒子设置合适的z-index值。

④hover事件触发动画盒子:(比如)

transform:translateY(60px);(设置合适的动画效果)

三、方案三:(动画盒子定位在触发事件盒子的外部区域)

①动画盒子使用绝对定位的形式在适当位置勾画出符合要求的盒子。

②触发事件盒子:

overflow:hidden;/*隐藏区域之外的元素*/

③设置动画盒子:(比如)

transition:all .2s linear|ease-in|ease-out|ease-in-out .1s;

④hover事件触发动画盒子:(比如)

transform:translateY(60px);(设置合适的动画效果)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,806评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,339评论 0 11
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,813评论 1 92
  • 1.兼容性 2.边框 圆角效果 阴影 border-image 3.颜色 RGBA 渐变色彩 第一个参数:指定渐变...
    Love小六六阅读 255评论 0 0
  • 哪怕是鲁滨逊,形式上看虽然是孤单一人,但是,他也是带着一整套人的社会存在方式创造着。狼带大的“人”有人形,但不是人...
    你他娘的真是个天才阅读 353评论 0 0