花潮论坛

搜索
热搜: 活动 交友 discuz
查看: 112|回复: 20

请教夕阳老师:直发代码为何此贴不显示呢?如何实现全屏?谢谢[已解决]

[复制链接]
  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

    发表于 2024-12-10 22:55 | 显示全部楼层 |阅读模式

    请马上登录,朋友们都在花潮里等着你哦:)

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    本帖最后由 杨帆 于 2024-12-12 12:54 编辑

    <style>
    @import url(https://file.uhsea.com/2403/f45f79bba93cd62f8603eae6fa88eb78YS.css);
    :root{--rState:running;--w:1400px;--h:800px;}

    #fullscreen { position: absolute; top:5%; left:83%;color:#ffffff; filter:drop-shadow( 1px 1px 1px #000000);font: normal 2.2em  华文新魏; opacity: 0.8; cursor: pointer; z-index: 5}


    .lrcShow{font:bold 2.4em 楷体,楷体_GD2312,sans-serif;pointer-events:none;left:20%;bottom:0px;filter:drop-shadow(1px 0px 0px white)drop-shadow(0px 1px 0px white)drop-shadow(-1px 0px 0px white)drop-shadow(0px -1px 0px white);z-index:4;}
    .lrcShow::before{color:hsl(0,80%,80%);}
    #outBlk{position:relative;width:var(--w);height:var(--h);background:#000000 url(https://pic.imgdb.cn/item/65bf0270871b83018a3ad9aa.jpg)no-repeat center / cover;overflow:hidden;margin: 130px 0 30px calc(50% - 780px);box-shadow:4px 4px 10px #000;}
    zxx-slide{width:var(--w);height:var(--h);position:absolute;z-index:1;}
    .zxx-slide-a{position:absolute;cursor:default;pointer-events:none;}
    .zxx-slide-a.in{z-index:2;animation-duration:2s;animation-name:brightnessIn;transition:1s;}
    .zxx-slide-img{width:var(--w);height:var(--h);}
    @keyframes brightnessIn{0%{transform:scale(0.1);opacity:0;}10%{transform:scale(0.5);opacity:1;}100%{transform:scale(1)}}
    #processMeter{position:absolute;right:20px;bottom:10px;width:200px;height:100px;cursor:pointer;z-index:3;}
    #rPlayer{transform-origin:50%;animation:rot 5s linear infinite var(--rState);}
    @keyframes rot{to{transform: rotate(1turn)}}
    </style>
    <div id="outBlk">

    <span id="fullscreen">全屏观赏</span>


      <zxx-slide>
    <svg stroke-width="5" viewBox="0 0 200 100" id="processMeter">
    <!-- 背景圆形 -->
    <path id='bgc' d="M 100 5 A 95 45 0 0 1 100 95 A 95 45 0 0 1 100 5" stroke="#ebeef5"  fill="none" ></path>
    <!-- 进度条 -->
    <path
      class="process-circle"
      d="M 100 5 A 95 45 0 0 1 100 95 A 95 45 0 0 1 100 5"
      stroke="darkred"
      fill="none"
      stroke-dasharray="455"
      stroke-dashoffset="455"
    ></path>
    <defs>
                <clipPath id="clip">
                <circle cx="100" cy="50" r="41" />
                </clilpPath>
                </defs>
    <image xlink:href="https://pic.imgdb.cn/item/65b75c8f871b83018a83e1c1.png" width="100" height='100' x="50" y="0" id="rPlayer" clip-path="url(#clip)" preserveAspectRatio="none" />
    <text x="85%" y="50%" stroke="lightgray" text-anchor="middle" dominant-baseline="middle" stroke-width="2" style="font-size:13px;" id="durTime"> </text>
    <text x="15%" y="50%" stroke="lightgray" text-anchor="middle" dominant-baseline="middle" stroke-width="2" style="font-size:13px;" id="curTime"> </text>
    </svg></zxx-slide>
    <div class="lrcShow" data-lrc="碧水蓝天" >碧水蓝天</div>
    </div>

    <script>

        const processCircle = document.querySelector('.process-circle');
        // 获取圆的周长
        const circumference = processCircle.getTotalLength();
        // 把周长赋值给 strokeDasharray
        processCircle.style.strokeDasharray = circumference;

        function setProcessCircle(percent = 0) {
    // 动态计算 offset 赋值给 strokeDashoffset
    // 为了支持 percent = 0 | '0%',所以使用 parseInt 转换
    processCircle.style.strokeDashoffset =
      circumference * (1 - parseInt(percent) / 100)
    }
    var sf0 = document.createElement('script');
    sf0.type = 'text/javascript';
    sf0.src = "https://file.uhsea.com/2410/739c572b5176f670f350463cf9ade957QB.js";
    sf0.charset = "utf-8";
    document.body.appendChild(sf0);

    sf0.onload = () => {
    let circlePoints = [];
    let bgcLen = bgc.getTotalLength();
    for(let i = 0; i < bgcLen; i++) {
    circlePoints.push(bgc.getPointAtLength(i));
    }
    console.log(circlePoints);
    let lrctxt = `
    [00:00.00][02:49.00]
    `;
    let opts = {
    lrcTxt:lrctxt,
    audioURL:"https://www.joy127.com/url/109961.mp3",
    }
    let player = new lrcPlayerY(opts);
    //console.log(player.lrcVec);
    let pics = [
    "https://pic.imgdb.cn/item/674d81d5d0e0a243d4dbf77e.gif",
    "https://pic.imgdb.cn/item/674d81f8d0e0a243d4dbf7e1.gif",
    "https://pic.imgdb.cn/item/674d8215d0e0a243d4dbf830.gif",
    "https://pic.imgdb.cn/item/674d822ed0e0a243d4dbf862.gif",
    "https://pic.imgdb.cn/item/674d8244d0e0a243d4dbf891.gif",
    "https://pic.imgdb.cn/item/674d8258d0e0a243d4dbf8b5.gif",
    "https://pic.imgdb.cn/item/674d826dd0e0a243d4dbf8d4.gif",
    "https://pic.imgdb.cn/item/674d8282d0e0a243d4dbf8f2.gif",
    "https://pic.imgdb.cn/item/674d8295d0e0a243d4dbf916.gif",
    "https://pic.imgdb.cn/item/674d82a8d0e0a243d4dbf930.gif",
    ];
    let eleZxxSlides = document.querySelectorAll('zxx-slide');
    pics.forEach(pic => {
    let aObj = document.createElement('a');
    aObj.className = 'zxx-slide-a';
    let imgObj = document.createElement('img');
    imgObj.src = pic;
    imgObj.className = 'zxx-slide-img';
    aObj.appendChild(imgObj);
    eleZxxSlides[0].appendChild(aObj);
    });
      [].slice.call(eleZxxSlides).forEach(function(container) {
        let timerSlide = null;
        let indexSlide = 0;
        container.addEventListener('mouseover', function() {
          clearTimeout(timerSlide);
        });
        container.addEventListener('mouseout', function() {
          clearTimeout(timerSlide);
          funSlide();
        });
        // 对应的元素
        let eleSlides = [].slice.call(container.querySelectorAll('a'));
        let eleButtons = [].slice.call(container.querySelectorAll('button'));
        let funSlide = function() {
          eleSlides.forEach(function(slide, index) {
            if (!player.mObj.paused) {
              if (indexSlide == index) {
                slide.classList.add('in');
              } else if (slide.classList.contains('in')) {
                slide.classList.remove('in');
              }
            }
          });
          timerSlide = setTimeout(function() {
            indexSlide++;
            if (indexSlide == eleSlides.length) {
              indexSlide = 0;
            }
            funSlide();
          }, 12000);
        }
        indexSlide++;
        setTimeout(funSlide, 12000);
      });

    let formatTime = (time) => {
    let str = '';
    let min = parseInt(time / 60);
    let sec = parseInt(time % 60);
    return ((min < 10 ? '0'+min:min) + ":" + (sec < 10 ? '0'+sec:sec));
    };
    player.mObj.addEventListener('timeupdate', function() {
    let processValue = player.mObj.currentTime / player.mObj.duration;
    processCircle.style.strokeDashoffset = circumference * (1 - processValue);
    durTime.textContent = formatTime(player.mObj.duration);
    curTime.textContent = formatTime(player.mObj.currentTime);
    });
    rPlayer.onclick = () => {
    player.mObj.paused ? (outBlk.style.setProperty('--rState','running'), player.mObj.play()) : (outBlk.style.setProperty('--rState','paused'), player.mObj.pause());
    }

    let seeking = false;
    let moveEventProc = (event) => {
    if(!seeking) return;
    let thePoint = 0, minV = 100;
    circlePoints.forEach((point, idx ) => {
    let mx = (point.x - event.offsetX), my = (point.y - event.offsetY)
    let mv = mx*mx + my*my;
    if(mv < minV) {
    minV = mv; thePoint = idx;
    }
    })
    let chkVal = thePoint / circumference;
    let chkTime = player.mObj.duration * chkVal;
    processCircle.style.strokeDashoffset = circumference * (1 - chkVal);
    for(i = 0; i < player.lrcVec.length; i++) {
    if(player.lrcVec.seconds >= chkTime) {
    //console.log(player.lrcVec.seconds, i);
    player.idx = i;
    player.mObj.currentTime = chkTime;
    break;
    }
    };
    };
    processCircle.addEventListener("mousemove", (event) => moveEventProc(event));
    bgc.addEventListener("mousemove", (event) => moveEventProc(event));
    processCircle.onclick = bgc.onclick = () => seeking = !seeking;
    }

    let fs = true;
            fullscreen.onclick = () => {
                    fs ? (fullscreen.innerText = '退出全屏',outBlk.requestFullscreen()) : (fullscreen.innerText = '全屏欣赏', document.exitFullscreen());
                    fs = !fs;
            };
    </script>

    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

     楼主| 发表于 2024-12-10 23:04 | 显示全部楼层
    本帖最后由 杨帆 于 2024-12-10 23:29 编辑

    夕阳老师,您好!此贴在本地测试,除了不能实现全屏,其它功能显示正常

    此外,此贴以网页发显示正常,以代码直发论坛为何就显示不了呢?

    请帮我看看,给予指导!由衷感谢~@夕阳黄昏
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2024-12-10 23:47 | 显示全部楼层
    我的天,这么长的代码
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-12-27 08:11
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    15

    主题

    412

    回帖

    3028

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪音画大师

    发表于 2024-12-11 06:20 | 显示全部楼层
    本帖最后由 夕阳黄昏 于 2024-12-12 20:29 编辑

    全屏观赏
    碧水蓝天

    评分

    参与人数 2威望 +70 金钱 +140 经验 +70 收起 理由
    红影 + 50 + 100 + 50 赞一个!
    杨帆 + 20 + 40 + 20 很给力!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-12-27 08:11
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    15

    主题

    412

    回帖

    3028

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪音画大师

    发表于 2024-12-11 06:21 | 显示全部楼层
    4#一字没改
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

     楼主| 发表于 2024-12-11 11:20 | 显示全部楼层

    夕阳老师威武!请看看,如何实现全屏呢?谢谢@夕阳黄昏
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

     楼主| 发表于 2024-12-11 12:20 | 显示全部楼层
    红影 发表于 2024-12-10 23:47
    我的天,这么长的代码

    谢谢影子关注与支持!也许有些代码多余,不清楚其逻辑关系,未敢妄动
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-12-27 08:11
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    15

    主题

    412

    回帖

    3028

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪音画大师

    发表于 2024-12-11 13:13 | 显示全部楼层
    杨帆 发表于 2024-12-11 11:20
    夕阳老师威武!请看看,如何实现全屏呢?谢谢@夕阳黄昏

    全屏我不熟悉,不过看其他有这功能的帖子也只是背景全屏而附在上面的其他元素并没受到影响。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2024-12-11 13:18 | 显示全部楼层
    杨帆 发表于 2024-12-11 12:20
    谢谢影子关注与支持!也许有些代码多余,不清楚其逻辑关系,未敢妄动

    不是,我是说一多了,我就看迷糊了,我学习代码也是半瓶水,看到多的就怕了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

     楼主| 发表于 2024-12-11 13:22 | 显示全部楼层
    本帖最后由 杨帆 于 2024-12-11 13:54 编辑
    夕阳黄昏 发表于 2024-12-11 13:13
    全屏我不熟悉,不过看其他有这功能的帖子也只是背景全屏而附在上面的其他元素并没受到影响。

    辛苦了,夕阳老师!

    上一个贴也是图片轮播,在您的指导下终于实现了全屏

    这一个贴,我相信您有办法让它也实现全屏

    牧羊人的一天
    https://www.huachaowang.com/foru ... =79819&fromuid=7894
    (出处: 花潮论坛)

    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

     楼主| 发表于 2024-12-11 13:30 | 显示全部楼层
    红影 发表于 2024-12-11 13:18
    不是,我是说一多了,我就看迷糊了,我学习代码也是半瓶水,看到多的就怕了

    哈哈,似懂非懂之际,代码多了也挺有趣呀,但不用怕,我们论坛有这么多大师呢
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-12-27 08:11
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    15

    主题

    412

    回帖

    3028

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪音画大师

    发表于 2024-12-11 16:08 | 显示全部楼层
    杨帆 发表于 2024-12-11 13:22
    辛苦了,夕阳老师!

    上一个贴也是图片轮播,在您的指导下终于实现了全屏

    我真做不到,把这帖的图片换到那帖也不行
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

     楼主| 发表于 2024-12-11 16:18 | 显示全部楼层
    夕阳黄昏 发表于 2024-12-11 16:08
    我真做不到,把这帖的图片换到那帖也不行

    谢谢夕阳老师,您辛苦了!

    我只是好奇,不急,等老师慢慢研究吧
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

     楼主| 发表于 2024-12-11 16:26 | 显示全部楼层
    夕阳黄昏 发表于 2024-12-11 16:08
    我真做不到,把这帖的图片换到那帖也不行

    谢谢夕阳老师!此贴的基础代码是您的《红枫叶》,或许与图片有关呢?

    https://www.huachaowang.com/foru ... 48&fromuid=7894
    (出处: 花潮论坛)
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-12-27 08:11
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    15

    主题

    412

    回帖

    3028

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪音画大师

    发表于 2024-12-11 18:04 | 显示全部楼层
    杨帆 发表于 2024-12-11 16:26
    谢谢夕阳老师!此贴的基础代码是您的《红枫叶》,或许与图片有关呢?

    https://www.huachaowang.com/fo ...

    对全屏代码不熟悉,我的所有帖子都没有用过全屏代码,到底哪出了问题搞不清楚。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

     楼主| 发表于 2024-12-11 19:11 | 显示全部楼层
    本帖最后由 杨帆 于 2024-12-11 19:12 编辑

    谢谢夕阳老师!全屏代码也挺有趣呢,老师您有空了不妨研究一下呗@夕阳黄昏
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2025-12-1 20:32
  • 签到天数: 1052 天

    [LV.10]以坛为家III

    1881

    主题

    32万

    回帖

    37万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9Rank: 9

    花潮美女虎龙狗猪多彩人生星月交辉海样胸怀火热情怀优雅迷人神秘浪漫缤纷心情草莓情怀蝴蝶情怀心曲飞扬星星情怀七彩绚丽活泼开朗女儿情怀相遇之美一往情深花好月圆心香一瓣紫色情节飞龙在天金剪刀天籁妙音妙笔生花风雨同行我心永远天长地久幸福快乐绚丽缤纷喜乐安康中秋征文周年庆指尖上的流年舞会之星分析(喊冤)章总结章杀人王小强章最佳杀刺临屏写诗七夕诗钟活动第五届风云第六届风云情人节花潮管理

    发表于 2024-12-11 20:26 | 显示全部楼层
    杨帆 发表于 2024-12-11 13:30
    哈哈,似懂非懂之际,代码多了也挺有趣呀,但不用怕,我们论坛有这么多大师呢

    是的,只能麻烦大师们了
     
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2024-12-27 08:11
  • 签到天数: 26 天

    [LV.4]偶尔看看III

    15

    主题

    412

    回帖

    3028

    积分

    论坛元老

    Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80Rank: 80

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪音画大师

    发表于 2024-12-12 10:37 | 显示全部楼层
    杨帆 发表于 2024-12-11 19:11
    谢谢夕阳老师!全屏代码也挺有趣呢,老师您有空了不妨研究一下呗@夕阳黄昏

    再试试

    1. <style>
    2. @import url(https://file.uhsea.com/2403/f45f79bba93cd62f8603eae6fa88eb78YS.css);
    3. :root{--rState:running;--w:1400px;--h:800px;--fw:1400px;--fh:800px}

    4. #fullscreen { position: absolute; top:5%; left:83%;color:#ffffff; filter:drop-shadow( 1px 1px 1px #000000);font: normal 2.2em  华文新魏; opacity: 0.8; cursor: pointer; z-index: 5}


    5. .lrcShow{font:bold 2.4em 楷体,楷体_GD2312,sans-serif;pointer-events:none;left:20%;bottom:0px;filter:drop-shadow(1px 0px 0px white)drop-shadow(0px 1px 0px white)drop-shadow(-1px 0px 0px white)drop-shadow(0px -1px 0px white);z-index:4;}
    6. .lrcShow::before{color:hsl(0,80%,80%);}
    7. #outBlk{position:relative;width:var(--w);height:var(--h);background:#000000 url(https://pic.imgdb.cn/item/65bf0270871b83018a3ad9aa.jpg)no-repeat center / cover;overflow:hidden;margin: 130px 0 30px calc(50% - 780px);box-shadow:4px 4px 10px #000;}
    8. zxx-slide{width:var(--fw);height:var(--fh);position:absolute;z-index:1;}
    9. .zxx-slide-a{position:absolute;cursor:default;pointer-events:none;}
    10. .zxx-slide-a.in{z-index:2;animation-duration:2s;animation-name:brightnessIn;transition:1s;}
    11. .zxx-slide-img{width:var(--fw);height:var(--fh);}
    12. @keyframes brightnessIn{0%{transform:scale(0.1);opacity:0;}10%{transform:scale(0.5);opacity:1;}100%{transform:scale(1)}}
    13. #processMeter{position:absolute;right:20px;bottom:10px;width:200px;height:100px;cursor:pointer;z-index:33;}
    14. #rPlayer{transform-origin:50%;animation:rot 5s linear infinite var(--rState);}
    15. @keyframes rot{to{transform: rotate(1turn)}}
    16. </style>
    17. <div id="outBlk">

    18. <span id="fullscreen">全屏观赏</span>


    19.   <zxx-slide></zxx-slide>
    20.                 <svg stroke-width="5" viewBox="0 0 200 100" id="processMeter">
    21.                         <!-- 背景圆形 -->
    22.                         <path id='bgc' d="M 100 5 A 95 45 0 0 1 100 95 A 95 45 0 0 1 100 5" stroke="#ebeef5"  fill="none" ></path>
    23.                         <!-- 进度条 -->
    24.                         <path
    25.                           class="process-circle"
    26.                           d="M 100 5 A 95 45 0 0 1 100 95 A 95 45 0 0 1 100 5"
    27.                           stroke="darkred"
    28.                           fill="none"
    29.                           stroke-dasharray="455"
    30.                           stroke-dashoffset="455"
    31.                         ></path>
    32.                         <defs>
    33.                     <clipPath id="clip">
    34.                             <circle cx="100" cy="50" r="41" />
    35.                     </clilpPath>
    36.             </defs>
    37.                         <image xlink:href="https://pic.imgdb.cn/item/65b75c8f871b83018a83e1c1.png" width="100" height='100' x="50" y="0" id="rPlayer" clip-path="url(#clip)" preserveAspectRatio="none" />
    38.                         <text x="85%" y="50%" stroke="lightgray" text-anchor="middle" dominant-baseline="middle" stroke-width="2" style="font-size:13px;" id="durTime"> </text>
    39.                         <text x="15%" y="50%" stroke="lightgray" text-anchor="middle" dominant-baseline="middle" stroke-width="2" style="font-size:13px;" id="curTime"> </text>
    40.                 </svg>       
    41.         <div class="lrcShow" data-lrc="碧水蓝天" >碧水蓝天</div>
    42. </div>

    43. <script>

    44.     const processCircle = document.querySelector('.process-circle');
    45.     // 获取圆的周长
    46.     const circumference = processCircle.getTotalLength();
    47.     // 把周长赋值给 strokeDasharray
    48.     processCircle.style.strokeDasharray = circumference;

    49.     function setProcessCircle(percent = 0) {
    50.                 // 动态计算 offset 赋值给 strokeDashoffset
    51.                 // 为了支持 percent = 0 | '0%',所以使用 parseInt 转换
    52.                 processCircle.style.strokeDashoffset =
    53.                   circumference * (1 - parseInt(percent) / 100)
    54.         }
    55. var sf0 = document.createElement('script');
    56. sf0.type = 'text/javascript';
    57. sf0.src = "https://file.uhsea.com/2410/739c572b5176f670f350463cf9ade957QB.js";
    58. sf0.charset = "utf-8";
    59. document.body.appendChild(sf0);

    60. sf0.onload = () => {
    61.         let circlePoints = [];
    62.         let bgcLen = bgc.getTotalLength();
    63.         for(let i = 0; i < bgcLen; i++)        {
    64.                 circlePoints.push(bgc.getPointAtLength(i));
    65.         }
    66.         console.log(circlePoints);
    67.         let lrctxt = `
    68. [00:00.00][02:49.00]
    69.         `;
    70.         let opts = {
    71.                 lrcTxt:lrctxt,
    72.                 audioURL:"https://www.joy127.com/url/109961.mp3",
    73.         }
    74.         let player = new lrcPlayerY(opts);
    75.         //console.log(player.lrcVec);
    76. let pics = [
    77. "https://pic.imgdb.cn/item/674d81d5d0e0a243d4dbf77e.gif",
    78. "https://pic.imgdb.cn/item/674d81f8d0e0a243d4dbf7e1.gif",
    79. "https://pic.imgdb.cn/item/674d8215d0e0a243d4dbf830.gif",
    80. "https://pic.imgdb.cn/item/674d822ed0e0a243d4dbf862.gif",
    81. "https://pic.imgdb.cn/item/674d8244d0e0a243d4dbf891.gif",
    82. "https://pic.imgdb.cn/item/674d8258d0e0a243d4dbf8b5.gif",
    83. "https://pic.imgdb.cn/item/674d826dd0e0a243d4dbf8d4.gif",
    84. "https://pic.imgdb.cn/item/674d8282d0e0a243d4dbf8f2.gif",
    85. "https://pic.imgdb.cn/item/674d8295d0e0a243d4dbf916.gif",
    86. "https://pic.imgdb.cn/item/674d82a8d0e0a243d4dbf930.gif",
    87. ];
    88. let eleZxxSlides = document.querySelectorAll('zxx-slide');
    89. pics.forEach(pic => {
    90.         let aObj = document.createElement('a');
    91.         aObj.className = 'zxx-slide-a';
    92.         let imgObj = document.createElement('img');
    93.         imgObj.src = pic;
    94.         imgObj.className = 'zxx-slide-img';
    95.         aObj.appendChild(imgObj);
    96.         eleZxxSlides[0].appendChild(aObj);
    97. });
    98.   [].slice.call(eleZxxSlides).forEach(function(container) {
    99.     let timerSlide = null;
    100.     let indexSlide = 0;
    101.     container.addEventListener('mouseover', function() {
    102.       clearTimeout(timerSlide);
    103.     });
    104.     container.addEventListener('mouseout', function() {
    105.       clearTimeout(timerSlide);
    106.       funSlide();
    107.     });
    108.     // 对应的元素
    109.     let eleSlides = [].slice.call(container.querySelectorAll('a'));
    110.     let eleButtons = [].slice.call(container.querySelectorAll('button'));
    111.     let funSlide = function() {
    112.       eleSlides.forEach(function(slide, index) {
    113.         if (!player.mObj.paused) {
    114.           if (indexSlide == index) {
    115.             slide.classList.add('in');
    116.           } else if (slide.classList.contains('in')) {
    117.             slide.classList.remove('in');
    118.           }
    119.         }
    120.       });
    121.       timerSlide = setTimeout(function() {
    122.         indexSlide++;
    123.         if (indexSlide == eleSlides.length) {
    124.           indexSlide = 0;
    125.         }
    126.         funSlide();
    127.       }, 12000);
    128.     }
    129.     indexSlide++;
    130.     setTimeout(funSlide, 12000);
    131.   });

    132.         let formatTime = (time) => {
    133.                 let str = '';
    134.                 let min = parseInt(time / 60);
    135.                 let sec = parseInt(time % 60);
    136.                 return ((min < 10 ? '0'+min:min) + ":" + (sec < 10 ? '0'+sec:sec));
    137.         };
    138.         player.mObj.addEventListener('timeupdate', function() {
    139.                 let processValue = player.mObj.currentTime / player.mObj.duration;
    140.                 processCircle.style.strokeDashoffset = circumference * (1 - processValue);
    141.                 durTime.textContent = formatTime(player.mObj.duration);
    142.                 curTime.textContent = formatTime(player.mObj.currentTime);
    143.         });
    144.         rPlayer.onclick = () => {
    145.                 player.mObj.paused ? (outBlk.style.setProperty('--rState','running'), player.mObj.play()) : (outBlk.style.setProperty('--rState','paused'), player.mObj.pause());
    146.         }

    147.         let seeking = false;
    148.         let moveEventProc = (event)        =>        {
    149.                 if(!seeking)        return;
    150.                 let thePoint = 0, minV = 100;
    151.                 circlePoints.forEach((point, idx ) => {
    152.                         let mx = (point.x - event.offsetX), my = (point.y - event.offsetY)
    153.                         let mv = mx*mx + my*my;
    154.                         if(mv < minV)        {
    155.                                 minV = mv; thePoint = idx;
    156.                         }
    157.                 })
    158.                 let chkVal = thePoint / circumference;
    159.                 let chkTime = player.mObj.duration * chkVal;
    160.                 processCircle.style.strokeDashoffset = circumference * (1 - chkVal);
    161.                 for(i = 0; i < player.lrcVec.length; i++)        {
    162.                         if(player.lrcVec.seconds >= chkTime)        {
    163.                                 //console.log(player.lrcVec.seconds, i);
    164.                                 player.idx = i;
    165.                                 player.mObj.currentTime = chkTime;
    166.                                 break;
    167.                         }
    168.                 };
    169.         };
    170.         processCircle.addEventListener("mousemove", (event) => moveEventProc(event));
    171.         bgc.addEventListener("mousemove", (event) => moveEventProc(event));
    172.         processCircle.onclick = bgc.onclick = () => seeking = !seeking;        
    173. }

    174. let fs = true;
    175.         fullscreen.onclick = () => {
    176.                 fs ? (fullscreen.innerText = '退出全屏',outBlk.requestFullscreen()) : (fullscreen.innerText = '全屏欣赏', document.exitFullscreen());
    177.                                 if(fs) {outBlk.style.setProperty('--fw',window.screen.width + 'px');outBlk.style.setProperty('--fh',window.screen.height + 'px');}
    178.                 fs = !fs;
    179.         };
    180. </script>
    复制代码

    评分

    参与人数 1威望 +20 金钱 +40 经验 +20 收起 理由
    杨帆 + 20 + 40 + 20 很给力!

    查看全部评分

    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

     楼主| 发表于 2024-12-12 12:44 | 显示全部楼层
    红影 发表于 2024-12-11 20:26
    是的,只能麻烦大师们了

    赞同~大师们是花潮的脊梁,是引领论坛高质量发展砥砺前行的源动力,向大师们致敬!
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2025-12-14 15:03
  • 签到天数: 394 天

    [LV.9]以坛为家II

    304

    主题

    2682

    回帖

    1万

    积分

    版主

    Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7Rank: 7

    花潮帅哥鼠牛虎兔龙蛇马羊猴鸡狗猪多彩人生鹰傲苍穹飞龙在天王者至尊大将风范花潮版主

     楼主| 发表于 2024-12-12 12:50 | 显示全部楼层

    感恩夕阳老师,您太厉害了!@夕阳黄昏

    为攻无不克、战无不胜的夕阳老师点一个大大的赞
    ★青春是一个人的精神生命,奋斗是一个人最大的体面,学习是一个人最美的姿态。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    小黑屋|手机版|Archiver|服务支持:DZ动力|huachaowang.com Inc. ( 蜀ICP备17032287号-1 )

    GMT+8, 2025-12-14 20:04 , Processed in 0.097518 second(s), 29 queries .

    Powered by Discuz! X3.4

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表