4Manuals

  • PDF Cloud HOME

CSS / JS-如何覆盖一个孩子而不是其他孩子的父母过渡 Download

    我的Javascript从'string'转换为'integer'或'number'无效 反应:更改方向后触发重新渲染和offsetWidth的重新计算 CSS在像素中设置多个颜色渐变? 创建一个没有固定布局的HTML表,设置最大宽度,并且行不换行但溢出:隐藏 如何删除外部索引并合并内部json 在React Native 图片无法通过javascript刷新 如何在react图表上的datakey中操作DateTime 在Cypress中保存变量 如何从作为请求传递的输入类型数据绑定中提取数据

HTML

<div class="parent">
    <img class='child' src="https://picsum.photos/200/400?random=1" alt="">
    <img class='child' src="https://picsum.photos/200/400?random=2" alt="">
    <img class='child special-child' src="https://picsum.photos/200/400?random=3" alt="">
    <img class='child' src="https://picsum.photos/200/400?random=4" alt="">
    <img class='child' src="https://picsum.photos/200/400?random=5" alt="">
</div>

CSS

.parent {
    transition: transform 250ms ease-in;
}

因此,现在所有子类都具有用于转换的过渡效果,但是对于特殊子类(每次都会是不同的图像,并且将使用JS而不是CSS进行选择,我只是将类放在html中进行解释)我想让转场不同地工作,我想在其上进行2-3个转场,总共要占用其他人250毫秒的时间,我想在其他人移动的同时进行(我想所有转换都同时发生),所有这些都可以通过点击事件监听器来调用。

问题是我不能覆盖父对象上的转换,因为它需要另一个孩子的转换,并且如果我向子对象添加转换属性,它什么也不做(因为在那儿可以转换子对象上的转换)。 / p>

那我怎样才能给'特殊孩子'我想要的过渡属性?

谢谢

2 个答案:

答案 0 :(得分:1)

您可以在所有.parent元素中直接应用所需的过渡,而无需在.child中设置过渡规则(以便其子级继承它),除外 ”之一:

.child:not(.special-child) { ... }

然后,为该元素制定正确的规则。

document.getElementById('transform').addEventListener('click', function() {
  var children = document.querySelectorAll('.child');
  children.forEach(function(child) {
    child.classList.add('transformed');
  });
});
.child:not(.special-child) {
  transition: transform 2s;
}
.transformed:not(.special-child) {
  transform: rotate(90deg);
}

.special-child {
  transition: width 0.5s, height 0.5s 0.5s, transform 1s 1s;
  width: 100px;
  height: 100px;
}
.special-child.transformed {
  width: 150px;
  height: 150px;
  transform: rotate(90deg);
}
<div class="parent">
  <img class='child' src="https://picsum.photos/100/100?random=1" alt="">
  <img class='child special-child' src="https://picsum.photos/100/100?random=2" alt="">
  <img class='child' src="https://picsum.photos/100/100?random=3" alt="">
</div>

<button id="transform">Click me!</button>

答案 1 :(得分:0)

在.child上设置转换

.child {
  transition: transform 2s;
}
.child.transformed {
  transform: rotate(90deg);
}

.special-child {
  transition: width 0.5s, height 0.5s, transform 1s;
  width: 100px;
  height: 100px;
}
.special-child.transformed {
  width: 150px;
  height: 150px;
  transform: translateY(200px);
}
<div class="parent">
  <img class='child' src="https://picsum.photos/100/100?random=1" alt="">
  <img class='child special-child' src="https://picsum.photos/100/100?random=2" alt="">
  <img class='child' src="https://picsum.photos/100/100?random=3" alt="">
</div>



Similar searches
    这:对多个对象执行相同的代码 Chilkat软件许可如何执行? 寻找Python 3.x语法-为变量分配值与将变量绑定到另一个变量 SonarQube中标记的SQL查询串联 在MacOS中启动Django服务器时,为什么会出现错误?