img的hover事件闪动

WBOY
Freigeben: 2016-10-10 11:40:54
Original
2061 Leute haben es durchsucht

今天给同学写一个相册照片鼠标浮动显示细节的效果,遇到了闪动的bug,也顺利解决,就写下来跟大家分享。

我使用的是‘标签:hover + 标签’的形式,如果使用jquery的mouseover、mouseout等事件,也可以参考此方法,原理一样。

分析:图片使用,然后使用div+span写入鼠标浮动要显示的文字和背景。如下代码:(会出现闪动)

html代码:

<span style="color: #008080;">1</span> <span style="color: #0000ff;"><span style="color: #800000;">img </span><span style="color: #ff0000;">src</span><span style="color: #0000ff;">="1.jpg"</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">2</span> <span style="color: #0000ff;"><span style="color: #800000;">div</span><span style="color: #0000ff;">></span> 
<span style="color: #008080;">3</span>   <span style="color: #0000ff;"><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>图片1<span style="color: #0000ff;"></span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">4</span>   <span style="color: #0000ff;"><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>姓名<span style="color: #0000ff;"></span><span style="color: #800000;">span</span><span style="color: #0000ff;">></span>
<span style="color: #008080;">5</span> <span style="color: #0000ff;"></span><span style="color: #800000;">div</span><span style="color: #0000ff;">></span></span></span></span></span>
Nach dem Login kopieren

css代码:

<span style="color: #008080;"> 1</span> <span style="color: #800000;">*</span>{
<span style="color: #008080;"> 2</span> <span style="color: #ff0000;">  margin</span>:<span style="color: #0000ff;"> 0</span>;
<span style="color: #008080;"> 3</span> <span style="color: #ff0000;">  padding</span>:<span style="color: #0000ff;"> 0</span>;
<span style="color: #008080;"> 4</span> }
<span style="color: #008080;"> 5</span> <span style="color: #800000;">img,div</span>{<span style="color: #008000;">/*</span><span style="color: #008000;">注意图片跟div大小要一致,位置要重合</span><span style="color: #008000;">*/</span>
<span style="color: #008080;"> 6</span> <span style="color: #ff0000;">  width</span>:<span style="color: #0000ff;"> 200px</span>;
<span style="color: #008080;"> 7</span> <span style="color: #ff0000;">  height</span>:<span style="color: #0000ff;"> 200px</span>;
<span style="color: #008080;"> 8</span> }
<span style="color: #008080;"> 9</span> <span style="color: #800000;">div</span>{<span style="color: #008000;">/*</span><span style="color: #008000;">设置好div位置后,设为隐藏</span><span style="color: #008000;">*/</span>
<span style="color: #008080;">10</span> <span style="color: #ff0000;">  background-color</span>:<span style="color: #0000ff;"> rgba(242, 242, 242, 0.7)</span>;
<span style="color: #008080;">11</span> <span style="color: #ff0000;">  position</span>:<span style="color: #0000ff;"> absolute</span>;
<span style="color: #008080;">12</span> <span style="color: #ff0000;">  margin-top</span>:<span style="color: #0000ff;"> -203px</span>;
<span style="color: #008080;">13</span> <span style="color: #ff0000;">  display</span>:<span style="color: #0000ff;"> none</span>;
<span style="color: #008080;">14</span> }
<span style="color: #008080;">15</span> <span style="color: #008000;">/*</span><span style="color: #008000;">出现bug位置</span><span style="color: #008000;">*/</span>
<span style="color: #008080;">16</span> <span style="color: #800000;">img:hover + div</span>{<span style="color: #008000;">/*</span><span style="color: #008000;">鼠标浮动到img,让后面紧跟的div的display样式改为显示block</span><span style="color: #008000;">*/</span>
<span style="color: #008080;">17</span> <span style="color: #ff0000;">  display</span>:<span style="color: #0000ff;"> block</span>;
<span style="color: #008080;">18</span> <span style="color: #ff0000;">  cursor</span>:<span style="color: #0000ff;"> pointer</span>;
<span style="color: #008080;">19</span> }
<span style="color: #008080;">20</span> <span style="color: #800000;">span</span>{
<span style="color: #008080;">21</span> <span style="color: #ff0000;">  display</span>:<span style="color: #0000ff;"> inline-block</span>;
<span style="color: #008080;">22</span> <span style="color: #ff0000;">  margin-bottom</span>:<span style="color: #0000ff;"> 15px</span>;
<span style="color: #008080;">23</span> <span style="color: #ff0000;">  margin-left</span>:<span style="color: #0000ff;"> 70px</span>;
<span style="color: #008080;">24</span> }
<span style="color: #008080;">25</span> <span style="color: #800000;">span:nth-of-type(1)</span>{
<span style="color: #008080;">26</span> <span style="color: #ff0000;">  margin-top</span>:<span style="color: #0000ff;"> 50px</span>;
<span style="color: #008080;">27</span> }
Nach dem Login kopieren

思考鼠标浮动的流程,是鼠标一到img上,div就显示,但是要注意,div显示以后,鼠标虽然看起来还在图片的区域内, 但是鼠标hover的元素已经变为出现的div,所以此时就会div继续回到display:none;,循环往复,就会不停闪动。
所以要加一个样式,就是鼠标浮动到div,也要修改div的display 样式为block。可以直接加入出现bug位置的代码(加‘,div : hover’),代码如下:

<span style="color: #800000;">img:hover + div, div : hover</span>{<span style="color: #ff0000;">
  display</span>:<span style="color: #0000ff;"> block</span>;<span style="color: #ff0000;">
  cursor</span>:<span style="color: #0000ff;"> pointer</span>;
}
Nach dem Login kopieren

这样相片浮动效果就完美了~

如有错误,请您指正!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!