Affecter的接口文檔

概念

  • Affecter 影響者 : 用于根據(jù)子元素與其與特定1個或者多位置的距離對子元素設置樣式;
  • AffectedItem 影響項目 : Affecter 所展示的內(nèi)容的基本單位绢记,也是被影響的對象翻斟;
  • affectAnchor 影響錨點 : 影響 item 的點;
  • itemAnchor 項目錨點 : 項目的錨點律胀;

類型表示規(guī)則

ScaleNumber : 表示比例的數(shù)字類型;
Coord = {x:number,y:number}      : 表示坐標的類型 
Size = {width:number,height:number}     : 表示尺寸的類型
Rect = {x:number,y:number,width:number,height:number}       : 表示矩形的類型
Element : 原生Dom元素
RowCol = {row:number,col:number}    : 表示行列號的類型
Style : React樣式對象類型
CalssName : React的calssName的類型

Affecter 影響者

props

affectAnchors

  • 類型: [Coord]?

說明

affectAnchors中的元素表示影響錨點在Affecter的視口上的偏移坐標疑苔;
坐標的單位由 usePixelCoordInAffecter 決定占业;

usePixelCoordInAffecter

  • 類型: boolean?

說明

表示affectAnchors中的坐標單位是否是像素;
當為 true 時造虎,affectAnchors 中坐標單位是像素;
當為 false 或者未定義時纷闺,affectAnchors 中坐標單位是偏移像素相對于 Affecter 寬度和高度的比例算凿; 即: x 表示 影響錨點在X軸方向上相對于Affecter的寬度的偏移比例,y 表示 影響錨點在Y軸方向上相對于Affecter的高度的偏移比例犁功;

itemAnchor 項目錨點

  • 類型: {x:ScaleNumber,y:ScaleNumber}
  • 默認值: {x:0.5,y:0.5}

說明

表示 項目錨點 在 項目視口上的 偏移坐標氓轰,用于計算與影響錨點之間的距離;單位是:偏移像素相對于項目寬高的偏移比例浸卦;

transforms

  • 類型: [ (distance:Coord,index:number,distanceArr:[Coord],itemRect :Rect,itemElement?:Element,containerElement?:Element)=>Coord ]?

說明

轉換函數(shù)數(shù)組署鸡,里面包含的函數(shù)是用來轉換項目元素的錨點與影響錨點之間的距離坐標,并返回轉換后的距離坐標對象限嫌;

getItemAffectStyle

  • 類型: (distanceArr : [Coord],itemElement : Element?,containerElement : Element?,itemRowCol:{row:number,col:number,index:number},itemRect:Rect)=>Style

說明

獲得項目影響樣式的回調(diào)函數(shù)靴庆;

getItemInitStyle

  • 類型 : (element,index,computeAffectStyleForItem : (itemElement : Element ?, orItemRect : Rect ?)=>Style )=>Style ?

說明

獲得元素的初始樣式(比如:用于布局的樣式)的回調(diào)函數(shù),在Affecter的props更新時為每個元素調(diào)用怒医;

wrapChildren

  • 類型: boolean?

說明

表示是否包裝子元素炉抒;

wrapClass

  • 類型: CalssName?

說明

定義包裝元素的類

wrapStyle

  • 類型: Style?

說明

定義包裝元素的樣式

loopType

  • 類型: "Hor" | "Ver" | "All" | "false" ?

說明

定義循環(huán)類型

wrapSpace

  • 類型: number?
  • 默認值: 0

說明

定義循環(huán)包之間的間隔;

onScroll

  • 類型: Function ?

說明

Affecter 的滑動事件處理函數(shù)稚叹;當返回 true 值時焰薄,不會執(zhí)行 Affecter 的默認操作;

計算循環(huán)(ComputeLoop)獨有的Props

ItemType

  • 類型: ReactComponent

說明

計算循環(huán)的項目類型扒袖,必須是由工廠函數(shù) computeLoopItemTypeCreater 創(chuàng)建的類型塞茅;

itemDataArr

  • 類型: Array

說明

計算循環(huán)的項目的數(shù)據(jù)數(shù)組

itemSize

  • 類型: Size
  • 說明: 項目的尺寸

horSpace

  • 類型: nunber
  • 說明: 項目間的水平間距

verSpace

  • 類型: number
  • 說明: 項目間的垂直間距

itemDataArr

  • 類型: Array
  • 說明: 項目的數(shù)據(jù)數(shù)組

roundRowCount

  • 類型: number
  • 說明: 單個循環(huán)周期內(nèi)的行數(shù);roundRowCountroundColCount 中只需設置其中一個季率,當這兩個prop都被設置時野瘦,會忽略 roundColCount 的設置;

roundColCount

  • 類型: number
  • 說明: 單個循環(huán)周期內(nèi)的列數(shù)蚀同;roundRowCountroundColCount 中只需設置其中一個缅刽,當這兩個prop都被設置時,會忽略 roundColCount 的設置蠢络;

AffectedItem 影響者的項目

props

以下props是由使用者來定義

renderAll

  • 類型: boolean ?

說明

每次刷新是否渲染所有元素衰猛,默認是否,只渲染 渲染矩形 內(nèi)的元素刹孔;

以下props由Affecter組件負責傳送啡省,用戶不用傳送

computeAffectStyleForItem

  • 類型: (itemElement : Element ?, orItemRect : Rect ?)=>Style
  • 說明: 計算元素被影響的樣式

itemIsInRenderRange

  • 類型: (itemElement : Element)=>boolean
  • 說明: 用于判斷該元素是否在渲染矩形內(nèi)娜睛;

使用說明

AffectedItem 組件專門用作 Affecter 組件的子組件,使用格式為:

<Affecter>
    <AffectedItem>
        <p>郭斌勇</p>
    </AffectedItem>
</Affecter>

您也可創(chuàng)建自己的AffectedItem組件卦睹,只需要在需要設置樣式時通過 this.props.computeAffectStyleForItem 函數(shù)獲取新的樣式即可畦戒;

工具函數(shù)

computeLoopItemTypeCreater(ItemContentType)

  • @param ItemContentType : Component 組件
  • @returns : Component 可以作為計算循環(huán)模式下的 Affecter 的 item 的組件類;

說明

生成可以作為計算循環(huán)模式下的 Affecter 的 item 的組件類结序; ItemContentType 的實例會收到以下 prop:

  • row 當前 item 的行號
  • col 當前 item 的列號
  • itemIndex 當前 item 的項目序號
  • itemData item 的數(shù)據(jù)

行號障斋、列號是 計算循環(huán)為 項目設計的網(wǎng)絡坐標,每個網(wǎng)格對應一個項目的位置徐鹤;
項目序號 表示的是項目在計算循環(huán)的循環(huán)單元(循環(huán)周期)內(nèi)的序號垃环;所以如果2個item的 itemIndex 相同,則它們接收的 itemData 也是相同的返敬;

性能優(yōu)化相關的props

throttleDelay

  • 類型: number ?
  • 默認值: 40

說明

節(jié)流閥體的時間限遂庄,即該數(shù)值表示多長時間內(nèi)不允許觸發(fā)第2次更新

throttleStep

  • 類型: number ?
  • 默認值: 2

說明

節(jié)流閥體的步長限,即該數(shù)值表示多長的滑動距離才能觸發(fā)第2次更新

renderExtendRadius

  • 類型: number ?

說明

項目的渲染范圍的擴展半徑劲赠;

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涛目,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子凛澎,更是在濱河造成了極大的恐慌霹肝,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件预厌,死亡現(xiàn)場離奇詭異阿迈,居然都是意外死亡,警方通過查閱死者的電腦和手機轧叽,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刊棕,“玉大人炭晒,你說我怎么就攤上這事∩牵” “怎么了网严?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長嗤无。 經(jīng)常有香客問我震束,道長,這世上最難降的妖魔是什么当犯? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任垢村,我火速辦了婚禮,結果婚禮上嚎卫,老公的妹妹穿的比我還像新娘嘉栓。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布侵佃。 她就那樣靜靜地躺著麻昼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪馋辈。 梳的紋絲不亂的頭發(fā)上抚芦,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天,我揣著相機與錄音迈螟,去河邊找鬼叉抡。 笑死,一個胖子當著我的面吹牛井联,可吹牛的內(nèi)容都是我干的卜壕。 我是一名探鬼主播,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼烙常,長吁一口氣:“原來是場噩夢啊……” “哼轴捎!你這毒婦竟也來了?” 一聲冷哼從身側響起蚕脏,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤侦副,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后驼鞭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秦驯,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年挣棕,在試婚紗的時候發(fā)現(xiàn)自己被綠了译隘。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡洛心,死狀恐怖固耘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情词身,我是刑警寧澤厅目,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站法严,受9級特大地震影響损敷,放射性物質發(fā)生泄漏。R本人自食惡果不足惜深啤,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一拗馒、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垫挨。三九已至,卻和暖如春触菜,著一層夾襖步出監(jiān)牢的瞬間九榔,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工涡相, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留哲泊,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓催蝗,卻偏偏與公主長得像切威,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子丙号,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 前端開發(fā)面試題 <a name='preface'>前言</a> 只看問題點這里 看全部問題和答案點這里 本文由我...
    自you是敏感詞閱讀 763評論 0 3
  • 第3章 基本概念 3.1 語法 3.2 關鍵字和保留字 3.3 變量 3.4 數(shù)據(jù)類型 5種簡單數(shù)據(jù)類型:Unde...
    RickCole閱讀 5,130評論 0 21
  • 每年的陽歷7~8月份是東港地區(qū)對蝦病毒蚕入(白斑癥病毒病為主)發(fā)病的高峰期,主要癥狀是:對蝦游塘犬缨,俗稱飛機蝦...
    吳delai閱讀 585評論 0 0
  • 【肖申克的救贖】這是我最喜歡的電影之一喳魏。因為它很有教育意義,所以它是非常好的勵志電影教材怀薛。 [一]瑞德說“他不跟獄...
    禪院鐘聲閱讀 472評論 0 1
  • 1. 最近公司忙于招聘事宜刺彩,我也算過了一把HR的癮。 每天忙于穿梭在各種報表對賬中枝恋,抽空查看簡歷約見面試创倔,并且初試...
    嗨七爺閱讀 366評論 4 3