2018-01-04

IFE2017 有趣的鼠标悬浮知识点

1.background属性

background作为一个经常用的css属性。还是挺重要的。通常以下几个属性

  • background-color
background-color : 颜色
  • background-image
background-image : url(背景图片的地址) 
  • background-repeat
background-repeat : repeat | no-repeat | repeat-x/y
  • background-position
background-position : top/bottom/left/right(组合使用) | x% y% | x y
//  当只设置了一个position值(top或其他),第二个值自动为center
// 当只设置了第一个值(x%|x px),第二个值自动为50%;
  • background-attachment
//  scroll(默认值)背景图像会随着页面其他部分的滚动而移动
// fixed 当页面其余部分滚动时,背景图像不会移动!

以上是css3之前的background属性


  • background-clip
    background-clip顾名思义。就是背景裁剪,规定背景的绘制区域
background-clip:border | padding | content | text;
// border : 背景从边框开始绘制,但是边框会cover背景
// padding :背景从padding部分开始绘制,留下padding+content的背景
// content : 只留存content的背景,。
// text :只留下字体的背景。
  • background-origin
background-origin : border | padding | content
// border : 背景从边框开始铺设
// padding:背景从padding开始绘制
// content : 背景只铺设内容部分
  • background-size
background-size : length | % | cover | contain 
// length | %
第一个值设置宽度,第二个值设置高度。

如果只设置一个值,则第二个值会被设置为 "auto"。
// cover 
把背景图像扩展至足够大,以使背景图像完全覆盖背景区域。

背景图像的某些部分也许无法显示在背景定位区域中。
// contain 
把图像图像扩展至最大尺寸,以使其宽度和高度完全**适应**内容区域。但是会留空 

origin 和 clip 的区别

2. transfrom

可用于内联(inline)元素和块级(block)元素。它允许我们旋转、缩放和移动元素 ,他有几个
属性值参数:rotate(旋转) | translate(位移?) | scale(伸缩) | skew(扭曲) | matrix。

transfrom : rotate(90°deg); 正角度则顺时针
transfrom : translate(X,Y);
transfrom : translateX/Y(100px | 100%);
transfrom : scale(x,y)
transfrom :scaleX/Y
//如果只有一个值,则第二个参数同第一个一样
transfrom : skew(x,y);
//x对应X轴,y对应Y轴。如果第二个数不提供,则默认为0
transfrom : skewX/Y();

改变基点的函数
transfrom :oringin(x%,y%)


3. transition 过渡

transition-property :
//要使用过渡的属性值
transition-duration : 
//过渡持续的事件 1s 1000ms
transition-timng-function : 
//变换速率函数:ease(逐渐变慢) | linear(匀速) | ease-in(加速) | ease-out (减速)| ease-in-out(先加速后减速)
transition-delay : 
//过渡动画延迟x s,x ms 开始

速记法
transition : property duration timing-function delay
例子
.class {
    ...
    ...
    transition : width 1s linear .5s
}
.class:hover{
    width: 200px;
}

4.animation

1)关键帧

@keyframes 动画名称{
    0%{
      background-color: black;
    }
    50%{
      background-color: red;
    }
    100%{
       background-color: yellow;
    }
}

transition的优点在于简单易用,但是它有几个很大的局限。
(1)transition需要事件触发,所以没法在网页加载时自动发生。
(2)transition是一次性的,不能重复发生,除非一再触发。
(3)transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态。
(4)一条transition规则,只能定义一个属性的变化,不能涉及多个属性。
CSS Animation就是为了解决这些问题而提出的。

2)animation属性

animation-name : ‘str’
//自定义的动画名,需要跟关键帧后面的动画名称相一致
animation-duration :
//一次动画持续的时间,s | ms
animation-timing-function : ease | linear | ease-in | ease-out | ease-in-out
// 速率函数
animation-delay 
// 过渡动画延迟x s,x ms 开始
animation-iteration-count : 
//动画循环的次数
animation-direction:
//定义动画执行的方向
// normal 正方向,一次动画执行完毕后,又从头开始继续执行
// alternate 双向。动画播放在第偶数次向前播放,第奇数次向反方向播放。
animation-play-state:running | paused
//用来控制动画的播放状态

速记:
animation : name duration timing-function  delay iteration-count direction
eg:
animation : ‘btnlight’ 2s linear .5s 10 alternate;

example

.class{
  ...
  ...
  animation : "circleRotate" 4s linear .5s 10 alternate;
}
@keyframes "circleRotate"{
  0%{
      transform: rotate(0deg);
  }
50%{
      transform : rotate(180deg);
  }
100%{
      transform: rotate(360deg);
  }
}

在不需要触发任何事件的情况下,也可以显式的随时间变化来改变元素CSS属性,达到一种动画的效果


其他知识点:
css属性
filter:blur(?px);
//用于图片上,是图片模糊.


解决方式

1.鼠标hover时,border从中间向两边延伸

2.流光字体的制作

流光字体的制作主要用到以下几个属性。

bakcground :linear-gradient();
// 渐变背景
bakcgorund-clip :text;
background-size :
background-position:
animation:

3.背景模糊

filter: blur(5px);

JS小知识点

element.classList 一个元素的类属性的实时DOMTokenList集合。
element.classList = elemet.className.split(' ');
element.classList本身是只读的,但是可以通过add()和remove()方法修改它;

let elementClasses = element.classList();
element.Classes.add('someClass');
element.Classes.remove('someClass');
element.Classes.contains('someClass');
// 主要是下面这个方法
element.Classes.toggle(1,2);
//toggle用于判断element.classes是否存在某个类名。
//如果类存在,则删除它并返回false,如果不存在,则添加它并返回true。

例子

btn.onclick = function(e){
  e.classList.toggle('addColor');
}
//当按钮被点击时,如果按钮存在了类‘addColor’,则从元素中删除这个类名,如果不存在,则添加!
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,730评论 0 2
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,303评论 0 11
  • HTML基础 开始 上周我已经学习了一些开发工具(Sublim Text、vscode),我学会了如何一些基础设置...
    H少白阅读 707评论 0 4
  • 首先重构了页面样式,布局更加合理。这样的话也便于我操作①②之间的线。 然后就是删除了一段固定的块状元素,将所有的任...
    yaolei72阅读 235评论 0 0
  • 简介: 最初的博客较短,也较琐碎,并夹杂着一些翻译的文章。后来渐渐开始有了一些自己的心得和看法。总体上在这8年里,...
    翱翔GTD阅读 644评论 0 0