马黑黑 发表于 2022-6-10 21:44

熊猫办公(还原广告)

本帖最后由 马黑黑 于 2022-6-10 23:04 编辑 <br /><br /><style>
.mnBox { left: -214px; width: 1024px; height: 600px; position: relative; }
.v { width: 100%; height: 100%; object-fit: cover; position: absolute; }
.lrcWrap { position: absolute; padding: 20px; width: fit-content; height: fit-content; text-align: center; display: flex; flex-direction: column; }
.meterWrap { position: relative; display: flex; align-items: center; width: fit-content; height: 50px; }
.btn { width: 24px; height: 24px; background: olive; color: #ccc; border: none; font-size: 14px; outline: none; cursor: pointer; }
.btn:hover { color: red; }
.meter { position: relative; width:300px; height: 11px; cursor: pointer; background: linear-gradient(transparent 5px, snow 6px,transparent 0); }
.slider { display: block; position: absolute; width: 4px; height: 100%; background: olive; }
.lrcWrap p { margin: 0 0 12px 0; padding: 0px; color: #ccc; font: normal 1.2em sans-serif; text-shadow: 1px 1px 1px #333; }
.lrcBox { margin: 0; padding: 0; width: 400px; height: 72px;overflow: hidden; user-select: none; position: relative; }
.lrcUl { position: relative; top: 0; margin: 0; padding: 0; }
.lrcUl li { margin: 0; padding: 0; height: 24px; font: normal 18px / 24px sans-serif; color: gray; text-shadow: 1px 1px 1px black; list-style-type: none; }
</style>

<div class="mnBox">
        <video class="v" src="https://img.tukuppt.com/video_show/2475824/00/01/73/5b4952baa51ed.mp4" autoplay="autoplay" loop="loop" muted="muted"></video>
                <div class="lrcWrap">
                <p>Audio Player for HTML5</p>
                <div class="lrcBox"><ul class="lrcUl"></ul></div>
                <div class="meterWrap">
                        <input class="btn" type="button" value="||" />
                        <div class="meter"><span class="slider"></span></div>
                </div>
        </div>
</div>
<audio class="aud" src="https://music.163.com/song/media/outer/url?id=1432843317.mp3" autoplay="autoplay" loop="loop"></audio>

<script>
let aud = document.querySelector('.aud'),
        btn = document.querySelector('.btn');
        meter = document.querySelector('.meter'),
        slider = document.querySelector('.slider'),
        lrcUl = document.querySelector('.lrcUl');
let slip = 0.25;
let lrcAr = [
        ['0.00','月牙泉 - 原唱 田震'],
        ['3.84','月牙泉童声版 - 翻唱 史筱璇'],
        ['6.79','词:杨海潮'],
        ['10.28','曲:杨海潮'],
        ['13.82','就在天的那边 很远很远'],
        ['18.01','有美丽的月牙泉'],
        ['22.84','它是天的镜子 沙漠的眼'],
        ['27.43','星星沐浴的乐园'],
        ['32.04','从那年我月牙泉边走过'],
        ['37.06','从此以后魂儿绕梦牵'],
        ['41.83','也许你们不懂得这种爱恋'],
        ['46.39','除非也去那里看看'],
        ['50.55','看那 看那 月牙泉'],
        ['59.72','想那 念那 月牙泉'],
        ['78.90','看那 看那 月牙泉'],
        ['88.19','想那 念那 月牙泉'],
        ['98.10','看那 看那 月牙泉'],
        ['107.10','想那 念那 月牙泉'],
        ['117.15','就在天的那边 很远很远'],
        ['121.70','有美丽的月牙泉'],
        ['126.40','它是天的镜子 沙漠的眼'],
        ['131.05','星星沐浴的乐园']
];

for(j=0; j<lrcAr.length; j++){
        lrcUl.innerHTML += '<li style="list-style-type: none"id="li' + lrcAr + '">' + lrcAr + '</li>';
}

aud.addEventListener('timeupdate', () => {
        let prog = (meter.clientWidth - slider.clientWidth) * aud.currentTime / aud.duration;
        slider.style.transform = 'translate(' + prog + 'px)';
        let tt = aud.currentTime;
        for(j=0; j<lrcAr.length; j++){
                if(tt >= lrcAr - slip){
                        if(j > 0){
                                let idxLast = lrcAr;
                                document.getElementById('li' + idxLast).style.color = 'gray';
                                lrcUl.style.top = '-' + (j * 24 - 24) + 'px';
                        }
                        let idx = lrcAr;
                        document.getElementById('li' + idx).style.color = 'ghostwhite';
                }
        }
})

aud.addEventListener('ended', () => {
        document.getElementById("li" + lrcAr).style.color = 'gray';
        lrcUl.style.top = 0;
});

aud.addEventListener('pause', () => btn.value = '\u25BA');
aud.addEventListener('play',() => btn.value = '||');

meter.onclick = (e) => {
        e = e || event;
        aud.currentTime = (e.clientX - offset(meter,"left")) * aud.duration / meter.clientWidth;
}

btn.onclick = () => aud.paused ? (aud.play(),btn.value = '||') : (aud.pause(),btn.value = '\u25BA');

function offset(obj,direction){//位移量
        let offsetDir = "offset" + direction.toUpperCase()+direction.substring(1);
        let realNum = obj;
        let positionParent = obj.offsetParent;
        while(positionParent != null){
                realNum += positionParent;
                positionParent = positionParent.offsetParent;
        }
        return realNum;
}

btn.value = aud.paused ? '\u25BA' : '||';

</script>

马黑黑 发表于 2022-6-10 21:54

视频背景的核心代码:

一、CSS

.v { width: 100%; height: 100%; object-fit: cover; position: absolute; }

二、HTML

<video class="v" src="mp4地址" autoplay="autoplay" loop="loop" muted="muted"></video>

红色部分说明:

① CSS :确保视频是铺满整个画面的;
② HTML :确保视频在播放时失声(即使它有声音)

马黑黑 发表于 2022-6-10 21:58

contros=“controls” 这个HTML属性不要,这样鼠标滑过界面时不会在底部出现视频的控制台

加林森 发表于 2022-6-10 23:03

好漂亮的制作。老黑辛苦啦!

马黑黑 发表于 2022-6-10 23:04

加林森 发表于 2022-6-10 23:03
好漂亮的制作。老黑辛苦啦!

这个是学红影的

加林森 发表于 2022-6-10 23:07

马黑黑 发表于 2022-6-10 23:04
这个是学红影的

嗯嗯。大家都学习吧!

马黑黑 发表于 2022-6-10 23:07

加林森 发表于 2022-6-10 23:07
嗯嗯。大家都学习吧!

就是就是

加林森 发表于 2022-6-10 23:11

马黑黑 发表于 2022-6-10 23:07
就是就是

我现在在花园抽烟呢。

马黑黑 发表于 2022-6-10 23:11

加林森 发表于 2022-6-10 23:11
我现在在花园抽烟呢。

还没戒烟么

加林森 发表于 2022-6-10 23:43

马黑黑 发表于 2022-6-10 23:11
还没戒烟么

没有。

醉美水芙蓉 发表于 2022-6-11 07:00

马黑黑 发表于 2022-6-11 07:09

醉美水芙蓉 发表于 2022-6-11 07:00
画面清晰!不错

红影收藏的MP4

红影 发表于 2022-6-11 07:23

原来可以弄掉声音,还可以让鼠标滑过界面时不会在底部出现视频的进度显示。
太棒了,谢谢黑黑,马上去找个有声音的试验一下(这个本来是没声音的){:4_173:}

红影 发表于 2022-6-11 07:23

这个太好了,一下子解决了好多问题。黑黑太棒了{:4_199:}

红影 发表于 2022-6-11 07:24

现在那里的所有视频都可以抓过来用了,太开心了{:4_177:}

红影 发表于 2022-6-11 07:24

这个帖子太好太好了,开心得我想翻跟头{:4_182:}

红影 发表于 2022-6-11 07:30

马黑黑 发表于 2022-6-10 21:54
视频背景的核心代码:

一、CSS


object-fit: cover 这个好,即使自己取值的宽高和原本视频不一致,也能保证铺满,之前我还专门去看视频的原本宽和高,然后等比例缩放;

muted="muted"这个更好,这么简单就可以让原视频失声,没想到;

contros=“controls”这个属性不要,就可以不让原本的进度条出来。

这三条太好了{:4_199:}

马黑黑 发表于 2022-6-11 07:36

红影 发表于 2022-6-11 07:30
object-fit: cover 这个好,即使自己取值的宽高和原本视频不一致,也能保证铺满,之前我还专门去看视频 ...

你也是这么用的吧

马黑黑 发表于 2022-6-11 07:37

红影 发表于 2022-6-11 07:24
这个帖子太好太好了,开心得我想翻跟头

这个学你的

马黑黑 发表于 2022-6-11 07:38

加林森 发表于 2022-6-10 23:43
没有。

我也没有
页: [1] 2 3
查看完整版本: 熊猫办公(还原广告)