贝塞尔

美妙的 CSS3 动画!一组梦幻般的按钮效果

天涯浪子 提交于 2020-03-31 02:53:09
  今天给大家带来的是五款梦幻般的动画按钮效果。下面是在线演示,把鼠标放在按钮上试试,有惊喜哦! CSS3 引入了众多供功能强大的新特性,让设计和开发人员能够轻松的创作出各种精美的界面效果。    温馨提示:为保证最佳的效果,请在 IE10+、Chrome、Firefox 和 Safari 等现代浏览器中浏览。 源码下载 在线演示   这些精美的效果用到了 CSS3 border-radius(圆角)、box-shadow(阴影)、transition(变形)、transform(转换)和 animation(动画)等特性,公共部分的代码 精简以后如下: section > div { display: inline-block; position: relative; width: 200px; height: 200px; margin: 0px auto; /*对于正方形元素border-radius设置为50%刚好变成圆形*/ border-radius: 50%; /*宽度为10px的、不透明度为0.7的黑色边框效果*/ border: 10px solid hsla(0,0%,0%,.7); /*通过边框阴影实现立体按钮效果,inset是内阴影效果*/ box-shadow: inset 0 15px 15px -5px hsla(0,0%,100%,.7),

css3之Transition(转换)

别来无恙 提交于 2020-03-31 01:45:48
一直觉得css3效果很炫,也间接得学习过,可是没有实际做过些效果,所以再次使用时还是稀里糊涂,好像没学过一样,所以还是好记性不如烂笔头,我还是记载下来吧,方便自己忘记时查看。   本文参照 w3cplus网站 ,这个网站很方便学习,讲解也很齐全。介绍给大家使用。   W3C标准中对css3的transition这是样描述的:“css的transition允许css的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点、被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值。”    语法: transition : [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'> [, [<'transition-property'> || <'transition-duration'> || <'transition-timing-function'> || <'transition-delay'>]]*   transition主要包含四个属性值:     执行变换的属性:transition-property,     变换延续的时间:transition-duration,     在延续时间段

H5知识点(三)CSS3动画

主宰稳场 提交于 2020-03-09 06:13:00
过渡动画 仅定义首尾状态属性 @keyframes mymove{ from{初始状态属性} to{结束状态属性} } 关键帧动画 可定义任意多的关键帧从而实现复杂的动画 @keyframes mymove{ 0%{初始状态属性} 50%(中间再可以添加关键帧) 100%{结束状态属性} } animation animation-name 检索或设置对象所应用的动画名称 必须与规则@keyframes配合使用, animation-duration 检索或设置对象动画的持续时间 animation-timing-function 检索或设置对象动画的过渡类型 属性值: - linear:线性过渡。等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0) - ease:平滑过渡。等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0) - ease-in:由慢到快。等同于贝塞尔曲线(0.42, 0, 1.0, 1.0) - ease-out:由快到慢。等同于贝塞尔曲线(0, 0, 0.58, 1.0) - ease-in-out:由慢到快再到慢。等同于贝塞尔曲线(0.42, 0, 0.58, 1.0) - step-start:马上跳到动画每一结束桢的状态 animation-fill-mode 设置对象状态 属性值: none:默认值。不设置对象动画之外的状态

WPF将点列连接成光滑曲线——贝塞尔曲线

丶灬走出姿态 提交于 2020-03-05 17:21:00
背景 最近在写一个游戏场景编辑器,虽然很水,但是还是遇到了不少问题。连接离散个点列成为光滑曲线就是一个问题。主要是为了通过关键点产生2D的赛道场景。总之马路不可能是直线相连的,当然需要曲线光滑相连。现在我就来解决这个问题。 贝塞尔曲线 贝塞尔曲线,又称 贝兹 曲线或贝济埃曲线,一般的矢量图形 软件 通过它来精确画出曲线,贝兹曲线由线段与 节点 组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。当然在一些比较成熟的位图软件中也有贝塞尔 曲线工具 ,如PhotoShop等。在Flash4中还没有完整的曲线工具,而在Flash5里面已经提供出贝塞尔曲线工具。 这里是百度里面的介绍。直接搬过来了。 问题 如图,这些绿色的点我们希望用光滑的曲线连接它们。 看看WPF给我们提供的函数: 来自MSDN 我们发现point3和point4是我们需要的,这两个点我们直接可以从点列中取得,但是point1和point2如何获取呢?控制点到底是个什么东西。当然我试了很多次失败了很多次~~ 巧妙的解决方案 大致思路就是 先算出相邻原始点的中点,在把相邻中点连成的线段平移到对应的原始点,以平移后的中点作为控制点,相邻原始点为起始点画贝塞尔曲线,这样就保证了连接处的光滑。而贝塞尔曲线本身是光滑的,所以就把这些原始点用光滑曲线连起来了。 ( http:/

SVG——路径

人走茶凉 提交于 2020-03-03 00:43:34
在SVG中<path>标签的功能最丰富,单独拉出来写。 其余常用标签在: https://blog.csdn.net/TSY_1222/article/details/104536572 与折线类似,也是通过给出一系列点坐标来绘制。用法是:给出一个坐标点,在坐标点前面添加一个英文字母,表示是如何运动到此坐标的。 英文字母按照功能可分为五类: 移动类 M=moveto:将画笔移动到指定坐标。 直线类 L=lineto:画直线到指定坐标; H=horizontal lineto:画水平直线到指定坐标; V=vertical lineto:画垂直直线到指定坐标。 曲线类 C=curveto:画 三次贝塞尔曲线 经 两个 指定控制点到达终点坐标; S=shortand/smooth curveto:与前一条三次贝塞尔曲线相连,第一个控制点为前一条曲线第二个控制点的对称点,只需输入第二个控制点和终点,即可绘制一个三次贝尔赛曲线; Q=quadratic Bezier curveto:画 二次贝塞尔曲线 经 一个 指定控制点到达终点坐标; T=Shorthand/smooth quadratic Bezier curveto:与前一条二次贝塞尔曲线相连,控制点为前一条二次贝尔赛曲线控制点的对称点,只需输入终点,即可绘制一个二次贝尔赛曲线。 弧线类 A=elliptical arc

css3-3D和动画

空扰寡人 提交于 2020-03-01 19:51:37
景深 生活中的3d 区别于2d的地方 ​ 1、近大远小 景深 程序中实现的方法 perspective 元素距离 视线的距离(物体和眼睛的距离越小,近大远小的效果越明显) perspective: 1200px;(在父元素中使用) ​ transform:perspective(1200px) (在子元素中使用) ​ 两个都设置会发生冲突,建议只设置父元素,通常的数值在900-1200之间 如果当你的视线距离物体足够远的时候,基本上就不会有近大远小的感觉 perspective-origin ​ 观察3d元素的(位置)角度 ​ perspective-origin:center center (中心) perspective-origin:left top (左上角) perspective-origin:100% 100% (右下角) 3D 2d场景,在屏幕上水平和垂直的交叉线x轴和y轴 3d场景,在垂直于屏幕的方法,相对于3d多出个z轴 Z轴:靠近屏幕的方向是正向,远离屏幕的方向是反向 实现3D场景 transform-style属性 transform-style属性是3D空间一个重要属性,指定嵌套元素如何在3D空间中呈现。他主要有两个属性值:flat和preserve-3d ​ 其中flat值为默认值,表示所有子元素在2D平面呈现。preserve

07-CSS3动画

一世执手 提交于 2020-01-20 13:51:44
animation animation-name(动画名称) animation-name: keyfamename | none; //检索或设置对象所应用的动画名称 animation-duration(动画持续时间) animation-duration: time; //检索或设置对象动画的持续时间 animation-timing-function ( 动画的过渡类型) annimation-timing-function: ease | linear | ease-in | ease-out | ease-in-out | step-start | step-end | …;  //设置动画过渡类型 // ease:平滑过渡。等同于贝塞尔曲线(0.0,0.0,1.0,1.0)默认值 // linear:线性过渡。等同于贝塞尔曲线(0.25,0.1,0.25,1.0) // ease-in:由慢到快。等同于贝塞尔曲线(0.42,0,1.0,1.0) // ease-out:由快到慢。等同于贝塞尔曲线(0,0,0.58,1.0) //ease-in-out:由慢到快再到慢。等同于贝塞尔曲线(0.42,0,0.58,1.0) //step-start:等同于steps(1,start) //step-end:等同于steps(1,end) //steps(<integer>

纯 CSS 实现波浪效果!

喜夏-厌秋 提交于 2019-12-10 03:31:01
原文: 纯 CSS 实现波浪效果! 一直以来,使用纯 CSS 实现波浪效果都是十分困难的。 因为实现波浪的曲线需要借助贝塞尔曲线。 而使用纯 CSS 的方式,实现贝塞尔曲线,额,暂时是没有很好的方法。 当然,借助其他力量(SVG、CANVAS),是可以很轻松的完成所谓的波浪效果的,先看看,非 CSS 方式实现的波浪效果。 使用 SVG 实现波浪效果 借助 SVG ,是很容易画出三次贝塞尔曲线的。 看看效果: 代码如下: <svg width="200px" height="200px" version="1.1" xmlns="http://www.w3.org/2000/svg"> <text class="liquidFillGaugeText" text-anchor="middle" font-size="42px" transform="translate(100,120)" style="fill: #000">50.0%</text> <!-- Wave --> <g id="wave"> <path id="wave-2" fill="rgba(154, 205, 50, .8)" d="M 0 100 C 133.633 85.12 51.54 116.327 200 100 A 95 95 0 0 1 0 100 Z"> <animate dur="5s"

-webkit-font-smoothing,transition,transform动画

烂漫一生 提交于 2019-12-09 10:07:46
1.-webkit-font-smoothing CSS3里面加入了一个“-webkit-font-smoothing”属性。这个属性可以使页面上的字体抗锯齿,使用后字体看起来会更清晰舒服。 none:文字的默认样式,可能会出现模糊的锯齿模样 antialiased:无锯齿,让文字变得清晰可见 2.transform transform的含义是:改变,使…变形;转换 transform的属性包括:rotate() / skew() / scale() / translate(,) ,分别还有x、y之分,比如:rotatex() 和 rotatey() ,以此类推。 下面我们来分解各个属性的用法: transform:rotate(): 含义:旋转;其中“deg”是“度”的意思,如“10deg”表示“10度”下同。 transform:skew(): 含义:倾斜; transform:scale(): 含义:比例;“1.5”表示以1.5的比例放大,如果要放大2倍,须写成“2.0”,缩小则为负“-”。 transform:translate(): 含义:变动,位移;如下表示向右位移120像素,如果向上位移,把后面的“0”改个值就行,向左向下位移则为负“-”。 3.transition transition允许CSS的属性值在一定的时间区间内平滑地过渡。这种效果可以在鼠标单击、获得焦点

HTML5 Canvas(基础知识)

拜拜、爱过 提交于 2019-12-05 15:42:57
最近笔者在学习HTML5的新元素 <canvas> ,会分享一些基础知识以及小例子,最终使用 <canvas> 实现一个绘制简单图表(条形图、线图或者饼图)的js库,会更新一到两篇文章~ 下面我们开始吧~ 确认宽度和高度 我们首先应该指定 <canvas> 标签即画布的宽度和高度属性,并在开始和闭合标签之间添加后备信息: <html> <head> <meta charset="utf-8"> </head> <body> <canvas id="canvas" width="500" height="500">Canvas is not supported.</canvas> </body> </html> 取得绘图上下文 调用 canvas 的 getContext() 方法,这个方法接收一个参数,即上下文的名字: var canvas = document.getElementById("canvas"); if(canvas.getContext) { var context = canvas.getContext("2d") } 上述例子中,我们在调用 getContext() 方法时,首先检测其是否存在,这是由于有的浏览器遇到HTML规范之外的标签时,也会创建一个DOM对象,比如我们在Chrome中尝试以下代码: <ppp id="ppp"></ppp>