《小白HTML5成长之路39》如何通过滚动页面控制视频播放和停止

“小白,你仔细想一想网页上的视频什么情况下需要使用javascript进行操作?”

“我把video的标签属性看了一下,感觉标签的属性已经可以实现所有功能了,autoplay属性可以让视频自动播放、controls属性可以给视频增加播放控件、loop属性能让视频循环播放、preload属性可以实现预加载,功能已经很完善了,还需要javascript控制么?”

老朱说:“当然需要了,video标签自带的属性只是实现了视频的播放控制功能。假如一个页面有几个产品展示的视频,最好的展现效果就是视频自动播放给用户看,可是一个页面有好几个视频,通过标签只能设定一个视频自动播放,都设置自动播放的话页面就乱套了,这种情况下最好的解决办法就是用户滚动页面的时候,根据用户的浏览位置用javascript对视频进行自动播放。”

“哦!我明白了,有一些网站就是这么做的!可是怎么判断用户当前滚动的位置呢?”

“这个问题看似简单,其实还是很复杂的,我们除了需要获取用户当前滚动页面距离顶部的距离,还需要获取当前窗口的高度,每个视频距离文档顶部的距离,获取到这几数据才能做处理。”

小白想了想,说道:“哦!我明白了,稍等我先查一下获取这几个距离的方法!”

过了一会小白跟老朱说道:“我在页面里放了两个视频他们之间有一定的距离,现在我已经能拿到这几个数据了。你看一下代码吧!”

老朱看了一下说:“不错,你觉得视频在什么位置适合播放,什么位置不适合播放,可以自己先试着计算一下。如果一屏不同时出现两个视频,我们一般选择视频上部完全进入窗口,和视频下部刚刚移出窗口两个边界作为播放视频的区域!”

没过多长时间小白就算出了结果:$("#video1").offset().top-$(document).scrollTop()>0就可以看作视频顶部完全进入屏幕,window.innerHeight-(topnum1+$("#video1").height())>0可以看作视频下部没有移出屏幕,所以我使用了一下jquery的scroll(窗口滚动事件),在页面滚动过程中进行实时判断:

“干的不错,不过两个视频处理方面代码有些重复了,还需要精简,好了现在把两个video的div中根据昨天讲的video标签嵌入视频吧!嵌入以后通过jQuery获取到视频标签对象,使用play方法和pause方法就可以让视频播放和停止了。”

“好嘞!我已经知道怎么做了!”

“小白!很好,现在我们只是初步实现了滚动页面控制视频播放与停止,如果以后碰到类似项目还是要根据需求进行调整,这就看你对video功能处理的熟悉程度了,再多练习练习吧!”

老朱又说道:“另外思考一个问题,假如页面中只有一个视频,当用户浏览网页的时候由于滚动页面视频移出窗口,怎么做一个右下角漂浮的视频继续播放?根据前面你学到的知识已经完全可以实现了,试试看吧!


想学H5的朋友可以关注老炉,您的关注是我持续更新《小白HTML5成长之路》的动力!

要实现弹窗编辑资料,可以使用HTMLCSS来创建自定义弹窗,并使用JavaScript控制其显示和隐藏以及修改弹窗内容。 以下是一个简单的实现方法: 1. 创建HTML结构 在HTML文件中创建一个div元素,用于作为弹窗的容器,并添加需要编辑的资料表单。 ```html <div id="edit-modal" class="modal"> <div class="modal-content"> <h2>Edit Profile</h2> <form> <label for="name">Name:</label> <input type="text" id="name" name="name" placeholder="Enter your name"> <label for="email">Email:</label> <input type="email" id="email" name="email" placeholder="Enter your email"> <button type="submit">Save</button> </form> </div> </div> ``` 2. 创建CSS样式 为弹窗和其内容添加样式,例如设置弹窗为固定位置,并使用flex布局来居中显示其内容。 ```css .modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); display: none; justify-content: center; align-items: center; } .modal-content { background-color: #fff; padding: 20px; border-radius: 5px; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3); display: flex; flex-direction: column; align-items: center; } .modal-content form { display: flex; flex-direction: column; align-items: center; } .modal-content label { margin-bottom: 10px; } .modal-content input { padding: 5px; border: 1px solid #ccc; border-radius: 5px; margin-bottom: 20px; } .modal-content button { padding: 10px; background-color: #007bff; color: #fff; border: none; border-radius: 5px; cursor: pointer; } ``` 3. 创建JavaScript代码 使用JavaScript控制弹窗的显示和隐藏,并在需要时修改弹窗中的内容。 ```javascript // 获取弹窗元素和关闭按钮元素 var editModal = document.getElementById("edit-modal"); var closeModalBtn = document.getElementById("close-modal-btn"); // 当点击编辑按钮时,显示弹窗 document.getElementById("edit-btn").addEventListener("click", function() { editModal.style.display = "flex"; }); // 当点击关闭按钮时,隐藏弹窗 closeModalBtn.addEventListener("click", function() { editModal.style.display = "none"; }); // 当表单提交时,保存编辑内容并隐藏弹窗 document.querySelector("form").addEventListener("submit", function(event) { event.preventDefault(); // 保存编辑内容的代码 editModal.style.display = "none"; }); ``` 通过以上三个步骤,就可以实现一个简单的弹窗编辑资料功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值