Html5百叶窗效果的示例代码


Posted in HTML / CSS onDecember 11, 2017

本文介绍了Html5百叶窗效果的示例代码,分享给大家,具体如下:

实现方法介绍:

1,百叶窗布局 用定位(position: absolute)覆盖在content布局之上,背景设置为透明(background-color: transparent)
2,keyframes定义淡入淡出(透明度改变)和百叶窗口效果动画。
3,启动动画是通过设置DOM的className属性的方法,animator.className = 'baiyeWindow'; 监听动画完成事件'animationend',要清除className属性。
4,在内容布局切换的事件,调用启动动画方法,两个布局都需要绑定切换事件 ng-click="switchLayout()"
5,动画执行时序图:

Html5百叶窗效果的示例代码
 

html代码:

<!--要显示百叶窗效果的布局--切换内容-->
<div id="fadeInOut" class="content"  ng-click="switchLayout()">
...
</div>
<!--百叶窗布局-->
 <ul id="baiyeWindow"  ng-click="switchLayout()">
       <li><div class="ye"></div></li>
        <li><div class="ye"></div></li>
        <li><div class="ye"></div></li>
        <li><div class="ye"></div></li>
  </ul>

css样式代码:

//谈入谈出效果
 .fade-animation{
        @-webkit-keyframes fadeInOut {
          0% {
            opacity: 1;
          }
          50% {
            opacity: 0;
          }
          100% {
            opacity: 1;
          }
        }
    @keyframes fadeInOut {
          0% {
            opacity: 1;
          }
          50% {
            opacity: 0;
          }
          100% {
            opacity: 1;
          }
        }
        animation: fadeInOut 1s ease-in;
        -webkit-animation: fadeInOut 1s ease-in;
      }
      //百叶窗效果
      .baiyeWindow{
        width: 100%;
        height: 1.68rem;
        position: absolute;
        left: 0;
        top: 1.2rem;
        li{
          height: 0.42rem;
          line-height: 40px;
          overflow: hidden;
          background-color: transparent;
          .ye{
            -webkit-animation: slideOut 1s ease-in-out;
            animation: slideOut 1s ease-in-out;
            width: 100%;
            background-color: rgba(0,0,0,.2);
            position: relative;
            top: 50%;
          }
        }
        @-webkit-keyframes slideOut {
          0% {
            padding-bottom: 0;
            top: 50%;
          }
          100% {
            padding-bottom: 40px;
            top: 0;
          }
        }
        @keyframes slideOut {
          0% {
            padding-bottom: 0;
            top: 50%;
          }
          100% {
            padding-bottom: 40px;
            top: 0;
          }
        }
      }

JS代码:

//切换布局
$scope.switchLayout = function(){
    ...
    $scope.startBaiYeWindow();
    //启动动画0.5s后,控制布局显示/隐藏
    $timeout(function () {
             if ($scope.show) {
                  $scope.show = false;
              } else {
                    ....
              }
     }, 500);
 }
//启动动画
        $scope.startBaiYeWindow = function () {
            var animator = document.getElementById('baiyeWindow');
            var animatorFadeInOut = document.getElementById('fadeInOut');
            animator.addEventListener('animationend', function () {
                animator.className = '';
                animatorFadeInOut.className = 'content';
            });
            $timeout(function () {
                animator.className = 'baiyeWindow';
                animatorFadeInOut.className = 'content fade-animation';
            }, 0);
        };

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

HTML / CSS 相关文章推荐
不同浏览器对CSS3和HTML5的支持状况
Oct 31 HTML / CSS
纯CSS3编写的的精美动画进度条(无flash/无图像/无脚本/附源码)
Jan 07 HTML / CSS
CSS Grid布局教程之什么是网格布局
Dec 30 HTML / CSS
css3编写浏览器背景渐变背景色的方法
Mar 05 HTML / CSS
css3实现动画的三种方式
Aug 24 HTML / CSS
HTML5网页录音和上传到服务器支持PC、Android,支持IOS微信功能
Apr 26 HTML / CSS
HTML5 语音搜索(淘宝店语音搜素)
Jan 03 HTML / CSS
浅谈HTML5 FileReader分布读取文件以及其方法简介
Nov 09 HTML / CSS
详解html5 shiv.js和respond.min.js
Jan 24 HTML / CSS
CSS几步实现赛博朋克2077风格视觉效果
Jun 16 HTML / CSS
Html5同时支持多端sdk的小技巧
Nov 17 HTML / CSS
CSS list-style-type属性使用方法
May 21 HTML / CSS
详解如何通过H5(浏览器/WebView/其他)唤起本地app
Dec 11 #HTML / CSS
iphoneX 适配客户端H5页面的方法教程
Dec 08 #HTML / CSS
详解H5 活动页之移动端 REM 布局适配方法
Dec 07 #HTML / CSS
html5通过postMessage进行跨域通信的方法
Dec 04 #HTML / CSS
html5唤起app的方法
Nov 30 #HTML / CSS
Canvas与图片压缩的示例代码
Nov 28 #HTML / CSS
教你使用Canvas处理图片的方法
Nov 28 #HTML / CSS
You might like
DC最新动画电影:《战争之子》为何内容偏激,毁了一个不错的漫画
2020/04/09 欧美动漫
PHP5中使用PDO连接数据库的方法
2010/08/01 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
2014/01/06 PHP
PHP生成器简单实例
2015/05/13 PHP
Yii2使用swiftmailer发送邮件的方法
2016/05/03 PHP
PHP rmdir()函数的用法总结
2019/07/02 PHP
jQuery 改变CSS样式基础代码
2010/02/11 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
11个用于提高排版水平的基于jquery的文字效果插件
2012/09/14 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
取得元素的左和上偏移量的方法
2014/09/17 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
理解javascript中DOM事件
2015/12/25 Javascript
jquery表单插件Autotab使用方法详解
2016/06/24 Javascript
jquery radio的取值_radio的选中_radio的重置方法
2016/09/20 Javascript
Angular2表单自定义验证器的实现
2016/10/19 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
Nodejs之http的表单提交
2017/07/07 NodeJs
Vue中如何实现proxy代理
2018/04/20 Javascript
vue swipe自定义组件实现轮播效果
2019/07/03 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
Python实现字典的key和values的交换
2015/08/04 Python
python调用Delphi写的Dll代码示例
2017/12/05 Python
python监控进程脚本
2018/04/12 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
2019/07/25 Python
Django ValuesQuerySet转json方式
2020/03/16 Python
keras 获取某层输出 获取复用层的多次输出实例
2020/05/23 Python
台湾母婴用品购物网站:Infant婴之房
2018/06/15 全球购物
办理暂住证介绍信
2014/01/11 职场文书
知识改变命运演讲稿
2014/05/21 职场文书
简易离婚协议书范本2014
2014/10/15 职场文书
个人党性分析材料
2014/12/19 职场文书
坎儿井导游词
2015/02/09 职场文书
SQL Server2019数据库之简单子查询的具有方法
2021/04/27 SQL Server
python爬虫之selenium库的安装及使用教程
2021/05/23 Python