iOS 8+ 上的播放按钮未居中

Posted

技术标签:

【中文标题】iOS 8+ 上的播放按钮未居中【英文标题】:Play button on iOS 8+ not centering 【发布时间】:2015-03-10 14:51:31 【问题描述】:

我一直在寻找这个问题的解决方案,但直到现在我还没有找到任何解决方案。

我需要给视频一个绝对位置,它的大小会根据这个位置而改变(通过给出顶部、右侧、底部和左侧的值)。当我这样做时,运行 ios 8+ 的 iPhone 上的播放按钮停止居中。

这是正在发生的事情的打印:

Print screen from iPhone 5c

我已经能够在此处的 JSFiddle 上重现此错误:https://jsfiddle.net/hwgnzwzf/2/ - 它似乎在我设置“左”属性时开始发生。

<div class="video-holder">
    <div class="video">
        <div class="video-wrapper video-wide">
            <video controls poster="http://placehold.it/200x200">
                <source src="" type="video/mp4"/>
            </video>
        </div>
    </div>
</div>


.video
    position: absolute;
    top:0;
    left:40%;
    right:20%;
    bottom:0;

/edit:在Doml的输入之后,我尝试只设置'right'值和'max-width',但最终结果是一样的。

【问题讨论】:

【参考方案1】:

问题是,iOS 需要两个属性,要么 top / left |底部/右侧,您只需将其设置为 40% 将绝对容器“居中”的更好解决方案是将其放在屏幕的中心,然后将其放在宽度的一半处:

left:50%;
transform: translateX(-50%);

我没有 iPhone,所以请告诉我这是否适合你

edit:// 哦,如果您想“调整大小”,只需为其添加一个最大宽度并删除“正确”属性

【讨论】:

嗨,Doml。我需要将所有坐标提供给“.video” div,这样我就可以将该 div 定位在“笔记本屏幕”内,正如我试图在上面的打印中显示的那样。由于一切都是响应式的,我需要设置百分比,所以它总是完全适合里面。而且,无论如何,即使使用您的建议,播放按钮仍然放错了位置。 :-/ 非常感谢,不管怎样! :) 这是使用您建议的解决方案的 JSFiddle 更新:jsfiddle.net/hwgnzwzf/4 - 它仍然使播放按钮覆盖在 iPhone 浏览器上定位到右侧 [i.imgur.com/750omCf.png](打印屏幕)。 真正困难的问题 - 似乎是那里 IOS 上的常见问题。 ***.com/questions/28405684/…【参考方案2】:

这是一个 iOS 问题,我的解决方案是删除视频控件属性,因此我们删除 iOS 样式,然后使用 css 再次添加它。

使用js我们可以再次点击添加控件并使用html5 api播放视频。

那么,解决方案可能类似于https://jsfiddle.net/99eanxjr/1/

$('video').on('click', function(e)
    var video = this;
    $(video).attr('controls', true).parent().addClass('started');
    video.play();
);

显然,您可能会记住,这是一种 hacky 解决方案,应该以您的需求为条件,例如仅在 iOS 上执行此操作,并在发布真正的修复程序后放弃此 hack。 CSS前缀也需要。 =P

我刚刚写了,需要测试! =)

祝你好运!

【讨论】:

【参考方案3】:

至少对我来说(在iphone6 plus上测试)问题是由

引起的
div[pseudo="-webkit-media-controls"] 
  min-width: 260px;

在 ios 创建的#document-fragment 的用户代理样式表中。我正在浏览器堆栈中进行测试,当我检查元素时,我可以看到这是原因。

我进行了一些搜索,但找不到使用 css 或 javascript 定位 #document-fragments 的方法。所以......我被困住了,但我觉得这是正确的方向。

【讨论】:

以上是关于iOS 8+ 上的播放按钮未居中的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 8 中以编程方式将视图中的按钮居中使用约束

iOS iPad 上未显示 HTML5 视频播放按钮

多个按钮上的声音并在其他人在 iOS 中播放时停止

在 iOS 设备上的 iframe 中未触发 Click/Tap 事件

iOS按钮没有在按钮点击时播放音频文件

声音文件未在本地通知 iOS7 上播放