元素更改宽度时的过渡宽度CSS

安德里亚

今天,我花了一整天的时间弄清楚如何实现这一目标,但没有做到这一点。

我想在搜索区域设置动画收缩动画,单击“选择”时它会改变宽度。我希望这种过渡是顺利的。

我尝试在select上设置min-width,而不是进行过渡。我也在搜索是否可以设置柔韧性收缩动画,但无法使其起作用。我尝试在所有元素上进行宽度转换。

有人可以帮我吗? 在此处输入图片说明

let select = document.getElementById("select");
select.addEventListener("click", function() {
    select.style.width = '200px';
});
.container {
  display: flex;
  justify-content: space-between;
  flex-direction: row;
  align-items: center;
  border: 2px solid black;
}

.logo,
.search,
.im-expanding {
  border: 2px solid red;
}

.logo {
  width: 125px;
}

.search {
  margin: 0 64px;
  width: 100%;
}

.im-expanding {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-shrink: 0;
  width:auto;
  transition: width 2s ease-in;
}
<div class="container">
  <div class="logo">logo</div>
  <div class="search">
    <div class="search-box">
      <p>Search ...</p>
    </div>
  </div>
  <div class="im-expanding">
    <select id="select" name="cars">
      <option value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="mercedes">Mercedes</option>
      <option value="audi">Audi</option>
    </select>
    <div>
      more stuff here
    </div>
  </div>
</div>

空值

您需要为选择定义一个宽度(或最小宽度),并在其上添加一个过渡。

然后,仅在选择焦点时增加宽度。

.container {
  display: flex;
  justify-content: space-between;
  flex-direction: row;
  align-items: center;
  border: 2px solid black;
}

.logo,
.search,
.im-expanding {
  border: 2px solid red;
}

.logo {
  width: 125px;
}

.search {
  margin: 0 64px;
  width: 100%;
}

.im-expanding {
  display: flex;
  flex-direction: row;
  align-items: center;
  white-space: nowrap; /* If you want to have your select label inline */
}

#select {
  width: 100px; /* OR min-width */
  transition: all 2s ease-in;
}

#select:focus {
  width: 200px; /* OR min-width */
}
<div class="container">
  <div class="logo">logo</div>
  <div class="search">
    <div class="search-box">
      <p>Search ...</p>
    </div>
  </div>
  <div class="im-expanding">
    <select id="select" name="cars">
      <option value="volvo">Volvo</option>
      <option value="saab">Saab</option>
      <option value="mercedes">Mercedes</option>
      <option value="audi">Audi</option>
    </select>
    <div>
      more stuff here
    </div>
  </div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

元素更改宽度时的过渡宽度CSS

来自分类Dev

使用CSS过渡更改div宽度

来自分类Dev

使用CSS过渡更改div宽度

来自分类Dev

根据元素的宽度更改 CSS

来自分类Dev

屏幕宽度更改属性时CSS的元素排列顺序

来自分类Dev

CSS过渡自动宽度

来自分类Dev

使用jQuery将宽度从100%更改为自动时的css过渡不起作用

来自分类Dev

设置为auto时,块元素的宽度不会过渡

来自分类Dev

Chrome中的元素抽搐-CSS宽度过渡

来自分类Dev

CSS怪异与宽度过渡

来自分类Dev

通过JavaScript应用宽度时,如何使CSS过渡发生

来自分类Dev

CSS-设置固定(或绝对)位置时过渡宽度断开

来自分类Dev

CSS通过屏幕宽度设置元素宽度

来自分类Dev

如何预测HTML元素的宽度,以便在不透明度和宽度上进行CSS过渡?

来自分类Dev

更改浏览器比例时使用html元素宽度

来自分类Dev

与HTML / CSS中的“宽度”相比,更改“元素高度”

来自分类Dev

CSS过渡最大宽度和最大高度

来自分类Dev

CSS宽度过渡不起作用

来自分类Dev

CSS过渡最大宽度和最大高度

来自分类Dev

无法使CSS宽度过渡生效

来自分类Dev

CSS:在扩展父级时匹配元素的宽度

来自分类Dev

如果元素旋转,则FireFox中的CSS宽度过渡不稳定

来自分类Dev

更改宽度CSS时禁用文本框

来自分类Dev

悬停时CSS边框宽度更改未按预期工作

来自分类Dev

当溢出:自动时,不要更改宽度值(宽度最大值)。(滚动条 CSS)

来自分类Dev

宽度改变时隐藏元素

来自分类Dev

更改悬停时的边框宽度

来自分类Dev

CSS链接宽度更改单击

来自分类Dev

更改宽度Mega Menu CSS