【问题标题】:Image with Animation CSS + Submit Button Hover带有动画 CSS 的图像 + 提交按钮悬停
【发布时间】:2015-10-01 14:03:33
【问题描述】:

我有一个带有 Animate.css 的动画

$('#log-circle').addClass('animated flipInY');

页面加载时出现此动画 - 没问题

但我想在用户悬停提交按钮时重新加载相同的动画。

我最初的想法是在 CLICK 上重新加载动画,(如果可能的话会很完美) - 但我认为动画永远不会发生,因为点击提交按钮后,页面将变为另一个..

然后我尝试在悬停时重新加载动画 - 比如:

<script>
$( ".log-btn" ).hover( function() {
    $('#log-circle').addClass('animated flipOutY');
});

</script>

但是什么都没有发生..

重要提示:动画出现在图像中。 (不在按钮中)

感谢大家的帮助!

http://jsfiddle.net/j03hgtae

丹尼尔

【问题讨论】:

  • 能否在 jsfiddle 中添加相关代码示例
  • 你至少需要添加一些htmlcss..
  • @DANIEL 可以在 Question 中包含 css 动画吗? “但什么也没发生……” 动画完成后,animatedflipOutY 类是否被移除?
  • 大家好!首先感谢您的时间! @PaulGraffam,-jsfiddle.net/j03hgtae - 这是 jsfiddle。代码非常简单。只有一个提交按钮(在表单内) - 和一个图像。 (在这种情况下是“头像”图像) - 该页面类似于 Gmail 登录页面。很多!正如我所说的那样,在 jsfiddle ONLOAD 中。但是当您悬停提交按钮时,我想放置相同的动画。谢了!!
  • @GuruprasadRao 感谢您的帮助!这是 jsfiddle:jsfiddle.net/j03hgtae

标签: javascript jquery html css animation


【解决方案1】:

使用.addClass().removeClass() 实际上不会触发动画。重新触发 CSS 动画的最简单方法是克隆元素。

$('#log-circle').addClass('animated flipInY');

$('#log-btn').hover( function() {
  // Clone the original element
  var element = $('#log-circle'),  
        clone = element.clone(true);
  // Insert the cloned element before the original element
  element.before(clone);
  // Remove the original element
  element.remove();
});

See the updated fiddle

而且,如第一个答案所述,您的目标是 .log-btn 而不是 #log-btn

【讨论】:

  • 嗨@Stef - 首先感谢您的时间和帮助!很好的答案!干净,并且 100% 适合我的脚本。效果很好!!非常感谢!!! :D
  • 我只是更改了 onmouseover 的悬停,以防止在“取消悬停”按钮时再次重新加载。我输入: $('#log-btn').on("mouseover", function() {. 完美!正是我想要的!tks @Stef :D
【解决方案2】:

您的目标是.log-btn,但不存在此类。

 <button type="submit" **class="btn btn-sm input-group-sm**" style="width: 160px;  margin-bottom: 10px; margin-top: 10px" **id="log-btn"** name="log-btn">Login</button>

$( ".log-btn" ).hover( function() {
   $('#log-circle').RemoveClass('animated flipOutY');
   $('#log-circle').addClass('animated flipOutY');
});

相反,您应该定位 #log-btn,因为按钮(见下文)使用的是 ID 标识符而不是类标识符。

$( "#log-btn" ).hover( function() {
    $('#log-circle').RemoveClass('animated flipOutY');
    $('#log-circle').addClass('animated flipOutY');
});

您的解决方案是将( ".log-btn" ).hover 替换为( "#log-btn" ).hover。或者,考虑将名为“log-btn”的类添加到按钮元素。

【讨论】:

  • 嗨@david-lerner 感谢您的时间和耐心来帮助我。我不是 jquery 专家,我总是对 # 或 .脚本上的标识符。 (现在我知道 # 用于 ID 和 . 用于课程 - 但我总是用展位进行测试。而且 # 也不起作用。解决方案是上面 Stef 发布的。非常适合。谢谢你的帮助!:D
猜你喜欢
  • 2013-09-07
  • 1970-01-01
  • 2020-04-28
  • 1970-01-01
  • 2010-12-27
  • 2020-09-23
  • 2018-07-30
  • 1970-01-01
  • 2018-02-09
相关资源
最近更新 更多