在jQuery中仅删除position属性

时间:2013-09-24 19:09:42

标签: javascript jquery css

我设置了具有以下特征的代码:

  1. 导航项目 - 文本 - 隐藏在一些Divs后面,我称之为导航分区

  2. 当鼠标移动到某些像素 - 导航Divs-时,它们背后的文本,左右滑动,在某些情况下,其中一些移动顶部和底部约15 px with animate( )方法......

  3. 当鼠标移动到另一个Div时,其他文本将重置为第一个位置 对于下一个动作,我这样做:

    $(document).on('mouseover', '.pixel#p18', function(){
       $('.submenus').not("this Div's TEXT").fadeOut('fast').removeAttr('style');
    });/* this Div's Text is for Example*/
    
  4. 我为所有导航文本写了这个..

    现在我的问题是:

    1. 当我将鼠标悬停在其中一个导航Div上时,由于removeAttr('style'),一些他们没有动画的文本变得可见!但我不希望这样......

    2. 有没有其他方法可以将文本或其他元素向左,向右,向上和向下滑动,并带有可选的移动值... ???例如23px到左边或17px到顶部...等等??? - 我很喜欢使用slideUp和Down并切换但不确定它们对我的代码是否足够好......

    3. 你有没有更好的想法---你真的会因为我觉得这很糟糕

    4. 最后一个问题是为什么我的代码运行速度很慢?我写的动画有些时候已经懒散了,我不确定问题是我的选择器或其他东西。

1 个答案:

答案 0 :(得分:0)

为此你需要像.animate那样有回调的东西。如下所示:

$('.submenus').not("this Div's TEXT").animate({opacity:0},500,'linear', function() {
    $(this).removeAttr('style');
});

这只会在动画完成时删除属性。