css3---transform&transition之toolTip动画效果的实现

知识点总结:

1、元素设置了绝对定位后会自动变为块级元素;

2、父元素设置为相对定位,子元素设为绝对定位,然后对子元素作如下设置会得到不同的效果:

a、bottom:100%----------------->子元素的底端和父元素的顶端对齐重合(如下图所示:黑色框为父元素~白色圆为子元素~)

html代码:

<div id="father">
    <div id="child">
    </div>
</div>

css代码:

<style>
        #father {
            background: #000;
            width: 300px;
            height: 200px;
            position: relative;
            top:300px;//为了让父元不靠在屏幕左上方~稍微设置了left和top
            left: 600px;
        }

        #child {
            background: #fff;
            width: 100px;
            height: 100px;
            -webkit-border-radius: 50%;
            -moz-border-radius: 50%;
            border-radius: 50%;
            position: absolute;
            bottom: 100%;

        }
    </style>

 

 

b、top:100%-------->子元素的顶端和父元素底端对齐(即子元素相对于父元素向下移动父元素的高度)

html代码如上所示,css代码如下:

<style>
        #father {
            background: #000;
            width: 300px;
            height: 200px;
            position: relative;
            top:300px;
            left: 600px;
        }

        #child {
            background: #fff;
            width: 100px;
            height: 100px;
            -webkit-border-radius: 50%;
            -moz-border-radius: 50%;
            border-radius: 50%;
            position: absolute;
            top: 100%;

        }
    </style>

c、至于bottom:0%和top:0%也依次类推

    bottom:0%  即子元素以父元素的底部为基准向上推父元素高度的0%

    top:0%  即子元素以父元素的顶部为基准向下推父元素高度的0%

 

基于transform和transition实现动画效果思路总结:

html代码如下:

   <ul>
        <li>
            <a href="#" class="tooltip tooltip-effect-5">
                Contact
                <span class="tooltip-content">
                    <i class="fa fa-envelope fa-fw"></i>
                </span>
            </a>
        </li>
    </ul>

 

一般而言我们设置元素的动画都是有事件触发的~比如初始时元素是一个状态~然后鼠标移到上面时开始动画~于是有:

1、设置元素开始时的显示效果:

css代码(采用less编写)

.tooltip-effect-5 .tooltip-content {//定义加了.tooltip-effect-5类的span的初始样式
  -webkit-transform: scale3d(0, 0, 0);
     -moz-transform: scale3d(0, 0, 0);
      -ms-transform: scale3d(0, 0, 0);
       -o-transform: scale3d(0, 0, 0);
          transform: scale3d(0, 0, 0);
  -webkit-transform-origin: center bottom;
     -moz-transform-origin: center bottom;
      -ms-transform-origin: center bottom;
       -o-transform-origin: center bottom;
          transform-origin: center bottom;

  -webkit-transition: all 0.3s;
     -moz-transition: all 0.3s;
      -ms-transition: all 0.3s;
       -o-transition: all 0.3s;
          transition: all 0.3s;


  i {
    -webkit-transform: translate3d(0, 20px, 0);
       -moz-transform: translate3d(0, 20px, 0);
        -ms-transform: translate3d(0, 20px, 0);
         -o-transform: translate3d(0, 20px, 0);
            transform: translate3d(0, 20px, 0);
    -webkit-transition: all 0.3s;
       -moz-transition: all 0.3s;
        -ms-transition: all 0.3s;
         -o-transition: all 0.3s;
            transition: all 0.3s;
               opacity: 0;
  }
}

2、定义鼠标hover时的样式:

css代码(采用less编写)

.tooltip:hover .tooltip-content,
.tooltip:hover .tooltip-content i {
  opacity: 1;
  //定义气泡最终的显示效果~在x、y、z上滑动为0,在x、y、z上旋转为0度,在x、y、z上缩放比例为1
  -webkit-transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0) scale3d(1, 1, 1);
     -moz-transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0) scale3d(1, 1, 1);
      -ms-transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0) scale3d(1, 1, 1);
       -o-transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0) scale3d(1, 1, 1);
          transform: translate3d(0, 0, 0) rotate3d(1, 1, 1, 0) scale3d(1, 1, 1);
}

3、这样定义好后在注意在 设置元素开始时的显示效果时我们还写了 transition: all 0.3s;的语句~这里写上all~那在鼠标hover时~程序会自动检测所有发生变换的属性~并按照定义的时间(0.3s)进行一个过渡的显示~于是就实现了动画~当然我们也可以手动添加希望发生过渡变化的属性~比如把上面的all改成opacity~那就只有opacity(透明度)会发生一个从0到1的过渡变化~过渡时间为0.3s。

 

另外小结一下transform后面跟的内容的含义:

1、translate3d()-------设置x、y、z 上平移的距离单位为像素

    注意:虽然三轴上的变换也可以分别用translateX,translateY,translateZ来设置~不过推荐使用translate3d~这样不仅方便设置三轴上的变换~而且在手持设备上也会开启     加速

 

2、rotate3d(1,1,1,45deg)--------设置x、y、z 上的旋转的角度~前三个参数为0~1的数值~最后一个参数规定旋转的度数~那前三个参数可以理解为旋转规定度数的百分之几

 

3、scale3d(1,1,1)-----------设置x、y、z 上的缩放比~三个参数的取值也是0~1

 

源码地址:https://github.com/x-shadow-x/toolTip

在线预览:http://x-shadow-x.github.io/toolTip/

 

转载于:https://www.cnblogs.com/Liujunyan/p/4955634.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
show-overflow-tooltip 是一个 CSS 类名,可以用于实现当元素内容溢出时显示工具提示的效果。 可以通过下面的 CSS 样式为具有 show-overflow-tooltip 类名的元素添加样式: ```css .show-overflow-tooltip { white-space: nowrap; /* 防止内容折行 */ overflow: hidden; /* 隐藏溢出的内容 */ text-overflow: ellipsis; /* 使用省略号表示溢出的文本 */ position: relative; /* 设置相对定位,用于后面的工具提示 */ } .show-overflow-tooltip::after { content: attr(title); /* 设置工具提示的内容为元素的 title 属性值 */ position: absolute; /* 设置绝对定位,相对于父元素定位 */ background-color: #000; /* 工具提示的背景颜色 */ color: #fff; /* 工具提示的文字颜色 */ padding: 5px; /* 工具提示的内边距 */ font-size: 14px; /* 工具提示的文字大小 */ bottom: 100%; /* 工具提示位于元素上方 */ left: 50%; /* 工具提示水平居中 */ transform: translateX(-50%); /* 水平居中 */ visibility: hidden; /* 初始隐藏工具提示 */ opacity: 0; /* 初始透明度为0,即不可见 */ transition: visibility 0s, opacity 0.2s linear; /* 过渡效果,使工具提示淡入淡出 */ } .show-overflow-tooltip:hover::after { visibility: visible; /* 鼠标悬停时显示工具提示 */ opacity: 1; /* 透明度设置为1,即完全可见 */ } ``` 以上是一个基本的 show-overflow-tooltip 样式,当元素内容溢出时,会在元素上方显示一个工具提示。你可以根据自己的需求调整样式属性,如背景颜色、字体大小等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值