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倒影的实现
Sep 26 HTML / CSS
详解CSS3 rem(设置字体大小) 教程
Nov 21 HTML / CSS
css3 仿写阿里云水纹效果的示例代码
Feb 10 HTML / CSS
用css3实现转换过渡和动画效果
Mar 13 HTML / CSS
HTML5之SVG 2D入门10—滤镜的定义及使用
Jan 30 HTML / CSS
详解移动端Html5页面中1px边框的几种解决方法
Jul 24 HTML / CSS
使用canvas来完成线性渐变和径向渐变的功能的方法示例
Jul 25 HTML / CSS
html5视频自动横过来自适应页面且点击播放功能的实现
Jun 03 HTML / CSS
AmazeUI在模态框中嵌入表单形成模态输入框
Aug 20 HTML / CSS
HTML5 canvas实现的静态循环滚动播放弹幕
Jan 05 HTML / CSS
使用canvas仿Echarts实现金字塔图的实例代码
Nov 11 HTML / CSS
CSS的calc函数用法小结
Jun 25 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
PHP连接access数据库
2008/03/27 PHP
46 个非常有用的 PHP 代码片段
2016/02/16 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
alert中断settimeout计时功能
2013/07/26 Javascript
jquery中get,post和ajax方法的使用小结
2014/02/04 Javascript
javascript几个易错点记录
2014/11/26 Javascript
yui3的AOP(面向切面编程)和OOP(面向对象编程)
2015/05/01 Javascript
js动态创建及移除div的方法
2015/06/03 Javascript
jQuery通过写入cookie实现更换网页背景的方法
2016/04/15 Javascript
轻松掌握JavaScript策略模式
2016/08/25 Javascript
微信小程序 location API实例详解
2016/10/02 Javascript
js 转义字符及URI编码详解
2017/02/28 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
JavaScript中利用Array filter() 方法压缩稀疏数组
2018/02/24 Javascript
JS/HTML5游戏常用算法之路径搜索算法 A*寻路算法完整实例
2018/12/14 Javascript
详解vue beforeRouteEnter 异步获取数据给实例问题
2019/08/09 Javascript
微信小程序实现一个简单swiper代码实例
2019/12/30 Javascript
vue集成openlayers加载geojson并实现点击弹窗教程
2020/09/24 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
Python装饰器的执行过程实例分析
2018/06/04 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
在python中利用dict转json按输入顺序输出内容方式
2020/02/27 Python
如何在keras中添加自己的优化器(如adam等)
2020/06/19 Python
详解Python yaml模块
2020/09/23 Python
Python Web项目Cherrypy使用方法镜像
2020/11/05 Python
突袭HTML5之Javascript API扩展2—地理信息服务及地理位置API学习
2013/01/31 HTML / CSS
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
Lungolivigno Fashion官网:高级时装在线购物
2020/10/17 全球购物
Linux如何压缩可执行文件
2014/03/27 面试题
2015年大学生暑期实习报告
2015/07/13 职场文书
餐馆开业致辞
2015/08/01 职场文书
Mysql基础知识点汇总
2021/05/26 MySQL
python实现剪贴板的操作
2021/07/01 Python
html中两种获取标签内的值的方法
2022/06/16 jQuery