-
達薩法法師法師
查看全部 -
如何理解解耦的問題 如何理解解耦? 在訂閱發(fā)布模式和直接調用處理函數(shù)時,我只看到了當被調用的處理函數(shù)B不存在時,觸發(fā)者本身A的函數(shù)還能正常執(zhí)行。而當被調用的處理函數(shù)B本身發(fā)生錯誤時,兩種模式中A都會報錯,導致代碼停止。 訂閱發(fā)布模式:function A(){處理某些事情;publish("消息",事件名);處理某些事情;}//假設事件名對應的處理函數(shù)Function B 直接調用:function A(){處理某些事情;B(“消息”);處理某些事情;}查看全部
-
繪制形狀 在svg中繪制多邊形的標簽是polygon,這是SVG中定義的基本形狀,可以通過polygon的points繪制出多邊形組成的坐標點,points 屬性定義多邊形每個角的 x 和 y 坐標。多邊形至少要有3個邊,所以points至少要定義3組坐標才能創(chuàng)建一個三角圖形??梢杂^察下points中是由6組坐標繪制的一個五角星圖(當然我是用工具生成的坐標) 填充顏色 默認svg會用是黑色填充顏色,所以我們需要設置新的顏色。一般可以通過fill填充顏色。同時svg也是dom節(jié)點也可以通過style直接用樣式屬性設計元素的樣式。這里填充顏色用到了linearGradient元素。 線性漸變 使用linearGradient元素即可定義線性漸變,每一個漸變色成分使用stop元素定義 <linearGradient id="star" x1="0%" y1="0%" x2="100%" y2="0%"> <stop offset="0%" stop-color="#FCF0BC"></stop> <stop offset="0%" stop-color="#FCF0BC"></stop> </linearGradient> 1. 漸變色元素必須要放到defs元素中; 2. 需要給漸變色元素設置id值,否則的話,別的元素無法使用這個漸變色。 3. 漸變色的成員使用stop定義,它的屬性也可以使用CSS定義;它支持class,id這種標準HTML都支持的屬性。其它常用屬性如下: offset屬性:這個定義了該成員色的作用范圍,該屬性取值從0%到100%(或者是0到1);通常第一種顏色都是設置成0%,最后一種設置成100%。 stop-color屬性:這個很簡單,定義了該成員色的顏色。 stop-opacity屬性:定義了成員色的透明度。 x1,y1,x2,y2屬性:這兩個點定義了漸變的方向,默認不寫的話是水平漸變,上面例子中同時也創(chuàng)建了一個垂直漸變。 4. 漸變色的使用,如例子中所示,直接用url(#id)的形式賦值給fill或者stroke就可以了。查看全部
-
animation-fill-mode,定義動畫播放時間之外的狀態(tài),顧名思義,要么就是在動畫播放完了之后給它一個狀態(tài)?animation-fill-mode?:?none?|?forwards?|?backwards?|both;?none,播放完之后不改變默認行為,默認值,forwards則是停在動畫最后的的那個畫面,backwards則是回調到動畫最開始出現(xiàn)的畫面,both則應用為動畫結束或開始的狀態(tài)。查看全部
-
123
查看全部 -
121312312
查看全部 -
111
查看全部 -
-要想實現(xiàn)3D的效果,只需指定一個元素為容器并設置transform-style:preserve-3d,那么它的后代元素便會有3D效果。
-可以呈現(xiàn)3d的屬性有,translate3d、scale3d、rotateX、rotateY、rotateZ等等
-perspective(length) 為一個元素設置三維透視的距離。
查看全部 -
CSS3的Animation有八個屬性
- animation-name :動畫名
- animation-duration:時間
- animation-delay:延時
- animation-iteration-count:次數(shù)
- animation-direction:方向
- animation-play-state:控制
- animation-fill-mode:狀態(tài)
- animation-timing-function:關鍵幀變化
查看全部 -
animation:bird-slow?400ms?steps(3)?infinite; @keyframes?bird-slow?{ ????0%?{background-position-x:?-0px} ????100%?{background-position-x:?-273px} }
steps(3)的意思就是:keyframes設置的0%-100%的段中,background-position的的x坐標會變化3次
查看全部 -
rem和em單位一樣,都是一個相對單位,不同的是em 是相對于元素的父元素的font-size進行計算,rem是相對 于根元素html的font-size進行計算,這樣一來rem就繞開 了復雜的層級關系,實現(xiàn)了類似于em單位的功能。 默認情況下瀏覽器給的字體大小是16px,按照轉化關系 16px?=?1rem
查看全部 -
技術點分解:
rem布局
幀動畫原理
營造3d視角
canvas繪圖
svg繪圖
設計模式與異步代碼梳理
查看全部 -
總結:呈現(xiàn)3d效果需要3部分
?父元素或者當前運動元素上設置透視角perspective,perspective屬性的值決定了3D效果的強度
3D視圖,設置在父元素上,子元素都可以相對與父元素的平面進行3d變形操作
3D變形函數(shù),translate3d、scale3d、rotateX、rotateY、rotateZ等等
查看全部 -
讓元素動起來:
運動?=?關鍵幀動畫?+?坐標變化
?? 2.坐標的變化一般來說前端能用到的手段
元素.position定位,修改top,left坐標修改
通過css3的transform屬性的translate
無論用那種需要記住的是元素的坐標都是position+translate的值的總和
? 3.$(".bird").transition({
? ? ? ? 'right': "3rem",//指離右邊的距離
? ?? }, 10000,'linear',function(){
? ? ? ? alert("結束")
? ? }); ? 這段代碼是對你所設的對象進行過渡,不是對你的自適應幀動畫的類進行過渡。查看全部 -
為解決必須通過絕對尺寸獲取圖片坐標,否則就會出錯問題,一種是基于CSS3的scale處理直接可以讓元素縮放,另一種就是通過background-size 讓精靈圖實現(xiàn)自適應縮放。
如何讓單圖填充一個元素呢??這里我想到了一個辦法,把整圖整體縮放,就是整體縮放。3*3的矩陣,我橫豎按照矩形的數(shù)量比縮放100%。按照矩形的排列整體縮放背景圖:
background-size:?300%?300%;
keyframes這個方法要寫到類的外面。
若background-size改了,就把background-position改到與size一致。
查看全部 -
一. CSS3的Animation有八個屬性
animation-name :動畫名
animation-duration:時間
animation-delay:延時
animation-iteration-count:次數(shù)
animation-direction:方向
animation-play-state:控制
animation-fill-mode:狀態(tài)
animation-timing-function:關鍵幀變化 //控制時間的屬性。
二.?steps() 函數(shù)用來切換多個精靈圖的,形成幀動畫,類似setTimeout的處理感覺。
三. 注意瀏覽器的兼容性需要加前綴:
-moz-animation: bird-slow 400ms steps(1,start) infinite;
四.?如果實現(xiàn)3張圖幀動畫效果,代碼如下
animation:bird-slow 400ms steps(3) infinite;
@keyframes bird-slow {
??? 0% {background-position-x: -0px}
??? 100% {background-position-x: -273px}
}注:要記得加前綴,所寫的animation前綴是什么,該語句前綴就是什么。
查看全部 -
1.resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'
'orientationchange' in window //手機瀏覽器是否支持orientationchange方法。
resizeEvt =?'orientationchange';//如果支持返回orientationchange。
resizeEvt =?'resize';//如果不支持返回resize。
//注:手機瀏覽器對于橫屏豎屏切換事件原來都是resiz方法,后來隨著技術的發(fā)展大部分手機瀏覽器加入了新的方法orientationchange
2.16px = 1rem
3. 設置根字體大?。?0 * (docEl.clientWidth / 320) + 'px';
查看全部 -
1.
?transform-style:?preserve-3d;
查看全部 -
1、canvas的arc方法
//arc的語法如下:arc(圓心x,圓心y,半徑,開始的角度,結束的角度,是否逆時針)。 context.arc(x,?y,?radius,?startAngle,?endAngle,?anticlockwise)
2.arc畫圓
?var?snowElement?=?document.getElementById("snowflake")???? ?var?canvasContext?=?snowElement.getContext("2d");???? ?//開始一個畫布中的一條新路徑(或者子路徑的一個集合)???? ?canvasContext.beginPath();???? ?//用來填充路徑的當前的顏色,白色的雪球???? canvasContext.fillStyle?=?"rgba(255,?255,?255,?0.8)";???? //一個中心點和半徑,為一個畫布的當前子路徑添加一條弧線???? //坐標,圓,沿著圓指定弧的開始點和結束點的一個角度???? //弧沿著圓周的逆時針方向(TRUE)還是順時針方向(FALSE)遍歷???? canvasContext.arc(100,100,50,0,Math.PI*2,true);????? //關閉子路徑???? canvasContext.closePath();???? //fill()?方法使用?fillStyle?屬性所指定的顏色、漸變和模式來填充當前路徑???? canvasContext.fill();
查看全部 -
1.t添加close樣式
element.addClass("close").one("animationend?webkitAnimationEnd",?function(event)?{ ????complete() ?})
查看全部 -
1、perspective
????瀏覽器的支持
????目前瀏覽器都不支持perspective
????Chrome 和 Safari 支持替代的 -webkit-perspective 屬性。
????定義和用法
? ??perspective 屬性定義 3D 元素距視圖的距離,以像素計。該屬性允許您改變 3D 元素查看 3D 元素的視圖。
????當為元素定義 perspective 屬性時,其子元素會獲得透視效果,而不是元素本身。
查看全部 -
1.繪制形狀polygon
<svg?viewBox="0?0?1000?800">?????? ????<polygon?points="256.814,12.705?317.205,198.566?512.631,198.566?354.529,313.435?414.918,499.295?256.814,384.427?98.713"></polygon>???????? </svg>
2、填充顏色:fill或者通過style。
3、線性漸變:linearGradient
<defs> ????<linearGradient?id="star"?x1="0%"?y1="0%"?x2="100%"?y2="0%"> ???????<stop?offset="0%"?stop-color="#FCF0BC"></stop> ???????<stop?offset="0%"?stop-color="#FCF0BC"></stop> ????</linearGradient> </defs>
漸變顏色必須放在defs元素中
需要給漸變色元素設置id值,否則別的元素無法使用這個漸變色
?漸變色的成員使用stop定義,它的屬性也可以使用CSS定義;它支持class,id這種標準HTML都支持的屬性。其它常用屬性如下:
offset屬性:這個定義了該成員色的作用范圍,該屬性取值從0%到100%(或者是0到1);通常第一種顏色都是設置成0%,最后一種設置成100%。
stop-color屬性:這個很簡單,定義了該成員色的顏色。
stop-opacity屬性:定義了成員色的透明度。
x1,y1,x2,y2屬性:這兩個點定義了漸變的方向,默認不寫的話是水平漸變,上面例子中同時也創(chuàng)建了一個垂直漸變。?漸變色的使用,如例子中所示,直接用url(#id)的形式賦值給fill或者stroke就可以了。
查看全部 -
1.h5的audio元素
var?audio?=?new?Audio(url);???//創(chuàng)建一個音頻對象并傳入地址 audio.loop??=?loop?||??false;?//是否循環(huán) audio.play();?//開始播放
查看全部 -
1.transform的scale屬性可以針對元素進行縮放
-webkit-transform:?scale(2);//放大兩倍 -moz-transform:?scale(2);
2.默認是50% 50%可以單獨設置
-webkit-transform-origin:71%?72%;
3.
.effect-out{ ????animation:?effectOut?8s?ease-in-out?forwards; } @keyframes?effectOut{ ????0%?{?opacity:1;?} ????100%?{transform:?scale(20);?opacity:0;?} }
查看全部
舉報