我有两个视频作为背景/z-index=1.

它在CHROME浏览器中工作,但在safari中不工作,不播放视频或声音.

const boxes = document.querySelectorAll('.boxes')

const video1 = document.querySelector('.video1')
const video2 = document.querySelector('.video2')


boxes.forEach(box => {
    box.addEventListener('mouseover', (e) => {
        e.preventDefault()

        const a = e.currentTarget.dataset.set
        console.log(a)

        if (a === '1') {
            var promise1 = video1.play();
            if (promise1 !== undefined) {
                promise1.catch(error => {
                    console.log(error);
                }).then(() => {
                    video1.classList.remove('hiddn')

                    video2.classList.add('hiddn')
                    video2.pause()
                })
            }
        } else if (a === '2') {

            var promise2 = video2.play();
            if (promise2 !== undefined) {
                promise2.catch(error => {
                    console.log(error);
                }).then(() => {
                    video1.classList.add('hiddn')
                    video1.pause()
                    video2.classList.remove('hiddn')
                })
            }
        }
    })
})
<video src="video1.mp4" width="100%" data-id="1" class="video1" type="video/mp4" autoplay="true"></video>
<video src="video2.mp4" data-id="2" width="100%" class="hiddn video2" type="video/mp4" autoplay="true"></video>

推荐答案

它只在包含playsinline个时有效.

<video src="video1.mp4" width="100%" data-id="1" class="video1" type="video/mp4" autoplay="true" loop muted playsinline ></video>
<video src="video2.mp4" data-id="2" width="100%" class="hiddn video2" type="video/mp4" autoplay="true" loop muted playsinline></video>

Second solution :

如果第一个解决方案不起作用,您可能需要设置controls="true"标志.

<video loop autoplay controls="true"  src="video1.mp4" width="100%" data-id="1" class="video1" type="video/mp4" ></video>

FYI:如果你在苹果设备上运行它,例如Ipad/Iphone,然后关闭低功耗模式,它可能会工作.

Javascript相关问答推荐

微软Edge Select 间隙鼠标退出问题

如何修复我的js构建表每当我添加一个额外的列作为它的第一列?

用JavaScript复制C#CRC 32生成器

Mongoose post hook在使用await保存时不返回Postman响应

手机上的渲染错误文本必须在文本组件中渲染,但在浏览器上没有问题<><>

引用在HTMLAttributes<;HTMLDivElement>;中不可用

JS,当你点击卡片下方的绿色空间,而它是在它的背后转动时,

使用GraphQL查询Uniswap的ETH价格

如何解决useState错误—setSelect Image不是函数''

在open shadow—root中匹配时,使用jQuery删除一个封闭的div类

我可以使用空手道用户界面来获取网页的当前滚动位置吗?

如何在文本字段中输入变量?

将核心模块导入另一个组件模块时存在多个主题

在WordPress中使用带有WPCode的Java代码片段时出现意外令牌错误

400 bad request error posting through node-fetch

将基元传递给THEN处理程序

在Puppeteer中使用promise进行日志(log)记录时出现TargetCloseError

使用Java脚本在div中创建新的span标记

如何为两条动态路由创建一个页面?

如果我将高度设置为其内容的100%,则在Java脚本中拖动以调整面板大小时会冻结