【发布时间】:2017-04-03 11:32:08
【问题描述】:
我有一个非常具体的问题,我不确定你可以用 css 做我想做的事。对于我在其他帖子上看到的内容,这可能超出了限制,但我想我会问一下,以防有一些 css 天才。 我想实现一个非常具体的行为。 我有一列文本,该列中的一些单词被突出显示。当您单击单词时,我希望将文本拆分并向上滑动视频。
我的 html 很简单:
<p>text<span id="clickable" class="link">highlighted text</span>.
<div class="closed">
<video id="video" width="100%">
<source src="myVideo.mp4" type="video/mp4">
</video>
</div>text</p>
css 包含关闭的类(高度为 0)和打开的具有一定高度的类
css
.closed {
overflow: hidden;
height: 0px;
transition-property: all;
transition-duration: 2s;
transition-timing-function: ease-in-out;
}
.open {
height: 11.4vw;
}
当点击文本并播放视频时,js 应用打开的类,一切都非常简单
JavaScript
$(document).ready(function() {
$("#clickable").click(function() {
var vid = document.getElementById("video");
var closed = $('.closed');
if(closed.hasClass("open")) {
closed.removeClass('open');
vid.pause();
} else {
closed.addClass('open');
vid.play();
}
});
});
一切正常。但事情就是这样,我知道我很挑剔,所以我不确定css是否可以做到这一点。我遇到的问题是“可点击”之后的文本跳转到下一行。我希望它不要那样做,因为它会干扰阅读。我知道这种情况正在发生,因为我的视频所在的 div 是一个块元素。但是,如果我更改标签以使其成为跨度(我知道,异端邪说),就像这样:
<span class="closed">
<video id="video" width="100%">
<source src="myVideo.mp4" type="video/mp4">
</video>
</span>
视频拒绝关注
overflow: hidden;
规则并且不会隐藏在视线之外,这是我正在尝试做的事情的重点。添加
display: inline-block;
到 div 不会这样做。我已经尝试了一些浮点数,但我在 Chrome 中得到了不稳定的行为。所以我的想法不多了。我希望视频表现得像一个内联元素。有人可以让我摆脱痛苦并告诉我这不能完成,所以我可以继续前进。感谢您的宝贵时间。
----------------------------------- - - - - - - - - -编辑 - - - - - - - - - - - - - - - - -----------------------------
这是我的项目外观的 GIF。这是与“div”选项一起使用的,它就像我想要的那样工作,只是正如我所说的,在视频文本移动到我不想要的下一行之后。
GIF:
【问题讨论】:
-
为了清楚起见:您是在询问滑下动画最后的突然“下降 1 像素”效果吗?
-
不,一点也不。我只想让以“The Then and there, I know that I have to sing”开头的句子不在下一行。
-
所以它应该在一行中显示“
Rickie Lee Jones. Then and there,”? -
是的。但它不会让我这样做,因为视频在 div 标签内
标签: javascript jquery html css video