当前位置: 首页 > 知识库问答 >
问题:

使用jQuery addClass的转换持续时间

钦高峯
2023-03-14

我正在尝试获取jQuery addClass

演示问题:在构建演示时遇到了一个奇怪的问题——jQuery函数在我的实际网站上不起作用。不确定这是为什么,但声明它找不到变量“hoverAwayFromWindows”或“hoverOverWindows”——但这没有意义,因为它们是函数,而不是变量。

转换持续时间问题:只要父div悬停在上面,子div就会立即应用“悬停在windows样式上”类,但我希望这需要时间。通过CSS设置子级或父级的转换持续时间失败。我还尝试更改jQuery:

$(div). remveClass('hover-over-windows-style',500);

美元(div)。removeClass(“悬停窗口样式”,500毫秒)$(分区)。addClass('hover-over-windows-style')。设置动画(过渡持续时间:0.5s,500);

美元(div)。动画(“悬停窗口样式”,500);

有人能帮我解释一下我哪里出了问题吗?

function hoverOverWindows(div) {
  $(div).addClass('hover-over-windows-style');
};

function hoverAwayFromWindows(div) {
  $(div).removeClass('hover-over-windows-style');
};
.home-match-type {
    width: 47%;
    height: 300px;
    margin-top: 50px;
    float: left;
    position: relative;
    overflow: hidden;
}

.home-match-type-left { margin-right: 3% }

.img-text-container {
    width: auto;
    height: auto;
    bottom: 0;
    position: absolute;
    padding: 15px;
    background: rgba(60, 122, 173, 0.95);
}

.img-text-container-type-2 { background: rgba(60, 122, 173, 0.95) }

h3.img-text.img-header { float: left }

h3.img-text.img-header.be-central { float: none }

.img-text {
    text-align: left;
    margin: 0;
    display: inline-block;
}


.img-header {
    padding-bottom: 5px;
    text-transform: uppercase;
    border-bottom: 1px solid rgba(213, 213, 213, 0.3);
}

h3.home-featured-windows, h3.home-featured-windows a, h2.match-type-windows, h2.match-type-windows a, .match-contents a, h2.img-header-left a, h2.product-title a, .home a {
    font-weight: 300;
    color: #333;
}

h3.img-text.img-header.be-central { float: none }

.windows-type-2 { color: #333 }


h3.windows-type-2 a {
    font-weight: 300;
    color: #333;
    float: right;
}

.hover-over-windows-style {
    height: 100%; /* Could set to 300px */
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
}

.blitz-bg {
    background:red;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: 50% 50%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link href="assets/css/lib/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet" type="text/css" />

<article class="home-match-type home-match-type-left blitz-bg" onmouseover="hoverOverWindows(this.children)" onmouseout="hoverAwayFromWindows(this.children)">
  <div class="img-text-container img-text-container-type-2">
    <h3 class="img-text img-header be-central windows-type-2"><a href="matches/blitz.html">Header 3</a></h3>
    <p class="img-text text-align-centre windows-type-2">Some text goes here;.Some text goes here;.Some text goes here;.Some text goes here;.Some text goes here;..</p>
  </div>
</article>

共有2个答案

阎作人
2023-03-14

不能使用“效果”更改元素的类。它要么有,要么没有,两者之间没有区别。

但您可以使用CSS转换制作动画:

js prettyprint-override">$(function() {
  $('.btn-set').click(function(e) {
    e.preventDefault();
    $('.box').addClass('set');
  });
  $('.btn-rm').click(function(e) {
    e.preventDefault();
    $('.box').removeClass('set');
  });
});
.box {
  width: 50px;
  height: 50px;
  margin-top: 25px;
  background-color: blue;
  transition: all 0.5s ease; /* <-- look here */
}
.box.set {
  background-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="btn-set">set color</button>
<button class="btn-rm">remove color</button>
<div class="box"></div>
桑睿识
2023-03-14

你需要mouseenterMouseleave,从. hover-over-windows-style中删除的高度,因为它将由设置。动画()并删除中的类。动画()回调

function hoverOverWindows(div) {
  $(div).addClass('hover-over-windows-style');
  $(div).animate({
    height: "100%"
  }, 500);
}

function hoverAwayFromWindows(div) {
  $(div).animate({
    height: "40%"
  }, 500, function() {
    $(div).removeClass('hover-over-windows-style');
    $(div).css('height', 'auto')
  });
}
.home-match-type {
  width: 47%;
  height: 300px;
  margin-top: 50px;
  float: left;
  position: relative;
  overflow: hidden;
}

.home-match-type-left {
  margin-right: 3%
}

.img-text-container {
  width: auto;
  height: auto;
  bottom: 0;
  position: absolute;
  padding: 15px;
  background: rgba(60, 122, 173, 0.95);
}

.img-text-container-type-2 {
  background: rgba(60, 122, 173, 0.95)
}

h3.img-text.img-header {
  float: left
}

h3.img-text.img-header.be-central {
  float: none
}

.img-text {
  text-align: left;
  margin: 0;
  display: inline-block;
}

.img-header {
  padding-bottom: 5px;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(213, 213, 213, 0.3);
}

h3.home-featured-windows,
h3.home-featured-windows a,
h2.match-type-windows,
h2.match-type-windows a,
.match-contents a,
h2.img-header-left a,
h2.product-title a,
.home a {
  font-weight: 300;
  color: #333;
}

h3.img-text.img-header.be-central {
  float: none
}

.windows-type-2 {
  color: #333
}

h3.windows-type-2 a {
  font-weight: 300;
  color: #333;
  float: right;
}

.hover-over-windows-style {
  /*height: 100%;*/
  /* Could set to 300px */
  display: flex;
  align-items: center;
  flex-direction: column;
  justify-content: center;
  ;
}

.blitz-bg {
  background: red;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: 50% 50%;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<article class="home-match-type home-match-type-left blitz-bg" onmouseenter="hoverOverWindows(this.children)" onmouseleave="hoverAwayFromWindows(this.children)">
  <div class="img-text-container img-text-container-type-2">
    <h3 class="img-text img-header be-central windows-type-2"><a href="matches/blitz.html">Header 3</a></h3>
    <p class="img-text text-align-centre windows-type-2">Some text goes here;.Some text goes here;.Some text goes here;.Some text goes here;.Some text goes here;..</p>
  </div>
</article>

<article class="home-match-type home-match-type-left blitz-bg" onmouseenter="hoverOverWindows(this.children)" onmouseleave="hoverAwayFromWindows(this.children)">
  <div class="img-text-container img-text-container-type-2">
    <h3 class="img-text img-header be-central windows-type-2"><a href="matches/blitz.html">Header 3</a></h3>
    <p class="img-text text-align-centre windows-type-2">Some text goes here;.Some text goes here;.Some text goes here;.Some text goes here;.Some text goes here;..</p>
  </div>
</article>
 类似资料:
  • 目前,当您获得youtube持续时间时,您会获得类似的内容。 下面的代码将其更改为。然而,我希望只获得SECONDS,因此将是输出。

  • 我正在寻找一种从“ISO 8601持续时间格式”(P0DT0H0M0S)转换为小时的便捷方法。 到目前为止,我想到了这个: 如您所见,我的方法是将数字拆分并乘以24、1、1/60、1/3600以得到小时。我可以减少代码量吗? 样本数据和所需结果 输入: 'P1DT2H3M44S' (1 天 2 小时 3 分 44 秒) 期望输出: 26.062222222222222 (这是小时)

  • 问题内容: 我如何最好地将90060(秒)转换为字符串“ 25h 1m”? 目前,我正在使用SQL执行此操作: 但是我不确定这是最方便的方法:-) 我愿意在SQL(不同于我已经在做)或PHP中做到这一点。 编辑: 所需字符串的示例:“ 5m”,“ 40m”,“ 1h 35m”,“ 45h”,“ 46h 12m”。 问题答案: 文档是您的朋友: http://dev.mysql.com/doc/re

  • 我有ISO8601格式的持续时间值,我将其转换为时间值为整数秒,如下所示: ISO8601格式的持续时间值=“P1Y”。 我将该值存储在“时间-单位-秒”中。因此,当我检索的值将是在int,我想转换回ISO8601持续时间格式,所以我应该得到“P1Y”转换后回来。 有没有快速的方法可以做到这一点?或者我必须把时间的int值转换成float,然后通过某种方法把它转换成ISO8601持续时间。

  • 对于我的项目,我必须读取在CSV文件中提供给我们的数据并以某种格式将其写出。我几乎完成了,但我遇到的问题是我的程序没有完全读取给定的时间。从这里开始,我的程序只是读取所有给定的时间。 我试图将<code>字符串时间。 这应该会回来 [芝麻街|埃尔莫之最1240:28:11] 但它返回 [Elmo的最佳|芝麻街124;2:29,1:30,2:09,1:46,1:55,2:02,1:42,2:40,1

  • 我需要定义持续时间值(spring.redis.timeout)application.properties. 我试图使用Spring boot文档中定义的一点: Spring Boot专门支持表示持续时间。如果您公开了一个java。时间属性,应用程序属性中提供以下格式: java使用的标准ISO-8601格式。util。持续时间一种可读性更强的格式,其中值和单位是耦合的(例如,10s表示10秒)