重置除当前悬停元素之外的所有其他jQuery动画

时间:2016-08-02 00:14:51

标签: javascript jquery html css

所以我的代码有问题。它正常工作。但我有3个盒子彼此相邻。在悬停时,他们做东西......即改变宽度。我有问题。就是如果你将鼠标移动到所有这些上面它们都会开始。但我只想要你停止鼠标的那个。

因此,当我将鼠标悬停在其中任何一个框上时,我需要重置所有其他动画,以阻止多个动画框一次动画。谢谢!

的jquery

 function animatedText() {
  var $animatedTextBox = $('.animated-text');
  var $animatedAnimation = $('.animated-text-animation');

  $('.animated-text-content').css('display', 'none');
  $animatedTextBox.on('mouseenter', function() {
    $(this).find('.animated-text-animation').css('justify-content', 'flex-start');
    $(this).find($('.animated-text-content')).delay(600).fadeIn(800);
  });


  $animatedTextBox.on('mouseleave', function() {
    $(this).find('.animated-text-animation').css('justify-content', 'center');
    $(this).find($('.animated-text-content')).fadeOut(250);
  });
}

的CSS

.animated-text {
  min-width: 33.333%;
  min-height: 700px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-position: center;
  background-size: cover;
  transition: all 0.7s ease-in-out;
}

.animated-text-animation {
    min-width: 50%;
    min-height: 550px;
    display: flex;
    align-items: center;
    justify-content: space-around;
    background-color: rgba(0, 0, 0, 0.7);
    transition: all 1s ease-in-out;
}

.animated-text:hover .animated-text-animation {
  flex: 1 1 40%;
}

.animated-text:hover {
    min-width: 50%;
}

.animated-text-container:hover .animated-text:not(:hover) {
  min-width: 25%;
}

的HTML

  <div class="animated-text-container">
    <div class="animated-text animated-text-1">
      <div class="animated-text-animation">
        <div class="animated-text-logo animated-text-logo-1"></div>
        <div class="animated-text-content">
          <h1>We will do all of the following for free for the first 30 days to prove our ability, our worth, and our character to you:</h1>
          <li><span>Free Positioning Evaluation (Analyzing What you need to succeed)</span></li>
          <li><span>Free Website Evaluation</span></li>
          <li><span>Free Landing Page Evaluation</span></li>
          <li><span>Free (entire) account set-up for a PPC Campaign on AdWords or Bing</span></li>
          <li><span>Free Keyword List Building and Deployment</span></li>
          <li><span>Free Ad Campaign Design and Implementation</span></li>
          <li><span>Free Google Analytics Analysis and Evaluation</span></li>
          <li><span>Free Phone Consultations to Discuss Your Account</span></li>
        </div>
      </div>
    </div>

    <div class="animated-text animated-text-2">
      <div class="animated-text-animation">

        <div class="animated-text-logo animated-text-logo-2"></div>
        <div class="animated-text-content">
          <h1>What we do NOT do for free:</h1>
          <div class="li-container">
            <div class="li-content">
              <li><span>Website Development</span></li>
              <li><span>Landing Page Redesign</span></li>
              <li><span>Local Listing Management</span></li>
              <li><span>Online Reputation Management</span></li>
              <li><span>Audience Remarketing Campaigns</span></li>
            </div>
            <div class="li-content">
              <li><span>Live Chat Services</span></li>
              <li><span>Instant Email Alerts</span></li>
              <li><span>Call Recording & Tracking</span></li>
              <li><span>Website SEO Optimization</span></li>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="animated-text animated-text-3">
      <div class="animated-text-animation">

        <div class="animated-text-logo animated-text-logo-3"></div>
        <div class="animated-text-content">
          <h1>It is our earnest goal to:</h1>
          <div class="li-structure">
            <li></li><span>Analyze the current position of your company in the market</span>
          </div>
          <div class="li-structure">
            <li></li><span>Determine what tools and online campaigns you need to increase your sales and customer base</span>
          </div>
          <div class="li-structure">
            <li></li><span>Formulate an effective plan to increase the growth of your company through increased customers</span>
          </div>
          <div class="li-structure">
            <li></li><span>Effectively implement a cost effective advertising campaign to get the most out of every dollar spent</span>
          </div>
          <div class="li-structure">
            <li></li><span>Build an ongoing and long lasting friendship based on mutual trust, respect, and performance</span>
          </div>
        </div>
      </div>
    </div>

  </div>
</div>

1 个答案:

答案 0 :(得分:0)

您可以使用stopPropagation方法,以便现在触发多于您停止鼠标的方法。根据需要调整延迟(500)以达到所需效果。

var time;
function animatedText() {

  $('.animated-text-content').css('display', 'none');

  $('.animated-text').on('mouseenter', function(e) {
    if(time){
        clearTimeout(time);   
    }
    e.stopPropagation();
    $(this).find('.animated-text-animation').css('justify-content', 'flex-start');
    $(this).find($('.animated-text-content')).delay(600).fadeIn(800);
  });


  $('.animated-text').on('mouseleave', function(e) {
    time = setTimeout($.proxy(function(){
        $(this).find('.animated-text-animation').css('justify-content', 'center');
        $(this).find($('.animated-text-content')).fadeOut(250);
    }, this),500); //Delay   <-------
  });
}