首頁  >  文章  >  web前端  >  CSS3和jQuery實現跟隨滑鼠方位的Hover特效

CSS3和jQuery實現跟隨滑鼠方位的Hover特效

不言
不言原創
2018-06-25 16:26:222101瀏覽

這篇文章主要介紹了基於CSS3和jQuery實現跟隨滑鼠方位的Hover特效的相關資料,需要的朋友可以參考下

今天我們來學習如何透過CSS3的特性和jQuery來創建一個感知滑鼠滑動方向的hover效果。當滑鼠滑進的時候,遮罩層會從上次滑鼠滑出的方向滑入,當滑鼠滑出的時候,遮罩層會跟著滑鼠,從滑鼠滑出的方向滑出。這是一個十分有趣的效果。
我們使用無序列表來組織縮圖和描述遮罩層:

<ul id="da-thumbs" class="da-thumbs">
<li>
<a href="http://dribbble.com/shots/502538-Natalie-Justin-Cleaning">
<img src="images/7.jpg" />
<p><span>Natalie & Justin Cleaning by Justin Younger</span></p>
</a>
</li>
<li>
<!-- ... -->
</li>
<!-- ... -->
</ul>

這些清單項目將會向左浮動,並且相對定位,因為我們絕對定位描述遮罩層:

.da-thumbs li {
float: left;
margin: 5px;
background: #fff;
padding: 8px;
position: relative;
box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.da-thumbs li a,
.da-thumbs li a img {
display: block;
position: relative;
}
.da-thumbs li a {
overflow: hidden;
}
.da-thumbs li a p {
position: absolute;
background: rgba(75,75,75,0.7);
width: 100%;
height: 100%;
}

接下來我們將這樣做:根據滑鼠進入的位置,我們將「from」樣式套用到遮罩層,它設定了遮罩層的初始位置。然後我們將使用過渡並將添加最終狀態的樣式。這樣遮罩層就滑入了。當我們離​​開元素時,我們再次應用“from”樣式給遮罩層(儘管現在實際上是滑出)並去除先前的最終狀態樣式。

嗯,以下就是這個小外掛的核心:

this.$el.on( &#39;mouseenter.hoverdir, mouseleave.hoverdir&#39;, function( event ) {
var $el = $( this ),
$hoverElem = $el.find( &#39;p&#39; ),
direction = self._getDir( $el, { x : event.pageX, y : event.pageY } ),
styleCSS = self._getStyle( direction );
if( event.type === &#39;mouseenter&#39; ) {
$hoverElem.hide().css( styleCSS.from );
clearTimeout( self.tmhover );
self.tmhover = setTimeout( function() {
$hoverElem.show( 0, function() {
var $el = $( this );
if( self.support ) {
$el.css( &#39;transition&#39;, self.transitionProp );
}
self._applyAnimation( $el, styleCSS.to, self.options.speed );
} );
}, self.options.hoverDelay );
}
else {
if( self.support ) {
$hoverElem.css( &#39;transition&#39;, self.transitionProp );
}
clearTimeout( self.tmhover );
self._applyAnimation( $hoverElem, styleCSS.from, self.options.speed );
}
} );

我們主要是給清單項目綁定'mouseenter'和'mouseleave'事件,透過_getDir函數我們得到滑鼠滑進或滑出的方向(想像偵測區域是個被分成四個三角形的矩形)。

你將會看到,在第二個demo中,我們加入了延遲,這樣當滑鼠從一個角落移到另一個角落的時候不會發生太多的動畫。
我希望你可以喜歡這個小特效並且覺得很有用!

如果瀏覽器不支援CSS過渡將會使用jQuery動畫。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP中文網!

相關推薦:

jQuery 如何實作一個滑動按鈕的開關

JavaScript如何判斷瀏覽器對CSS3屬性是否支援

以上是CSS3和jQuery實現跟隨滑鼠方位的Hover特效的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn