通过 javascript 更改类时 CSS 转换不起作用

2023-12-31

我有一个隐藏的 div #about。通过单击链接 #clickme,div 就会被函数取消隐藏。不幸的是,CSS 过渡(不透明度)不起作用,尽管它应该保留类 .hide 和 .unhide 包括过渡。有任何想法吗?

HTML

<li><a id="clickme" href="javascript:unhide('about');">click me</a></li>

<div id="about" class="hide">
<p>lorem ipsum …</p>
</div>

CSS

.hide { 
display: none;
-webkit-transition: opacity 3s;
-moz-transition: opacity 3s;
-o-transition: opacity 3s;
transition: opacity 3s;
opacity:0;  
}   
.unhide { 
display: inline;
opacity:1;
}

SCRIPT

<script>
function unhide(divID) {
var element = document.getElementById(divID);
if (element) {
  element.className=(element.className=='hide')?'hide unhide':'hide';
}
}
</script>

您需要删除display:none来自元素。您本质上是通过两种方式隐藏元素 -display:none and opacity:0.

如果您删除display:none并且仅过渡opacity属性效果就会起作用。

CSS

.hide { 
    -webkit-transition: opacity 3s;
    -moz-transition: opacity 3s;
    -o-transition: opacity 3s;
    transition: opacity 3s;
    opacity:0;  
}   

.unhide { 
    opacity:1;
}
function unhide(divID) {
  var element = document.getElementById(divID);
  if (element) {
    element.className = (element.className == 'hide') ? 'hide unhide' : 'hide';
  }
}
.hide {
  -webkit-transition: opacity 3s;
  -moz-transition: opacity 3s;
  -o-transition: opacity 3s;
  transition: opacity 3s;
  opacity: 0;
}

.unhide {
  opacity: 1;
}
<li><a id="clickme" href="javascript:unhide('about');">click me</a></li>

<div id="about" class="hide">
  <p>lorem ipsum …</p>
</div>

这里有一个jsFiddle http://jsfiddle.net/brettdewoody/bpob0hLb/显示它的动作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 javascript 更改类时 CSS 转换不起作用 的相关文章

  • CSS如何让元素淡入然后淡出?

    我可以通过使用以下 css 将其类更改为 elementToFadeInAndOut 来制作不透明度为零的淡入元素 elementToFadeInAndOut opacity 1 transition opacity 2s linear 有
  • CSS 过渡表格行高

    我有一个 CSS 表 所有行的高度相同 但当用户单击其中一行时 所选行应占据整个表格高度 其余行应逐渐消失 我通过简单的设置就可以工作display none在所有其他行上 但我想做一些过渡 我尝试过设置max height到 100 然后
  • 悬停时创建 CSS“路径”

    我正在尝试使用 主要 CSS 生成一个 漂亮 的 CSS 菜单 但是使用tiny bit of jQuery http en wikipedia org wiki JQuery还有 我的总体想法是 lt Hover this center
  • 如何防止模糊过渡时图像闪烁?

    如何防止滤镜过渡结束时出现闪光 模糊效果 我使用的是铬 下面的片段显示了问题 window on load function event setTimeout function sec addClass active 1000 sec ma
  • CSS 转换在 IE 中不起作用

    我无法在 IE 或 Firefox 中实现此转换 但在 Safari 和 Chrome 中看起来不错 不透明度显示但是即时的 对我来说 下面的 CSS 看起来是正确的 但我看不出它有任何理由可以在 IE 或 Firefox 中工作 我已经使
  • 始终触发且仅触发一次的“transitionend”事件

    我需要一个特别的transitionend like 事件 在所有转换完成后触发一次 或者如果 CSS 中没有定义转换则立即触发 这是我到目前为止所想到的 function event special transitionsComplete
  • 浏览器特定的前缀,在转换时具有 CSS 过渡

    根据 caniuse com 对于同时支持 CSS 的浏览器transition和CSStransform 组合起来至少有三种不同的类型 那些需要 webkit 两者的前缀transition and transform 例如 Safari
  • 2D 变换过渡不适用于 IE11 中的 VW 和 VH 单位

    当我尝试使用过渡来为变换 TranslateY 制作动画时 我在 IE11 和 10 上遇到了一个奇怪的问题 我有一个天空盒 里面有一个天空 高度为 500vh 该天空必须根据视口中的当前部分上下移动 视口是一个绝对 位置元素 用于处理内容
  • 当父溢出更改时,firefox 过渡会中断

    我今天遇到一个问题 花了我很长时间来调试 我在网上找不到解决方案 所以我认为记录下来会很有用 如果父级的 溢出 属性与转换一起更改 则转换似乎在 Firefox 上不起作用 即 parent overflow hidden parent h
  • 如何添加 CSS3 过渡并显示 HTML5 详细信息/摘要标签?

    仅使用CSS3 有没有一种方法可以在页面上添加漂亮的淡入和从左滑动过渡效果DETAILS SUMMARY reveal 有关此新标签的演示 请参阅此演示 details transition height 3s ease in
  • CSS 动画 - 动画缓慢且抖动

    我想问一下 这段CSS代码有什么问题吗 它用于动画背景图像 缩放效果 media min width 1000px anim on background size 110 110 background position center cen
  • 表格的 CSS 过渡

    我有多个表排成一排 当一个人是selected 它应该展开一列 直到现在隐藏 几时取消选择 它应该慢慢收缩 我尝试使用 CSS 转换 但是当单元格中没有文本时 收缩不起作用 column2 background color ddd widt
  • CSS3 FlexBox 过渡

    在这个 codepen 示例中 http codepen io DrYSG pen ovctn http codepen io DrYSG pen ovctn我创建了三个弹性盒 我想要的效果是 当鼠标悬停在中间框上时 它的尺寸会增大 演示中
  • CSS淡入淡出动画延迟计时

    我正在尝试使用 css3 创建幻灯片效果 我有三张图像 我需要将它们相互淡入淡出 每次转换需要持续 3 秒 第一张图像显示 3 秒 然后淡入第二张图像 第三张图像同样显示 我不确定如何计算关键帧的百分比 Codepen http codep
  • 我可以使用 :hover 触发 CSS3 动画(或过渡),即使鼠标不再悬停,该动画也会继续运行

    我正在创建一个链接列表 其中一个链接容器在悬停时会展开 包含详细信息 图像和说明 我用 CSS 过渡或动画来制作动画没有任何问题 问题是我希望它即使在鼠标移开后也能保持展开状态 我想在没有 JavaScript 的情况下做到这一点 那可能吗
  • 从三行菜单到十字菜单的动画变换

    我有一个三行动画菜单 当您单击它时 它会切换为十字 首先 您会看到三条线变成一条线 然后切换到十字线 但我想跳过从三行到一行的步骤 我怎样才能做到这一点 这是小提琴http jsfiddle net adyocsm9 http jsfidd
  • CSS 转换在toggleClass() 之后不起作用

    我创建了一个切换菜单 如图所示这个演示 http jsfiddle net 85Ryan Hrsdw 1 我添加了一个CSS过渡效果div nav menu 我用过max height 0 to max height 480px 当我单击菜
  • 使用非常大的背景位置偏移是否存在性能问题?

    我正在构建一个进度条控件 并且正在研究它实际上并不显示进度 而只是旋转 正在发生某事 的指示器的情况 我的设计基本上是交替的对角条纹 本质上是一个像这样的理发杆 但是 旋转 由于希望将尽可能多的负载转移给渲染引擎 我想为此使用 CSS 过渡
  • 清理 CSS 抖动

    我已经构建了这些圆圈 当鼠标悬停时它们会扩展边框 我现在遇到的唯一问题是有时圆圈会抖动 摇晃 当我设置transition all 1s ease in out 超过 0 2 秒 有解决这个问题的方法吗 还是事情就是这样 这是其中的代码Js
  • Chrome 中的混合混合模式问题

    我一直在尝试在包含 css 不透明度过渡实例的页面上使用混合混合模式 似乎正在发生的情况是 包含 mix blend mode 的 div 在过渡期间 或者更确切地说 在动画进行过程中 显示得与没有混合模式时一样 我只发现这是 Chrome

随机推荐