css3怎么实现高度从固定到自动的过渡动画?
transition
css3的transition允许css的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值
transition-property:检索或设置对象中的参与过渡的属性
transition-duration:检索或设置对象过渡的持续时间
transition-delay:检索或设置对象延迟过渡的时间
transition-timing-function:检索或设置对象中过渡的动画类型
简写:
transition:all/具体属性值 运动时间s/ms 延迟时间s/ms 动画类型
transition-timing-function:检索或设置对象中过渡的动画类型
贝塞尔曲线:
属性值:cubic-bezier()贝塞尔曲线网址:逐帧动画:transition-timing-function:steps(动画执行的步数);
CSS3 2D
transform
transform的属性包括:rotate() / skew() / scale() / translate(,) ,分别还有x、y之分,比如:rotatex() 和 rotatey()
1、translate()
将元素向指定的方向移动,类似于position中的relative。
水平移动:向右移动translate(tx,0)和向左移动translate(-tx,0);
垂直移动:向上移动translate(0,-ty)和向下移动translate(0,ty);
对角移动:右下角移动translate(tx,ty)、右上角移动translate(tx,-ty)、左上角移动translate(-tx,-ty)和左下角移动translate(-tx,ty)。
translateX():水平方向移动一个对象。对像只向X轴进行移动,如果值为正值,对像向右移动;如果值为负值,对像向左移动。translateY():纵轴方向移动一个对象。对象只向Y轴进行移动,如果值为正值,对象向下移动;如果值为负值,对像向上移动。
这两个函数和前面介绍的translate()函数不同的是每个方法只接受一个值。
所以
transform:translate(-100px,0)实际上等于transform:translateX(-100px);
transform:translate(0,-100px)实际上等于transform:translateY(-100px)。
2、scale()
让元素根据中心原点对对象进行缩放。默认的值1。因此0.01到0.99之间的任何值,使一个元素缩小;而任何大于或等于1.01的值,让元素显得更大。
缩放scale()函数和translate()函数的语法非常相似,他可以接受一个值,也可以同时接受两个值,如果只有一个值时,其第二个值默认与第一个值相等。
例如,
scale(1,1)元素不会有任何变化,而scale(2,2)让元素沿X轴和Y轴放大两倍。
scaleX():相当于scale(sx,1)。表示元素只在X轴(水平方向)缩放元素,其默认值是1。
scaleY():相当于scale(1,sy)。表示元素只在Y轴(纵横方向)缩放元素,其默认值是1。
3、rotate()
旋转rotate()函数通过指定的角度参数对元素根据对象原点指定一个2D旋转。它主要在二维空间内进行操作,接受一个角度值,用来指定旋转的幅度。如果这个值为正值,元素相对原点中心顺时针旋转;如果这个值为负值,元素相对原点中心逆时针旋转。
rotateX() 方法,元素围绕其 X 轴以给定的度数进行旋转
rotateY() 方法,元素围绕其 Y 轴以给定的度数进行旋转
4、skew()
倾斜skew()函数能够让元素倾斜显示。它可以将一个对象以其中心位置围绕着X轴和Y轴按照一定的角度倾斜。
一个参数时:表示水平方向的倾斜角度;
两个参数时:第一个参数表示水平方向的倾斜角度,第二个参数表示垂直方向的倾斜角度
transform-origin
transform-origin是变形原点,也就是该元素围绕着那个点变形或旋转,该属性只有在设置了transform属性的时候起作用;
因为我们元素默认基点就是其中心位置,换句话说我们没有使用transform-origin改变元素基点位置的情况下,transform进行的rotate,translate,scale,skew等操作都是以元素自己中心位置进行变化的。
2D 转换元素能够改变元素 x 和 y 轴
只说思路,其他请结合教程文档:
1、既然是动画就必须有明确的起始值和结束值。
首先要得到这个dom的实际高度,作为自适应的值,如何得到?
div p ../p /div
第一层div高度默认固定或者为0都行,这时p标签是能获取到真实高度的,把p的高度传给div就行了,要注意如果存在图片、外联资源时需要监听这些资源是否加载完毕
高度这个需要计算dom的实际高度
2、动画如何实现
jquery也行,css3也行
怎么制定Web前端学习计划?
1、HTML+css(html5+css3)
2、javascript
3、jquery
4、jquery插件
5、移动端的jquery mobile
高级的:
1、面向对象的css,css预处理等
2、Vue.js(前卫的前端mvc框架)
3、js常见的设计模式
4、node.js
其他兴趣方向:
html5游戏开发,web安全等
阶段1.前端核心基础 HTML +_CSS核心、JavaScript基础语法、JavaScript面向对象、JavaScript DOM BOM编程、jQuery框架
阶段2.HTML5 + CSS3 + 移动端核心 HTML5新特性、Canvas专列、CSS3新特性、CSS3进阶、CSS3实例演练 阶段
3.移动端 移动端核心、移动端适配、移动端特效 阶段
4.服务器端 服务器端开发、数据库操作、前后端交互核心、微信公众号开发 阶段
5.JavaScript高级 JavaScript基础深入剖析、JavaScript面向对象深入讲解、JavaScript异步编程、 JavaScript函数式编程JavaScript设计模式 阶段
6.前端必备 性能优化、版本控制工具、模块化、项目构建工具 阶段
7.高级框架 React框架基本使用、React框架进阶、Vue框架基本使用、Vue框架进阶、Vue源码分析 阶段
8.小程序 原生小程序入门、原生小程序API使用、小程序框架Mpvue
一个非常好的问题。先解释下Web前端开发的新发展。
随着移动互联网的发展,前端开发成为重点。移动端有多个平台,Android,iOS,微信小程序,支付宝小程序,还有不断出现的新操作系统,比如阿里YunOS,华为鸿蒙,等等。
为了支持这些平台和系统,越来越多的应用开始使用H5跨平台架构,现在有个新名词叫做“大前端”。
一,H5跨平台开发
这时的H5前端开发已经不再是单单的网页开发了,而是前端应用开发。具体到H5 Hybrid架构,常用三剑客:HTML, css, JavaScript
1) HTML和css是页面设计,没有代码逻辑
2) JavaScript编程,还有其它衍生语言,比如常用的TypeScript
JavaScript是一种脚本语言,由解释器加载执行,常用在网页前端动态展示、和服务后端交互等场景。接下来重点介绍JavaScript开发。
二,学习阶段和时间计划
1)编程基础,一到两周
学习JavaScript语言基础,掌握基本的编程方法。如果对着课本教程学习比较枯燥,难以坚持,那么可以使用网上的一些学习练手资源,边学习边动手,比如HackerRank
2)开发框架,一到两月
JavaScript前端开发有很多成熟的框架可用,比如JQuery, AngularJS,React,还有前后端都跑通的NoteJS。阿里开源框架Ant Design Pro是一个功能完善的脚手架,推荐新学者练手。
新手学习时,推荐当前普遍使用的Top3开发框架,太新或者太旧的都不适合用来学习练手。
3)项目经验,一到两年
学习的最终目的是学以致用,在实际项目中积累经验,不断提升。有了一定技术基础后,推荐尝试参与开源项目,在开发功能、提交代码的过程中,提升非常快。而且开源项目经验,和工作经验一样,应聘时非常受欢迎。
我是工作多年的Web应用架构师,欢迎关注我,了解更多IT专业知识。
有什么IT技术是适合女生学的?
你好
根据我做开发几年的经验以及周围同事的情况
女生通常是做UI设计和前端以及美工设计(游戏方向)的比较多
女生的色彩和设计感通常来说比男生要好(这里只是说通常情况 大佬勿喷)
当然现在前端也并不是前几年那么简单了
现在前端已经往大前端方向发展了
什么是大前端?
这个大其实是大而全的意思
大前端一般做什么
发展到现在
前端现在也比较复杂了
不再是做做HTML页面 调调CSS
更多是要做JS的工作
例如要学习三大框架Vue React Angular
和以前流行的Jquery不同
已经不是使用DOM操作方式
而是用数据绑定等方式
当然更新的还不止这些
例如前端路由 前端面向对象编程 ES6 ES7语法等
似乎每一天都在更新技术
而在服务器领域 JS也能插足
典型代表NodeJS
能够和PHP JAVA一样运行在后台服务器上
使得现在简单的CURD都是由前端自己去写
后端就偏向更后的数据、架构和性能优化
另外前端还包含了微信小程序
前端工程化Gulp
非关系型数据库Redis MongoDB等
所以在以前只要HTML CSS JS三剑客基础扎实的
现在依然能够胜任现在大前端工作
但是对于新人来说
面对各种库和各种包 各种环境 框架
可能还是比较迷茫的
所以现在前端确实是越来越复杂
不过还有极少的情况会遇到算法问题
比如电商场景的SKU的算法 就用到了线性代数里的矩阵知识
现在如果没有基础去入门前端开发其实还是需要一定时间的 并不能速成
最后 共勉!
现在IT行业领域已经不再是男生的专属领地,越来越多的女生正在加入,而且随着IT行业内部的精细化分工,出现了很多女生在性格和素质能力方面都可以得心应手的岗位,比如UI设计、Web前端开发、软件测试、视频/新媒体运营等等岗位,女生数量还不少。
不过必须注意的是,因为现在IT行业火爆,导致现在IT培训机构多如牛毛,一不小心就会被坑,所以一定要认真对比后再选择,要想分辨清楚机构靠不靠谱,也可以去看看霍兰德职业倾向测评— 扫码测试你适合选择什么专业和职业:
IT技术涉及面很多,当前最核心的 IT 技术包括企业信息化、大数据、智能化、移动互联网、云计算、物联网和其他信息技术等。有运维,开发,测试,设计,数据库等方向,对于女生来说,选择自己感兴趣的方向先尝试,然后坚持下去,也没有那个技术是容易的,轻松的,都要学到一定程度后,才会变得稍微简单点,然后根据时代所需的变化,调整自己的技能,这样才能长久呆在IT行业。