css 列表 hover时闪动

css 列表 hover时闪动



 

选中事件:

Js代码   收藏代码
  1. //企业列表增加单击事件  
  2.     $('.company-name').on('click','li.enabled',function () {  
  3.         var $self=$(this);  
  4.         $('.company-name li.li-active').removeClass('li-active').removeClass('enabled_hover').addClass('enabled');  
  5.         $self.removeClass('enabled').addClass('li-active').addClass('enabled_hover');  
  6.   
  7.     });  

 为什么要使用这种方式?

另外一种方式(方式二):

Js代码   收藏代码
  1. $('.company-name li.enabled').click(function () {  
  2.         var $self=$(this);  
  3.         $('.company-name li.li-active').removeClass('li-active').removeClass('enabled_hover').addClass('enabled');  
  4.         $self.removeClass('enabled').addClass('li-active').addClass('enabled_hover');  
  5.   
  6.     });  

 为什么不使用方式二呢?

因为刚开始初始选中的item的class 是"li-active enabled_hover",没有"enabled"

使用方式二时,没有给初始选中的item增加事件

 

hover时闪动的原因是原来item的border 粗细为1px,hover时border 粗细变为2px,那么item的宽高就有变化,所以导致闪动

解决方法:

hover时 宽和高分别减少2px,css如下:

没有hover时的样式:

Css代码   收藏代码
  1. .company-name li{ width:258px; height:30px; line-height:30px; color:#333; border:1px solid #dfdfdf; border-radius:2px; margin-bottom:10px;  
  2.                   text-align: center;  
  3.     padding:0px 1px;  
  4. }  

 高度为30px,并且左右的padding分别为1px

hover时的样式:

Css代码   收藏代码
  1. /* hover时,高度减少两个像素 */  
  2. .company-name li.enabled:hover,.company-name li.enabled_hover{  
  3.     border:2px solid #ff4646;  
  4.     height: 28px;  
  5.     line-height: 28px;  
  6.     padding:0px 0px;  
  7. }  

 如上,高度共减少了2px,左右的padding分别减少1px,达到目的

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值