久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

深入探究CSS鼠標指針交互效果

今天,來實現這樣一個有意思的交互效果,通過這個交換效果來聊聊前端鼠標指針交互,希望對大家有所幫助!

深入探究CSS鼠標指針交互效果

將原本的鼠標指針樣式,修改成自己想要的效果,并且添加上一些特殊的交互效果。【推薦學習:css視頻教程】

修改鼠標樣式

首先,第一個問題,我們可以看到,上圖中,鼠標指針的樣式被修改成了一個圓點:

深入探究CSS鼠標指針交互效果

正常而言應該是這樣:

深入探究CSS鼠標指針交互效果

當然,這里比較簡單,在 CSS 中,我們可以通過 cursor 樣式,對鼠標指針形狀進行修改。

利用 cursor 修改鼠標樣式

cursor CSS 屬性設置鼠標指針的類型,在鼠標指針懸停在元素上時顯示相應樣式。

cursor: auto; cursor: pointer; ... cursor: zoom-out; /* 使用圖片 */ cursor: url(hand.cur) /* 使用圖片,并且設置 fallback 兜底 */ cursor: url(hand.cur), pointer;

這個大家應該都清楚,通常而言,在不同場景下,選擇不同鼠標指針樣式,也是一種提升用戶體驗的手段。

深入探究CSS鼠標指針交互效果
深入探究CSS鼠標指針交互效果

當然,在本交互中,我們并非要將 cursor 光標設置成任一樣式,剛好相反,我們需要將他隱藏

通過 cursor: none 隱藏光標

在這里,我們通過 cursor: none 隱藏頁面的鼠標指針:

{     cursor: none; }

如此一來,頁面上的鼠標指針就消失了:

深入探究CSS鼠標指針交互效果

通過全局事件監聽,模擬鼠標指針

既然,消失了,我們就簡單模擬一個鼠標指針。

我們首先實現一個 10px x 10px 的圓形 div,設置為基于 <body> 絕對定位:

<div id="g-pointer"></div>
#g-pointer {     position: absolute;     top: 0;     left: 0;     width: 10px;     height: 10px;     background: #000;     border-radius: 50%; }

那么,在頁面上,我們就得到了一個圓形黑點:

深入探究CSS鼠標指針交互效果

接著,通過事件監聽,監聽 body 上的 mousemove,將小圓形的位置與實時鼠標指針位置重合:

const element = document.getElementById("g-pointer"); const body = document.querySelector("body");  function setPosition(x, y) {   element.style.transform  = `translate(${x}px, ${y}px)`;                 }  body.addEventListener('mousemove', (e) => {   window.requestAnimationFrame(function(){     setPosition(e.clientX - 5, e.clientY - 5);   }); });

這樣,如果不設置 cursor: none,將會是這樣一個效果:

深入探究CSS鼠標指針交互效果

再給 body 加上 cursor: none,就相當于模擬了一個鼠標指針:

深入探究CSS鼠標指針交互效果

在這個基礎上,由于現在的鼠標指針,實際上是個 div因此我們可以給它加上任意的交互效果

以文章一開頭的例子為例,我們只需要借助混合模式 mix-blend-mode: exclusion,就能夠實現讓模擬的鼠標指針能夠智能地在不同背景色下改變自己的顏色。

對于混合模式這個技巧還有所疑問的,可以看看我的這篇文章:利用混合模式,讓文字智能適配背景顏色

https://github.com/chokcoco/iCSS/issues/169

完整的代碼:

<p>Lorem ipsum dolor sit amet</p> <div id="g-pointer-1"></div> <div id="g-pointer-2"></div>
body {     cursor: none;     background-color: #fff; } #g-pointer-1, #g-pointer-2 {     position: absolute;     top: 0;     left: 0;     width: 12px;     height: 12px;     background: #999;     border-radius: 50%;     background-color: #fff;     mix-blend-mode: exclusion;     z-index: 1; } #g-pointer-2 {     width: 42px;     height: 42px;     background: #222;     transition: .2s ease-out; }
const body = document.querySelector("body"); const element = document.getElementById("g-pointer-1"); const element2 = document.getElementById("g-pointer-2"); const halfAlementWidth = element.offsetWidth / 2; const halfAlementWidth2 = element2.offsetWidth / 2;  function setPosition(x, y) {      element.style.transform  = `translate(${x - halfAlementWidth}px, ${y - halfAlementWidth}px)`;            element2.style.transform  = `translate(${x - halfAlementWidth2}px, ${y - halfAlementWidth2}px)`; }  body.addEventListener('mousemove', (e) => {   window.requestAnimationFrame(function(){     setPosition(e.clientX, e.clientY);   }); });

我們就能完美還原出題圖的效果:

深入探究CSS鼠標指針交互效果

完整的代碼,你可以戳這里:Mouse Cursor Transition

https://codepen.io/Chokcoco/pen/rNJQXXV

偽類事件觸發

有一點需要注意的是,利用模擬的鼠標指針去 Hover 元素,Click 元素的時候,會發現這些事件都無法觸發。

這是由于,此時被隱藏的指針下面,其實懸浮的我們模擬鼠標指針,因此,所有的 Hover、Click 事件都觸發在了這個元素之上。

當然,這個也非常好解決,我們只需要給模擬指針的元素,添加上 pointer-events: none,阻止默認的鼠標事件,讓事件透傳即可:

{     pointer-events: none; }

鼠標跟隨,不僅于此

當然,這里核心就是一個鼠標跟隨動畫,配合上 cursor: none

而且,鼠標跟隨,我們不一定一定要使用 JavaScript。

我在 不可思議的純 CSS 實現鼠標跟隨 一文中,介紹了一種純 CSS 實現的鼠標跟隨效果,感興趣的也可以看看。

https://github.com/chokcoco/iCSS/issues/46

基于純 CSS 的鼠標跟隨,配合 cursor: none,也可以制作出一些有意思的動畫效果。像是這樣:

深入探究CSS鼠標指針交互效果

CodePen Demo — Cancle transition & cursor none

https://codepen.io/Chokcoco/pen/gOvZoVv

(學習視頻分享:web前端)

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
日韩和欧美一区二区三区| 美女久久久久久 | 亚洲国产综合在线看不卡| 欧美xxxx中国| av高清不卡| 成人av二区| 日韩精品一卡二卡三卡四卡无卡| 久久香蕉精品| 亚洲97av| 久久av偷拍| 岛国精品一区| 色一区二区三区| 图片区亚洲欧美小说区| 免费精品视频最新在线| 日本v片在线高清不卡在线观看| 欧美日韩1区| 精品一区二区三区视频在线播放| 精品久久91| 色综合www| 国产一区二区精品| 91综合久久爱com| 欧美激情aⅴ一区二区三区 | 另类综合日韩欧美亚洲| 国产成人久久精品一区二区三区| 亚洲精品成人图区| 欧美日韩激情| 综合亚洲视频| 麻豆一区二区三区| 成人欧美一区二区三区的电影| 久久精品国语| 免费不卡在线观看| 国产欧美日韩精品一区二区免费 | 国内精品伊人| 欧美日韩中文字幕一区二区三区| 午夜在线观看免费一区| 国产日产高清欧美一区二区三区 | 精品丝袜在线| 综合激情婷婷| 国内精品美女在线观看| av一区二区高清| 911亚洲精品| 久久精品中文| 视频一区日韩| 波多野结衣久久精品| 日韩专区一卡二卡| 麻豆久久久久久| 欧美日韩视频一区二区三区| 欧美另类中文字幕 | 日韩黄色av| 日韩和的一区二在线| 亚洲精品激情| 98精品视频| 日韩中文字幕区一区有砖一区 | 亚洲天堂日韩在线| 精品国产18久久久久久二百| 日韩午夜黄色| 精品日本视频| 中文字幕av一区二区三区四区| 久久精品国产福利| 美女久久一区| 中文字幕在线视频久| 日韩精品中文字幕吗一区二区| 欧美好骚综合网| 日韩不卡免费视频| 精品一区亚洲| 成人亚洲精品| 欧美精品中文字幕亚洲专区| 午夜影院欧美| 国产精选在线| 91亚洲无吗| 亚洲一区二区三区高清不卡| 国产在线一区不卡| 欧美另类中文字幕| 日韩中文欧美在线| 精精国产xxxx视频在线野外| 欧美另类中文字幕 | 国产精品原创| 国产日韩1区| 日韩中文字幕av电影| 日韩一区二区三区免费| 美日韩一区二区三区| 日韩极品在线观看| 亚洲一区二区三区高清| 国产精品久久久久av电视剧| 国产情侣一区| 综合激情婷婷| 亚洲特色特黄| 热三久草你在线| 久久三级中文| 国产精品宾馆| 日韩av黄色在线| 蜜桃久久精品一区二区| 久久免费大视频| 红杏一区二区三区| 免费亚洲一区| 国产精品videossex| 日韩福利视频一区| 亚洲va久久久噜噜噜久久| 国产精品美女久久久| 免费不卡中文字幕在线| 亚洲精品国产嫩草在线观看| 精品国产一区二区三区av片| 欧美日韩一视频区二区| 亚洲精品综合| 久久高清国产| aa国产精品| 亚洲精品中文字幕乱码| 国产二区精品| 九九在线精品| 欧美日韩第一| 亚洲精品91| 日韩一区二区久久| 一区在线免费| 国产偷自视频区视频一区二区| 欧美手机在线| 性欧美xxxx免费岛国不卡电影| 中文一区一区三区高中清不卡免费| 久久99精品久久久野外观看| 免费视频一区二区三区在线观看| 国产精品亚洲综合色区韩国| 国产欧美精品久久| 久久99性xxx老妇胖精品| 国产精品mm| 精品国产一区二区三区2021| 国产91在线播放精品| 国产一区二区三区久久| 国模大尺度视频一区二区| 久久久久久婷| 成人羞羞视频播放网站| 亚洲午夜在线| 另类亚洲自拍| 日韩在线一区二区| 亚洲天堂日韩在线| 91精品视频一区二区| 国产精品天天看天天狠| 久久久91麻豆精品国产一区| 伊人久久av| 国产高清久久| 一区二区三区网站| 国产欧美一区二区三区国产幕精品 | 日韩中文欧美在线| 亚洲涩涩av| 欧美专区一区| 精品国产亚洲一区二区三区大结局 | 欧美va天堂在线| 石原莉奈一区二区三区在线观看| 中文字幕日韩亚洲| 国产精品极品| 日韩在线二区| 国产一区二区精品| 国产亚洲一区二区三区不卡| 成人高清一区| 国产日韩综合| 日本亚洲视频| 麻豆精品一区二区综合av| yellow在线观看网址| 激情综合网五月| 日韩精品一区二区三区免费视频| 久久只有精品| 国产99久久| 亚洲免费成人av在线| 国产精品久久久久9999高清 | 国产一区二区三区网| 亚洲午夜精品久久久久久app| 亚洲日本在线观看视频| 美女精品久久| 亚洲手机视频| 日韩有吗在线观看| 精品欠久久久中文字幕加勒比| 欧美搞黄网站| 91成人小视频| www成人在线视频| 亚洲aa在线| 日韩电影免费网站| 免费在线观看一区二区三区| 国产精品美女久久久久久不卡 | 欧美日韩国产观看视频| 亚洲视频国产精品| 激情不卡一区二区三区视频在线| 午夜精品亚洲| 你懂的国产精品永久在线| 婷婷国产精品| 国产图片一区| 亚洲精品午夜av福利久久蜜桃| 日本a级不卡| 亚洲网站视频| 国产激情精品一区二区三区| 91久久亚洲| 高清久久一区| 四虎国产精品免费久久| 91精品xxx在线观看| 日韩二区三区在线观看| 99视频精品全部免费在线视频| 午夜亚洲福利| 国产伊人精品| 精品网站999| 蜜臀av一区二区三区| 波多视频一区| 国产精品hd| 亚洲91在线|