在jQuery中只删除位置属性

Removing just position attribute in jQuery

本文关键字:位置 属性 删除 jQuery      更新时间:2023-09-26

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

  1. 导航项目-文本-隐藏在一些Div后面,我称它们为导航Div

  2. 当鼠标移动到一些像素上时 - 导航 Divs- ,它们后面的文本,左右滑动,在某些情况下,其中一些使用 animate(( 方法上下移动约 15 像素......

  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*/
    

为我所有的导航文本写了这种。.

现在我的问题是:

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

  2. 有没有其他方法可以让文本或其他元素向左、向右、向上和向下滑动,并带有可选的移动值...???例如向左 23px 或向顶部 17px... 等???- 我是有上下滑动和切换的家族主义者,但不确定它们是否足以满足我的代码......

  3. 你对此有什么更好的想法吗---实际上你会有,因为我认为这很糟糕

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

为此,您需要像 .animate 这样具有回调的东西。所以像这样:

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

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