手机体验细节小动画

1.展开收起

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title> 展开收起 </title>

    <style>
        .m-list { background-color: #fff; border-top: 1px #e0e0e0 solid; border-bottom: 1px #e0e0e0 solid; overflow: hidden; }
        .m-list .hd { position: relative; z-index: 10; height: 40px; line-height: 40px; background-color: #fff; cursor: pointer; }
        .m-list .tit { font-size: 14px; margin: 0; }
        .m-list .more { -webkit-transform: rotate(0deg); transform: rotate(0deg); float: right; width: 40px; height: 40px; text-align: center; color: #ccc; font-size: 12px; }
        .m-list .bd { height: 0; -webkit-transform: translateY(-100%); transform: translateY(-100%); border-top: 1px #e0e0e0 dashed; overflow: hidden; }
        .m-list .hd.active + .bd { height: auto; transform: translateY(0); padding: 10px 0; }
        .m-list .hd.active .more { -webkit-transform: rotate(180deg); transform: rotate(180deg); }
        .m-list .more, .m-list .bd { -webkit-transition: all 1s; transition: all 1s; }
    </style>
</head>
<body>

<div class="m-list J_List">
    <div class="hd active">
        <span class="more">▲</span>
        <h2 class="tit">点我展开/收起</h2>
    </div>
    <div class="bd">
        世界那么大,我想去看看~<br/>
        世界那么大,我想去看看~<br/>
        世界那么大,我想去看看~<br/>
        世界那么大,我想去看看~<br/>
    </div>
</div>

世界不是你想看,想看就能看 - -
<script src="https://cdnjs.cloudflare.com/ajax/libs/zepto/1.1.6/zepto.min.js"></script>
<script>
    $(‘.J_List .hd‘).on(‘click‘, function(){
        $(this).toggleClass(‘active‘);
    });
</script>
</body>
</html>

2.TAB导航动画切换

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title> TAB导航动画切换 </title>
    <style>
        .m-tab2 {
            position: relative;
            overflow: hidden;
            background-color: #f0f6f8
        }

        .m-tab2 .item {
            float: left;
            text-align: center;
            height: 40px;
            line-height: 40px;
            border-top: 1px #e0e0e0 solid;
            border-bottom: 1px #e0e0e0 solid;
            font-size: 14px;
            color: #333;
            -webkit-box-sizing: border-box;
            box-sizing: border-box
        }

        .m-tab2 .item:not(:first-child) {
            border-left: 1px #e0e0e0 solid
        }

        .m-tab2 .active {
            background-color: #fff;
            color: #fe6601
        }

        .m-tab2 .scrollbar {
            position: absolute;
            z-index: 10;
            left: 0;
            bottom: 0;
            height: 2px;
            background-color: #fe6601;
            -webkit-transition: transform 300ms ease-in-out;
            transition: transform 300ms ease-in-out
        }

        .m-tab2 .item:nth-of-type(1).active ~ .scrollbar {
            transform: translateX(0);
            -webkit-transform: translateX(0)
        }

        .m-tab2 .item:nth-of-type(2).active ~ .scrollbar {
            transform: translateX(100%);
            -webkit-transform: translateX(100%)
        }

        .m-tab2 .item:nth-of-type(3).active ~ .scrollbar {
            transform: translateX(200%);
            -webkit-transform: translateX(200%)
        }

        .m-tab2 .item:nth-of-type(4).active ~ .scrollbar {
            transform: translateX(300%);
            -webkit-transform: translateX(300%)
        }

        .m-tab2 .item:nth-of-type(5).active ~ .scrollbar {
            transform: translateX(400%);
            -webkit-transform: translateX(400%)
        }

        .m-tab2 .item:nth-of-type(6).active ~ .scrollbar {
            transform: translateX(500%);
            -webkit-transform: translateX(500%)
        }

        .wb50 { width: 50%; }
    </style>
</head>
<body>

<div class="m-tab2 J_Tab">
    <a class="item wb50 active" href="javascript:;">栏目1</a>
    <a class="item wb50" href="javascript:;">栏目2</a>
    <i class="scrollbar wb50"></i>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/zepto/1.1.6/zepto.min.js"></script>
<script>
    $(‘.J_Tab .item‘).on(‘click‘, function(){
        $(this).addClass(‘active‘).siblings(‘.item‘).removeClass(‘active‘);
    });
</script>

</body>
</html>

3.列表动画

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title> 列表动画 </title>
    <style>

        .list { height: 100px; line-height: 100px; text-align: center; margin-bottom: 10px; background-color: #ccc; border-top: 1px #e0e0e0 solid; border-bottom: 1px #e0e0e0 solid; }

        .anim-slide:nth-of-type(1) {
            -webkit-animation: slide .5s ease 0s backwards;
            animation: slide .5s ease 0s backwards
        }

        .anim-slide:nth-of-type(2) {
            -webkit-animation: slide .5s ease .1s backwards;
            animation: slide .5s ease .1s backwards
        }

        .anim-slide:nth-of-type(3) {
            -webkit-animation: slide .5s ease .2s backwards;
            animation: slide .5s ease .2s backwards
        }

        .anim-slide:nth-of-type(4) {
            -webkit-animation: slide .5s ease .2s backwards;
            animation: slide .5s ease .2s backwards
        }

        .anim-slide:nth-of-type(5) {
            -webkit-animation: slide .5s ease .2s backwards;
            animation: slide .5s ease .2s backwards
        }

        .anim-slide:nth-of-type(6) {
            -webkit-animation: slide .5s ease .2s backwards;
            animation: slide .5s ease .2s backwards
        }

        @-webkit-keyframes slide {
            0% {
                opacity: 0;
                -webkit-transform: translate3d(0,32px,0);
                transform: translate3d(0,32px,0)
            }

            100% {
                opacity: 1;
                -webkit-transform: translate3d(0,0,0);
                transform: translate3d(0,0,0)
            }
        }

        @keyframes slide {
            0% {
                opacity: 0;
                -webkit-transform: translate3d(0,32px,0);
                transform: translate3d(0,32px,0)
            }

            100% {
                opacity: 1;
                -webkit-transform: translate3d(0,0,0);
                transform: translate3d(0,0,0)
            }
        }

    </style>
</head>
<body>

<div class="list anim-slide">列表</div>
<div class="list anim-slide">列表</div>
<div class="list anim-slide">列表</div>
<div class="list anim-slide">列表</div>
<div class="list anim-slide">列表</div>

</body>
</html>

待续...

时间: 2024-09-30 02:09:27

手机体验细节小动画的相关文章

手机页面样式小问题收集

1. 伪类  :after 1. 清楚浮动 div:after{ overflow:hidden; } 2. 制作三角形 div:after{ content:''; display:block; width:0; border-top:8px solid #000; border-left:8px solid transparent; border-right:8px solid transparent; } 2. 设置表单标签placeholder属性的样式 input[type="text

简单小动画+微博简单模拟2

一.ImageView实现旋转小动画 注意:参数为弧度,不要忘记除数加.0 [UIView animateWithDuration:0.3 animations:^{ self.addImageView.transform=CGAffineTransformMakeRotation(45/180.0*M_PI); }]; 二.button响应点击弹出小界面 弹簧效果 [UIView animateWithDuration:<#(NSTimeInterval)#> delay:<#(NST

0122——简单小动画+微博简单模拟2

一.ImageView实现旋转小动画 注意:参数为弧度,不要忘记除数加.0 [UIView animateWithDuration:0.3 animations:^{ self.addImageView.transform=CGAffineTransformMakeRotation(45/180.0*M_PI); }]; 二.button响应点击弹出小界面 弹簧效果 [UIView animateWithDuration:<#(NSTimeInterval)#> delay:<#(NST

iOS 小动画

一.图片旋转 CABasicAnimation* rotationAnimation; rotationAnimation = [CABasicAnimation animationWithKeyPath:@"transform.rotation.z"]; rotationAnimation.toValue = [NSNumber numberWithFloat: M_PI * 2.0 ]; rotationAnimation.duration = 1; rotationAnimati

Facebook体验设计小巧思

作者:羽齐 公众号:37点2度体验(ID:ali-ccoux) banner制作:早读堂-小浅唱 欢迎投稿到早读课,投稿邮箱:[email protected] 互联网时代产品竞争激烈,产品优秀不等同于技术领先.如罗振宇所说「工业时代承载的是具体功能,互联网时代承载的是趣味和情感」,亦如乔布斯所言「我们正处 于技术和人文的交叉点」,功能自然是产品必需的属性,但情感属性也已上升为一个优秀产品的标配,社交型产品在情感属性上更容易延伸. 社交型产品中,不管连接的是熟人关系还是陌生人关系,本质上都是在建

那些打动人心的用户体验细节分享

好设计如空气般存在.传达出对生活的思考,对美的极致追求.每次看到别具匠心的设计作品,都会微微一笑:抑或忍不住惊叹,哇,暖到心里了! 但一段时间之后,就不记得曾经与她怦然心动的邂逅了.当时印象深刻,找寻灵感的时候,却怎么也记不清她的模样. 今天回家的路上就在想,不如定期收集整理近期看过的好设计,发在这里.收集的设计不限形式,包括网页产品.无线产品,甚至生活中的小细节.整理归纳,重新体会温习一遍,这个过程也会是想当不错的体验. 爱生活,爱设计.收集到打动人心的设计细节,就像收集身边琐碎的小幸福. 1

前端开发中的一些用户体验细节

本文主要谈一谈在实践中,面对一个产品,或者是一个具体的功能点,也可能只是一个按钮,一次点击等等,以前端开发工程师的视角,如何关注用户体验,以及一些需要注意的细节问题,嗯,只说细节问题. 1.事先给我一点提示 路过一个这么漂亮的按钮,很有心情发表一篇日志谈论一下天气:结果点击之后告诉我“您目前没有权限添加日志”,关键是它还要跳转到一个新页面说这个事情,很不安逸.可不可以事先就说清楚?不让点击,变色,文字提示,或者你用个小弹出层提示也成啊. 看着这么醒目的小气泡,非常忍不住点击“小喇叭”看看:嗯,小

无需内测账号,带你体验微信小程序完整开发

文章来源:www.zretc.com/technologyDetail/200.html 前一阵子的微信小程序火爆了网络与朋友圈,迅速成为讨论焦点,大家可能觉得只有收到内测邀请才能体验小程序的开发流程,其实不然,每个人都可以体验,下面就请跟着小卓一起去了解下吧. 一.下载微信Web开发工具 首先,微信给我们提供了它自己的小程序集成开发工具,只需要到这个页面下载即可:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t

手机体验系列之三

这个系列文章前期回顾: <我体验过的手机们之二> <体验:我买过的手机们> 新增两个: 1, 红米Pro: 优点:手感丝滑:屏幕显示很讨喜:电池续航非常好:MIUI8双卡应用和手机分身很不错: 缺点:照相渣,双摄像头照相效果更是渣,焦外纯靠涂抹根本不是好看的景深效果,摄像头动不动就启动不了要重启才能解决: 2, 锤子M1: 优点:big bang和one step还有老早的九宫格.拟物画风让锤子手机从严重同质化的手机市场中脱颖而出的特点就不说了,喜欢不一样,所以才买不一样的手机:要