中文字幕久久亚洲_色婷婷精品大在线视频_久久久久久久久久久久久夜_久久亚洲一区二区三区明星换脸


 

重點(diǎn)聚焦!卡片放大播放效果實(shí)現(xiàn)總結(jié),不同元素間的放大過(guò)渡效果如何實(shí)現(xiàn)?
發(fā)布時(shí)間:2023-01-11 10:59:18 文章來(lái)源:程序員客棧
背景最近一段時(shí)間做了幾個(gè)需求,其中涉及的素材列表展示,需要實(shí)現(xiàn)類(lèi)似下方圖片中的動(dòng)效,暫且稱(chēng)之為【卡片放大播放動(dòng)效】,具體細(xì)節(jié)如下:初

背景

最近一段時(shí)間做了幾個(gè)需求,其中涉及的素材列表展示,需要實(shí)現(xiàn)類(lèi)似下方圖片中的動(dòng)效,暫且稱(chēng)之為【卡片放大播放動(dòng)效】,具體細(xì)節(jié)如下:


(相關(guān)資料圖)

初始展示的是封面圖片,鼠標(biāo)經(jīng)過(guò)時(shí)是視頻放大的效果;下方文字內(nèi)容區(qū)域,在放大前后展示的內(nèi)容不同,而且兩者的字體大小是一致的,不是簡(jiǎn)單的放大實(shí)現(xiàn);四五個(gè)頁(yè)面都需要實(shí)現(xiàn)相同列表效果,列表的行數(shù)和列數(shù)是不一致的;
image
遇到的四個(gè)問(wèn)題

在整個(gè)實(shí)現(xiàn)過(guò)程中,遇到以下四個(gè)問(wèn)題,后面的解析中會(huì)有對(duì)應(yīng)解答。

不同元素間的放大過(guò)渡效果如何實(shí)現(xiàn)?抽離為通用性組件時(shí),如何實(shí)現(xiàn)類(lèi)vue中的具名插槽效果,來(lái)替換下方文字信息區(qū)域?不同頁(yè)面中的列表區(qū)域?qū)挾炔煌械捻?yè)面列表還是彈性寬度,常用的flex布局無(wú)法滿(mǎn)足要求,如何實(shí)現(xiàn)呢?邊界卡片放大后,如何避免被父級(jí)列表容器overflow:hidden`隱藏掉?實(shí)現(xiàn)解析

這個(gè)動(dòng)效,在愛(ài)奇藝官網(wǎng)也有類(lèi)似效果,愛(ài)奇藝官網(wǎng)是通過(guò)生成初始狀態(tài)卡片列表和鼠標(biāo)放大卡片列表兩套列表,然后通過(guò)動(dòng)態(tài)計(jì)算放大卡片位置,相對(duì)于body進(jìn)行絕對(duì)定位展示的。

本實(shí)現(xiàn)方案通過(guò)將卡片初始狀態(tài)和放大狀態(tài),封裝到一個(gè)組件中,通過(guò)兩者間的相對(duì)關(guān)系,利用css自動(dòng)完成對(duì)應(yīng)關(guān)系,避免了大量的JS計(jì)算。

1. 放大效果實(shí)現(xiàn)

UI對(duì)該動(dòng)效的要求實(shí)際就是鼠標(biāo)視頻放大播放,如果卡片初始狀態(tài)也放置視頻video,通過(guò)transition對(duì)同一元素進(jìn)行scale放大也可以實(shí)現(xiàn),但是這是一個(gè)列表,用戶(hù)進(jìn)入頁(yè)面,就會(huì)同時(shí)加載多個(gè)視頻,用戶(hù)體驗(yàn)不是很好。

所以,實(shí)現(xiàn)方案就是卡片初始狀態(tài)放置poster圖片,鼠標(biāo)經(jīng)過(guò)時(shí),在poster上方展示視頻層(絕對(duì)定位),然后對(duì)視頻執(zhí)行animation動(dòng)畫(huà)來(lái)模擬放大效果。

卡片底部文字區(qū)域如何處理?

由于卡片初始狀態(tài)下,底部文字區(qū)域在列表布局中是占位的,所以在卡片初始狀態(tài)下,底部文字區(qū)域使用正常文檔流。

卡片鼠標(biāo)經(jīng)過(guò)狀態(tài)下,視頻層的放大效果是以poster中心點(diǎn)為放大原點(diǎn)的,所以底部文字區(qū)域使用absolute定位,相對(duì)于player進(jìn)行定位處理。

interfaceIItemData{src?:string;poster?:string;industry?:string;}interfaceIProps{posterClass:string;//poster區(qū)域?qū)捀遬layerClass:string;//放大后視頻寬高樣式itemData:IItemData;children:{[key:string]:any};}lett:NodeJS.Timeout;constVideoItem:FC=({posterClass,playerClass,itemData,children,})=>{const[isHover,setIsHover]=useState(false);constonMouseEnter=()=>{t=setTimeout(()=>{//避免快速移動(dòng)鼠標(biāo),造成視頻無(wú)法隱藏問(wèn)題setIsHover(true);},50);};constonMouseLeave=()=>{clearTimeout(t);setIsHover(false);};return(Top1
{isHover?({children?.playerBottom}
):null}
{children?.posterBottom});};exportdefaultVideoItem;

.container{position:relative;.poster{position:relative;background-position:center;background-size:cover;background-repeat:no-repeat;.player{z-index:10;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)scale(0.929);animation:showPlayer0.2sease;animation-fill-mode:forwards;.playerBottom{width:100%;position:absolute;top:100%;left:0;box-shadow:0px6px16px-8pxrgba(0,0,0,0.08),0px12px48px16pxrgba(0,0,0,0.03);filter:drop-shadow(0px9px28pxrgba(0,0,0,0.05));}}}.posterBottom{width:100%;}}@keyframesshowPlayer{0%{transform:translate(-50%,-50%)scale(0.929);}100%{transform:translate(-50%,-50%)scale(1);}}

2. 抽離為通用組件時(shí),卡片底部文字區(qū)域如何動(dòng)態(tài)替換

整個(gè)卡片組件,底部的文字區(qū)域在不同的場(chǎng)景下可能是不同的,所以作為通用性組件,需要將這部分抽離,支持動(dòng)態(tài)替換。

vue中最簡(jiǎn)單的方式,就是插槽,通過(guò)插槽從外部動(dòng)態(tài)傳入。但是react框架是不支持具名插槽的。所以,這個(gè)問(wèn)題就轉(zhuǎn)換成了,react如何實(shí)現(xiàn)具名插槽?

網(wǎng)上搜到了一種實(shí)現(xiàn)方式,通過(guò)傳入一個(gè)object來(lái)實(shí)現(xiàn),具體效果如下:

//cardList{{posterBottom:bottomInfo,playerBottom:bottomInfo,onClickPlayer:()=>{consturl=`${window.location.origin}/#/market/service/${item.itemId}`;window.open(url,"_blank");},}}//VideoItem{props.children?.playerBottom}{props.children?.posterBottom}

當(dāng)然,具名插槽還有其它的實(shí)現(xiàn)方式,后面會(huì)專(zhuān)門(mén)寫(xiě)一篇文章總結(jié)學(xué)習(xí)下。

3. 列表容器如果是彈性布局時(shí),每行的列數(shù)無(wú)法固定,flex布局無(wú)法滿(mǎn)足

這個(gè)問(wèn)題是一個(gè)通用性問(wèn)題,在容器寬度不固定時(shí),flex布局,每行最后一個(gè)元素?zé)o法選中設(shè)置樣式,同時(shí)子元素個(gè)數(shù)不固定時(shí),最后一行元素的間距會(huì)變大。

這種情況下,就需要grid布局大顯身手了,以前很少用grid布局,這次也是學(xué)習(xí)到了,具體效果如下圖:

在示例中,調(diào)整瀏覽器窗口大小,來(lái)實(shí)驗(yàn)彈性布局觀看效果代碼片段

image.png
4. 卡片放大后,可能會(huì)被容器設(shè)置的overflow:hidden給遮蓋隱藏掉

目前放大效果的實(shí)現(xiàn)方式,放大的視頻層是絕對(duì)定位的,參照物是每個(gè)卡片本身。所以在四周邊界處的卡片,放大后,很容易被容器給遮蓋。

處理方式也很簡(jiǎn)單,給容器多設(shè)置一些padding,讓放大部分足夠展示,然后用margin設(shè)置負(fù)值來(lái)調(diào)整布局

.container{margin-left:-20px;margin-right:-20px;padding-left:20px;padding-right:20px;}

總結(jié)

每個(gè)產(chǎn)品需求里,可能都會(huì)隱藏著自己的盲點(diǎn),將效果做到極致,就能獲得技術(shù)成長(zhǎng)。在重復(fù)的需求里,多反思總結(jié),尋找自己的提升點(diǎn),這就是進(jìn)步吧啊。

相關(guān)推薦

1.CSS 實(shí)現(xiàn)按鈕點(diǎn)擊動(dòng)效的套路

2.年份數(shù)字拼圖效果

3.跑馬燈簡(jiǎn)單版

4.中心點(diǎn)靠近動(dòng)畫(huà)解析

關(guān)鍵詞: 初始狀態(tài) 絕對(duì)定位 這個(gè)問(wèn)題

樂(lè)活HOT

  • 四川正式啟動(dòng)三級(jí)保供電調(diào)控措施保障民生用電 優(yōu)化各類(lèi)電源發(fā)電計(jì)劃
    四川正式啟動(dòng)三級(jí)保供電調(diào)控措施

    繼8月11日、14日連續(xù)兩次召開(kāi)電力保供工作緊急視頻會(huì)議后,8月15日,四川再次召開(kāi)電力保供調(diào)度會(huì)。記者從會(huì)上獲悉,預(yù)計(jì)全省最大用電負(fù)荷將

  • 前7月四川能源項(xiàng)目累計(jì)完成投資493億元 油氣類(lèi)項(xiàng)目完成投資159億元
    前7月四川能源項(xiàng)目累計(jì)完成投資4

    今年以來(lái),四川積極擴(kuò)大能源領(lǐng)域有效投資,前7月能源項(xiàng)目累計(jì)完成投資493億元、同比增長(zhǎng)4%。8月15日,省能源局相關(guān)負(fù)責(zé)人介紹,前7月煤炭類(lèi)

  • 四川加力加勁堅(jiān)決遏制事故多發(fā)頻發(fā)態(tài)勢(shì) 有效提升預(yù)報(bào)預(yù)警水平
    四川加力加勁堅(jiān)決遏制事故多發(fā)頻

    8月15日,全省防汛減災(zāi)、森林草原防滅火工作電視電話(huà)會(huì)議召開(kāi),深刻汲取彭州8·13山洪災(zāi)害教訓(xùn),分析研判當(dāng)前形勢(shì),安排部署下一步重點(diǎn)工作

  • 四川攀枝花推動(dòng)打造職業(yè)能力建設(shè)工作品牌 提供人才廣闊展示舞臺(tái)
    四川攀枝花推動(dòng)打造職業(yè)能力建設(shè)

    8月9日,攀枝花技師學(xué)院實(shí)習(xí)工廠(chǎng)里,焊花四濺,機(jī)器聲此起彼伏。身穿工作服的教師周樹(shù)春,在一間間操作室里進(jìn)進(jìn)出出,指導(dǎo)學(xué)生們焊接。過(guò)去

  • 上半年湖南物流需求平穩(wěn)增長(zhǎng)行業(yè)運(yùn)行平穩(wěn) 快遞業(yè)務(wù)量完成10.3億件
    上半年湖南物流需求平穩(wěn)增長(zhǎng)行業(yè)

    記者從省發(fā)改委獲悉,上半年全省物流需求平穩(wěn)增長(zhǎng),行業(yè)運(yùn)行總體平穩(wěn)。全省社會(huì)物流總額64096 2億元,同比增長(zhǎng)4 4%;全省物流業(yè)總收入為2270

  • 湖南各地工業(yè)企業(yè)忙生產(chǎn)全力以赴穩(wěn)增長(zhǎng) 生產(chǎn)線(xiàn)全力運(yùn)轉(zhuǎn)
    湖南各地工業(yè)企業(yè)忙生產(chǎn)全力以赴

    在全球最大地下工程裝備制造基地,掘進(jìn)機(jī)生產(chǎn)計(jì)劃已排到年底;千億級(jí)工程機(jī)械產(chǎn)業(yè)園區(qū)邊建設(shè)邊生產(chǎn),打造智能制造標(biāo)桿……時(shí)已立秋,三湘大

  • 江西贛州醫(yī)療衛(wèi)生服務(wù)體系進(jìn)一步完善 完善“三醫(yī)”聯(lián)動(dòng)機(jī)制
    江西贛州醫(yī)療衛(wèi)生服務(wù)體系進(jìn)一步

    上猶縣水巖鄉(xiāng)衛(wèi)生院醫(yī)生蔡昌才驅(qū)車(chē)前往金盆村為村民駱運(yùn)招治病。以往,每月去醫(yī)院就診不僅路途遠(yuǎn),還要排隊(duì)。這幾年有了家庭醫(yī)生后,直接送

  • 江西堅(jiān)持問(wèn)題導(dǎo)向推進(jìn)藥品安全專(zhuān)項(xiàng)整治走深走實(shí) 持續(xù)完善投訴舉報(bào)渠道
    江西堅(jiān)持問(wèn)題導(dǎo)向推進(jìn)藥品安全專(zhuān)

    今年2月以來(lái),省藥監(jiān)局深入開(kāi)展藥品安全專(zhuān)項(xiàng)整治行動(dòng),堅(jiān)持問(wèn)題導(dǎo)向,以嚴(yán)厲打擊違法犯罪行為、全面排查風(fēng)險(xiǎn)隱患為手段,推進(jìn)專(zhuān)項(xiàng)整治行動(dòng)

  • 江西九江多舉措為創(chuàng)業(yè)者營(yíng)造良好創(chuàng)業(yè)貸款環(huán)境 就業(yè)創(chuàng)業(yè)事項(xiàng)一次性辦
    江西九江多舉措為創(chuàng)業(yè)者營(yíng)造良好

    沒(méi)想到,現(xiàn)在直接在窗口就能辦理,真是太方便了。蔣瓊在九江市經(jīng)營(yíng)一家造型工作室,近期有意擴(kuò)大生意規(guī)模,需要資金周轉(zhuǎn)。她帶齊資料來(lái)到九

  • 上半年江西新余全市外貿(mào)進(jìn)出口總值同比增長(zhǎng)84.3% 外貿(mào)主體活力持續(xù)激發(fā)
    上半年江西新余全市外貿(mào)進(jìn)出口總

    記者從新余海關(guān)獲悉,今年上半年,新余市外貿(mào)取得了較好成績(jī),全市外貿(mào)進(jìn)出口總值184 3億元,同比增長(zhǎng)84 3%,高出全國(guó)平均水平74 9個(gè)百分點(diǎn)

  • 南昌高新區(qū)多舉措推動(dòng)重點(diǎn)項(xiàng)目建設(shè)加速跑 完善重大重點(diǎn)項(xiàng)目推進(jìn)機(jī)制
    南昌高新區(qū)多舉措推動(dòng)重點(diǎn)項(xiàng)目建

    作為南昌市第二季度集中開(kāi)工的重大項(xiàng)目之一,南昌數(shù)谷產(chǎn)業(yè)園項(xiàng)目總投資100億元,計(jì)劃2024年5月完工交付使用,擬引進(jìn)字節(jié)跳動(dòng)、華為(南昌)工

  • 安徽淮南頒發(fā)優(yōu)才卡落實(shí)高層次人才服務(wù)保障制度
    安徽淮南頒發(fā)優(yōu)才卡落實(shí)高層次人

    淮南市向中國(guó)工程院院士、安徽理工大學(xué)校長(zhǎng)袁亮頒發(fā)了第一張淮南市高層次人才優(yōu)才卡。為深化我為人才辦實(shí)事實(shí)踐活動(dòng),落實(shí)高層次人才服務(wù)保

  • 宿州市埇橋區(qū)細(xì)化工作舉措筑牢防汛“安全堤”
    宿州市埇橋區(qū)細(xì)化工作舉措筑牢防

    連日來(lái),宿州市埇橋區(qū)不斷細(xì)化各項(xiàng)工作舉措,壓實(shí)防汛各項(xiàng)責(zé)任,提升應(yīng)急救援保障能力,筑牢防汛安全堤。目前,該區(qū)防汛物資已儲(chǔ)備到位,全

  • 安徽無(wú)為市“交地即交證”優(yōu)化營(yíng)商環(huán)境政策正式落地
    安徽無(wú)為市“交地即交證”優(yōu)化營(yíng)

    近日,無(wú)為市自然資源和規(guī)劃局、無(wú)為市福渡鎮(zhèn)人民政府在無(wú)為潤(rùn)峰中海置業(yè)有限公司項(xiàng)目部現(xiàn)場(chǎng)舉行交地即交證頒證儀式,標(biāo)志該市交地即交證優(yōu)

  • 安徽全椒縣推動(dòng)農(nóng)村寄宿制學(xué)校試點(diǎn)工作
    安徽全椒縣推動(dòng)農(nóng)村寄宿制學(xué)校試

    設(shè)施齊全的衛(wèi)生食堂、水沖式的獨(dú)立衛(wèi)生間、樓道墻體粉刷一新的宿舍……走進(jìn)安徽省全椒縣武崗學(xué)校,已經(jīng)運(yùn)行滿(mǎn)一年的農(nóng)村特色寄宿制學(xué)校成果

娛樂(lè)LOVE

主站蜘蛛池模板: 国产日本欧美一区| 国产中文字幕视频在线观看| 日韩在线小视频| 日韩av一区二区三区在线观看| 久久99精品久久久久久水蜜桃| 一区二区免费在线观看| 国产在线观看91精品一区| 日本国产高清不卡| 亚洲综合五月天| 国产国语刺激对白av不卡| 久久777国产线看观看精品| 日本三日本三级少妇三级66| 国产欧美日韩丝袜精品一区| 两个人的视频www国产精品| 手机在线观看国产精品| 在线视频不卡国产V| 国产成人精品a视频一区www| 精品毛片久久久久久| 欧美日韩福利在线| 日本不卡二区| 欧美精品久久久久久久久久久| 日韩人妻精品无码一区二区三区| 一区二区在线中文字幕电影视频 | 日韩一区视频在线| 亚洲精品免费在线看| 久久久免费在线观看| 韩国福利视频一区| 国产精品成人播放| 久久精品国产欧美亚洲人人爽 | 国产精品黄视频| 色婷婷综合久久久久| 伊人久久大香线蕉午夜av| 97精品视频在线| 精品国偷自产在线| 国产精品视频永久免费播放| 中文字幕欧美日韩一区二区三区| 国产精品专区在线| 日韩无套无码精品| 国产精品综合不卡av| 国产不卡视频在线| 欧美激情极品视频|