{"id":28,"date":"2026-04-18T09:47:43","date_gmt":"2026-04-18T01:47:43","guid":{"rendered":"https:\/\/www.lianwj.com\/?page_id=28"},"modified":"2026-05-27T10:38:53","modified_gmt":"2026-05-27T02:38:53","slug":"%e9%a6%96%e9%a1%b5","status":"publish","type":"page","link":"https:\/\/www.lianwj.com\/","title":{"rendered":"\u9996\u9875"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"28\" class=\"elementor elementor-28\">\n\t\t\t\t<div class=\"elementor-element elementor-element-709cbab e-con-full e-flex e-con e-parent\" data-id=\"709cbab\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9c92825 elementor-widget elementor-widget-shortcode\" data-id=\"9c92825\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div id=\"apple-master-1\" class=\"amc\">\n        <div class=\"amc-track\">\n                        <div class=\"amc-slide\" data-type=\"video\" data-src=\"https:\/\/www.lianwj.com\/wp-content\/uploads\/2026\/05\/\u604b\u552f\u5bb6\u4f01\u4e1a\u5ba3\u4f20\u72471.mp4\">\n                                    <canvas class=\"amc-canvas\"><\/canvas>\n                            <\/div>\n                        <div class=\"amc-slide\" data-type=\"image\" data-src=\"https:\/\/www.galluxwood.com\/wp-content\/uploads\/2026\/04\/\u9996\u9875\u56fe-1.jpg\">\n                                    <img decoding=\"async\" class=\"lazyload\" src=\"data:image\/gif;base64,R0lGODlhAQABAIAAAAAAAP\/\/\/yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\" data-src=\"https:\/\/www.galluxwood.com\/wp-content\/uploads\/2026\/04\/\u9996\u9875\u56fe-1.jpg\" loading=\"lazy\" alt=\"\"><noscript><img decoding=\"async\" class=\"lazyload\" src=\"https:\/\/www.galluxwood.com\/wp-content\/uploads\/2026\/04\/\u9996\u9875\u56fe-1.jpg\" loading=\"lazy\" alt=\"\"><\/noscript>\n                            <\/div>\n                    <\/div>\n        <div class=\"amc-overlay\"><\/div>\n        <!-- \u9759\u97f3\/\u53d6\u6d88\u9759\u97f3\u6309\u94ae -->\n        <div class=\"amc-mute-btn\" title=\"\u70b9\u51fb\u5f00\u542f\/\u5173\u95ed\u58f0\u97f3\">\n            <svg class=\"amc-icon-muted\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n                <polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\/>\n                <line x1=\"23\" y1=\"9\" x2=\"17\" y2=\"15\"\/>\n                <line x1=\"17\" y1=\"9\" x2=\"23\" y2=\"15\"\/>\n            <\/svg>\n            <svg class=\"amc-icon-unmuted\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display:none\">\n                <polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"\/>\n                <path d=\"M19.07 4.93a10 10 0 0 1 0 14.14\"\/>\n                <path d=\"M15.54 8.46a5 5 0 0 1 0 7.07\"\/>\n            <\/svg>\n        <\/div>\n        <div class=\"amc-prev\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"15 18 9 12 15 6\"\/><\/svg><\/div>\n        <div class=\"amc-next\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"9 18 15 12 9 6\"\/><\/svg><\/div>\n    <\/div>\n\n    <style>\n    #apple-master-1{position:relative;width:100vw;height:100vh;overflow:hidden;margin-left:calc(-50vw + 50%);background:#000;user-select:none;-webkit-user-select:none;touch-action:none}\n    #apple-master-1 .amc-track{display:flex;height:100%;will-change:transform}\n    #apple-master-1 .amc-slide{flex:0 0 100%;height:100%;overflow:hidden;position:relative}\n    #apple-master-1 .amc-slide img,\n    #apple-master-1 .amc-canvas{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;pointer-events:none;z-index:1}\n    #apple-master-1 .amc-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:100;cursor:grab;background:transparent}\n    #apple-master-1 .amc-overlay:active{cursor:grabbing}\n    #apple-master-1 .amc-prev,\n    #apple-master-1 .amc-next{position:absolute;top:50%;width:48px;height:48px;margin-top:-24px;z-index:200;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;opacity:0;transition:opacity .3s,background .3s,transform .3s;transform:scale(.85)}\n    #apple-master-1 .amc-prev svg,\n    #apple-master-1 .amc-next svg{width:28px;height:28px;pointer-events:none}\n    #apple-master-1 .amc-prev{left:16px}\n    #apple-master-1 .amc-next{right:16px}\n    #apple-master-1:hover .amc-prev,\n    #apple-master-1:hover .amc-next{opacity:1;transform:scale(1)}\n    #apple-master-1 .amc-prev:hover,\n    #apple-master-1 .amc-next:hover{background:rgba(255,255,255,.15);transform:scale(1.1)}\n    #apple-master-1 .amc-prev:active,\n    #apple-master-1 .amc-next:active{background:rgba(255,255,255,.25);transform:scale(.95)}\n\n    \/* \u9759\u97f3\u6309\u94ae\u6837\u5f0f *\/\n    #apple-master-1 .amc-mute-btn{\n        position:absolute;bottom:24px;right:24px;z-index:200;\n        width:44px;height:44px;cursor:pointer;\n        display:flex;align-items:center;justify-content:center;\n        border-radius:50%;background:rgba(0,0,0,.45);\n        backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);\n        opacity:0;transition:opacity .3s,background .3s;\n    }\n    #apple-master-1 .amc-mute-btn svg{width:22px;height:22px;pointer-events:none}\n    #apple-master-1:hover .amc-mute-btn{opacity:1}\n    #apple-master-1 .amc-mute-btn:hover{background:rgba(0,0,0,.65)}\n    \/* \u79fb\u52a8\u7aef\u59cb\u7ec8\u663e\u793a\u9759\u97f3\u6309\u94ae *\/\n    @media (max-width:768px){\n        #apple-master-1 .amc-mute-btn{opacity:.8}\n    }\n    <\/style>\n\n    <script>\n    (function(){\n        var wrap     = document.getElementById('apple-master-1');\n        var track    = wrap.querySelector('.amc-track');\n        var overlay  = wrap.querySelector('.amc-overlay');\n        var btnPrev  = wrap.querySelector('.amc-prev');\n        var btnNext  = wrap.querySelector('.amc-next');\n        var muteBtn  = wrap.querySelector('.amc-mute-btn');\n        var iconMuted   = muteBtn.querySelector('.amc-icon-muted');\n        var iconUnmuted = muteBtn.querySelector('.amc-icon-unmuted');\n        var origSlides = Array.from(wrap.querySelectorAll('.amc-slide'));\n        var N        = origSlides.length;\n        var speed    = 5000;\n\n        \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n        \/\/  \u58f0\u97f3\u72b6\u6001\u7ba1\u7406\n        \/\/  \u7b56\u7565\uff1a\u521d\u59cb\u9759\u97f3\u4ee5\u6ee1\u8db3\u81ea\u52a8\u64ad\u653e\u7b56\u7565\n        \/\/  \u7528\u6237\u70b9\u51fb\u9759\u97f3\u6309\u94ae\u540e\u89e3\u9664\u9759\u97f3\n        \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n        var globalMuted = true;\n        var userHasInteracted = false;\n\n        function updateMuteUI() {\n            iconMuted.style.display   = globalMuted ? 'block' : 'none';\n            iconUnmuted.style.display = globalMuted ? 'none'  : 'block';\n        }\n\n        function setGlobalMute(muted) {\n            globalMuted = muted;\n            updateMuteUI();\n            \/\/ \u540c\u6b65\u6240\u6709\u5185\u5b58\u4e2d\u7684 video\n            for (var k in videoMap) {\n                videoMap[k].video.muted = globalMuted;\n            }\n        }\n\n        \/\/ \u8bb0\u5f55\u7528\u6237\u4ea4\u4e92\uff08\u4efb\u610f\u70b9\u51fb\/\u89e6\u6478\u90fd\u7b97\uff09\n        function markInteracted() {\n            if (userHasInteracted) return;\n            userHasInteracted = true;\n        }\n        wrap.addEventListener('click', markInteracted, { once: false });\n        wrap.addEventListener('touchstart', markInteracted, { once: false });\n\n        \/\/ \u2500\u2500 clone\u9996\u5c3e\u5b9e\u73b0\u65e0\u9650\u8f6e\u64ad \u2500\u2500\n        track.insertBefore(origSlides[N-1].cloneNode(true), origSlides[0]);\n        track.appendChild(origSlides[0].cloneNode(true));\n        var allSlides = Array.from(track.children);\n        var cur = 1, anim = false;\n\n        \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n        \/\/  \u6838\u5fc3\uff1a\u89c6\u9891\u5b8c\u5168\u5728 JS \u5185\u5b58\u4e2d\uff0c\u4e0d\u5728 DOM \u91cc\n        \/\/  \u901a\u8fc7 Blob URL \u52a0\u8f7d\uff0c\u8fdb\u4e00\u6b65\u9632\u6b62\u6d4f\u89c8\u5668\u63a5\u7ba1\n        \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n        var videoMap = {};\n\n        function loadVideoAsBlob(url, callback) {\n            \/\/ \u5c1d\u8bd5\u901a\u8fc7 fetch \u5c06\u89c6\u9891\u52a0\u8f7d\u4e3a Blob URL\n            \/\/ \u8fd9\u6837\u6d4f\u89c8\u5668\u4e0d\u4f1a\u5c06\u5176\u8bc6\u522b\u4e3a\u53ef\u63a5\u7ba1\u7684\u5a92\u4f53\u8d44\u6e90\n            fetch(url)\n                .then(function(resp) { return resp.blob(); })\n                .then(function(blob) {\n                    var blobUrl = URL.createObjectURL(blob);\n                    callback(blobUrl, true);\n                })\n                .catch(function() {\n                    \/\/ \u5982\u679c fetch \u5931\u8d25\uff08\u8de8\u57df\u7b49\uff09\uff0c\u56de\u9000\u5230\u76f4\u63a5 URL\n                    callback(url, false);\n                });\n        }\n\n        function initVideoSlide(slideEl, slideIdx) {\n            if (slideEl.dataset.type !== 'video') return;\n            var canvas = slideEl.querySelector('.amc-canvas');\n            if (!canvas) return;\n\n            var srcUrl = slideEl.dataset.src;\n\n            \/\/ \u5728\u5185\u5b58\u4e2d\u521b\u5efa video\uff0c\u7edd\u4e0d\u63d2\u5165 DOM\n            var video = document.createElement('video');\n            video.muted = globalMuted; \/\/ \u521d\u59cb\u9759\u97f3\n            video.playsInline = true;\n            video.setAttribute('playsinline', '');\n            video.setAttribute('webkit-playsinline', '');\n            \/\/ \u5173\u952e\uff1a\u963b\u6b62 iOS \u5168\u5c4f\u63a5\u7ba1\n            video.setAttribute('x-webkit-airplay', 'deny');\n            video.disableRemotePlayback = true;\n            video.preload = 'auto';\n            video.crossOrigin = 'anonymous';\n\n            var ctx = canvas.getContext('2d');\n            var raf = null;\n\n            \/\/ \u5c1d\u8bd5\u7528 Blob URL \u52a0\u8f7d\uff0c\u51cf\u5c11\u6d4f\u89c8\u5668\u63a5\u7ba1\u98ce\u9669\n            loadVideoAsBlob(srcUrl, function(finalUrl, isBlob) {\n                video.src = finalUrl;\n                \/\/ \u8bb0\u5f55\u662f\u5426\u4e3a blob \u4ee5\u4fbf\u540e\u7eed\u6e05\u7406\n                videoMap[slideIdx]._isBlob = isBlob;\n                videoMap[slideIdx]._blobUrl = isBlob ? finalUrl : null;\n            });\n\n            function sizeCanvas() {\n                var dpr = window.devicePixelRatio || 1;\n                canvas.width  = wrap.clientWidth  * dpr;\n                canvas.height = wrap.clientHeight * dpr;\n            }\n            sizeCanvas();\n\n            function drawFrame() {\n                if (video.paused || video.ended) return;\n                var vw = video.videoWidth  || canvas.width;\n                var vh = video.videoHeight || canvas.height;\n                var cw = canvas.width;\n                var ch = canvas.height;\n                var scale = Math.max(cw \/ vw, ch \/ vh);\n                var sw = cw \/ scale;\n                var sh = ch \/ scale;\n                var sx = (vw - sw) \/ 2;\n                var sy = (vh - sh) \/ 2;\n                ctx.drawImage(video, sx, sy, sw, sh, 0, 0, cw, ch);\n                raf = requestAnimationFrame(drawFrame);\n            }\n\n            video.addEventListener('play', function() {\n                raf = requestAnimationFrame(drawFrame);\n            });\n\n            videoMap[slideIdx] = {\n                video: video,\n                canvas: canvas,\n                ctx: ctx,\n                raf: null,\n                sizeCanvas: sizeCanvas,\n                _isBlob: false,\n                _blobUrl: null\n            };\n        }\n\n        allSlides.forEach(function(s, i) { initVideoSlide(s, i); });\n\n        \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n        \/\/  Web Audio API \u58f0\u97f3\u901a\u8def\n        \/\/  \u67d0\u4e9b\u6d4f\u89c8\u5668\u5373\u4f7f muted=false\uff0ccanvas \u65b9\u6848\u4e5f\u4e0d\u51fa\u58f0\n        \/\/  \u901a\u8fc7 AudioContext \u4ece video \u5143\u7d20\u6293\u53d6\u97f3\u9891\u8f93\u51fa\n        \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n        var audioCtx = null;\n        var audioSources = {}; \/\/ slideIdx -> MediaElementAudioSourceNode\n\n        function ensureAudioContext() {\n            if (audioCtx) return;\n            try {\n                var AC = window.AudioContext || window.webkitAudioContext;\n                audioCtx = new AC();\n            } catch(e) {\n                console.warn('Web Audio API \u4e0d\u53ef\u7528\uff0c\u58f0\u97f3\u53ef\u80fd\u65e0\u6cd5\u6b63\u5e38\u8f93\u51fa');\n            }\n        }\n\n        function connectAudio(slideIdx) {\n            if (!audioCtx) return;\n            if (audioSources[slideIdx]) return; \/\/ \u5df2\u8fde\u63a5\n            var entry = videoMap[slideIdx];\n            if (!entry) return;\n            try {\n                var source = audioCtx.createMediaElementSource(entry.video);\n                source.connect(audioCtx.destination);\n                audioSources[slideIdx] = source;\n            } catch(e) {\n                \/\/ \u67d0\u4e9b\u6d4f\u89c8\u5668\u5bf9\u975e DOM \u5143\u7d20\u53ef\u80fd\u629b\u5f02\u5e38\n                console.warn('\u97f3\u9891\u8fde\u63a5\u5931\u8d25 slide ' + slideIdx, e);\n            }\n        }\n\n        function resumeAudioContext() {\n            if (audioCtx && audioCtx.state === 'suspended') {\n                audioCtx.resume();\n            }\n        }\n\n        \/\/ \u2500\u2500 \u5de5\u5177 \u2500\u2500\n        function W() { return wrap.offsetWidth; }\n        function posOf(idx) { return -(idx * W()); }\n\n        function setPos(px, transition) {\n            track.style.transition = transition ? 'transform .45s cubic-bezier(.4,0,.2,1)' : 'none';\n            track.style.transform = 'translate3d(' + px + 'px,0,0)';\n            for (var i = 0; i < allSlides.length; i++) {\n                var offset = i * W() + px;\n                var absO = Math.abs(offset);\n                var sc = 1 - Math.min(absO \/ (W() * 3), 0.15);\n                var bl = Math.min(absO \/ (W() * 1.2), 6);\n                allSlides[i].style.transform = 'scale(' + sc + ')';\n                allSlides[i].style.filter = 'blur(' + bl + 'px)';\n            }\n        }\n\n        function jumpTo(idx) {\n            cur = idx;\n            setPos(posOf(cur), false);\n        }\n\n        function slideTo(idx) {\n            if (anim) return;\n            anim = true;\n            cur = idx;\n            setPos(posOf(cur), true);\n            var done = false;\n            function finish() {\n                if (done) return; done = true; anim = false;\n                track.style.transition = 'none';\n                if (cur <= 0)     { cur = N;  setPos(posOf(cur), false); }\n                if (cur >= N + 1) { cur = 1;  setPos(posOf(cur), false); }\n                onSlideReady();\n            }\n            track.addEventListener('transitionend', finish, { once: true });\n            setTimeout(finish, 500);\n        }\n\n        function next() { if (!anim) slideTo(cur + 1); }\n        function prev() { if (!anim) slideTo(cur - 1); }\n\n        \/\/ \u2500\u2500 \u5e7b\u706f\u7247\u5c31\u7eea \u2500\u2500\n        function onSlideReady() {\n            \/\/ \u505c\u6b62\u6240\u6709\u5185\u5b58\u89c6\u9891\n            for (var k in videoMap) {\n                var entry = videoMap[k];\n                entry.video.pause();\n                entry.video.currentTime = 0;\n                if (entry.raf) { cancelAnimationFrame(entry.raf); entry.raf = null; }\n            }\n\n            var entry = videoMap[cur];\n            if (entry) {\n                \/\/ \u5f53\u524d\u662f\u89c6\u9891\n                stopAuto();\n                entry.video.muted = globalMuted;\n\n                \/\/ \u786e\u4fdd\u97f3\u9891\u4e0a\u4e0b\u6587\u5c31\u7eea\n                if (!globalMuted && userHasInteracted) {\n                    ensureAudioContext();\n                    resumeAudioContext();\n                    connectAudio(cur);\n                }\n\n                entry.video.play().catch(function(err) {\n                    \/\/ \u81ea\u52a8\u64ad\u653e\u88ab\u963b\u6b62\uff0c\u5f3a\u5236\u9759\u97f3\u91cd\u8bd5\n                    console.warn('\u81ea\u52a8\u64ad\u653e\u88ab\u963b\u6b62\uff0c\u9759\u97f3\u91cd\u8bd5', err);\n                    entry.video.muted = true;\n                    entry.video.play().catch(function() { startAuto(); });\n                });\n                entry.video.onended = function() { next(); };\n            } else {\n                \/\/ \u5f53\u524d\u662f\u56fe\u7247\n                startAuto();\n            }\n        }\n\n        \/\/ \u2500\u2500 \u81ea\u52a8\u64ad\u653e \u2500\u2500\n        var timer = null;\n        function startAuto() {\n            stopAuto();\n            timer = setInterval(function() { if (!anim) next(); }, speed);\n        }\n        function stopAuto() {\n            if (timer) { clearInterval(timer); timer = null; }\n        }\n\n        \/\/ \u2500\u2500 \u89c6\u9891\u6682\u505c\/\u6062\u590d \u2500\u2500\n        function toggleVideo() {\n            var entry = videoMap[cur];\n            if (!entry) return;\n            if (entry.video.paused) {\n                entry.video.play().catch(function() {});\n            } else {\n                entry.video.pause();\n            }\n        }\n\n        \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n        \/\/  \u4e8b\u4ef6\u7ed1\u5b9a\n        \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\n        \/\/ \u2500\u2500 \u9759\u97f3\u6309\u94ae \u2500\u2500\n        muteBtn.addEventListener('mousedown', function(e) { e.stopPropagation(); });\n        muteBtn.addEventListener('touchstart', function(e) { e.stopPropagation(); e.preventDefault(); }, { passive: false });\n        muteBtn.addEventListener('click', function(e) {\n            e.stopPropagation();\n            markInteracted();\n\n            var newMuted = !globalMuted;\n            if (!newMuted) {\n                \/\/ \u8981\u5f00\u542f\u58f0\u97f3\uff1a\u521d\u59cb\u5316\u97f3\u9891\u4e0a\u4e0b\u6587\n                ensureAudioContext();\n                resumeAudioContext();\n                \/\/ \u4e3a\u6240\u6709\u89c6\u9891\u8fde\u63a5\u97f3\u9891\n                for (var k in videoMap) {\n                    connectAudio(parseInt(k));\n                }\n            }\n            setGlobalMute(newMuted);\n\n            \/\/ \u5982\u679c\u5f53\u524d\u6b63\u5728\u64ad\u653e\u89c6\u9891\uff0c\u7acb\u5373\u540c\u6b65\n            var entry = videoMap[cur];\n            if (entry && !entry.video.paused) {\n                entry.video.muted = globalMuted;\n            }\n        });\n\n        \/\/ \u2500\u2500 \u6309\u94ae \u2500\u2500\n        btnNext.addEventListener('mousedown', function(e) { e.stopPropagation(); });\n        btnNext.addEventListener('touchstart', function(e) { e.stopPropagation(); e.preventDefault(); }, { passive: false });\n        btnNext.addEventListener('click', function(e) { e.stopPropagation(); stopAuto(); next(); });\n\n        btnPrev.addEventListener('mousedown', function(e) { e.stopPropagation(); });\n        btnPrev.addEventListener('touchstart', function(e) { e.stopPropagation(); e.preventDefault(); }, { passive: false });\n        btnPrev.addEventListener('click', function(e) { e.stopPropagation(); stopAuto(); prev(); });\n\n        \/\/ \u2500\u2500 \u62d6\u52a8 \u2500\u2500\n        var dragging = false, dragX0 = 0, dragPos0 = 0, dragMoved = false, lastDragX = 0;\n\n        function startDrag(e) {\n            if (anim) return;\n            dragging = true; dragMoved = false;\n            var x = e.touches ? e.touches[0].clientX : e.clientX;\n            dragX0 = x; lastDragX = x;\n            dragPos0 = posOf(cur);\n            track.style.transition = 'none';\n            stopAuto();\n            e.preventDefault();\n        }\n        overlay.addEventListener('mousedown', startDrag);\n        overlay.addEventListener('touchstart', startDrag, { passive: false });\n\n        function moveDrag(e) {\n            if (!dragging) return;\n            var x = e.touches ? e.touches[0].clientX : e.clientX;\n            lastDragX = x;\n            var dx = x - dragX0;\n            if (Math.abs(dx) > 5) dragMoved = true;\n            setPos(dragPos0 + dx, false);\n            e.preventDefault();\n        }\n        overlay.addEventListener('mousemove', moveDrag);\n        overlay.addEventListener('touchmove', moveDrag, { passive: false });\n\n        function endDrag() {\n            if (!dragging) return;\n            dragging = false;\n            var totalDrag = lastDragX - dragX0;\n            var target = cur;\n            if (Math.abs(totalDrag) > W() * 0.15) {\n                target = totalDrag < 0 ? cur + 1 : cur - 1;\n            }\n            slideTo(target);\n        }\n        window.addEventListener('mouseup', endDrag);\n        overlay.addEventListener('touchend', endDrag);\n\n        \/\/ \u2500\u2500 overlay\u70b9\u51fb = \u6682\u505c\/\u6062\u590d\u89c6\u9891 \u2500\u2500\n        overlay.addEventListener('click', function() {\n            if (dragMoved) return;\n            toggleVideo();\n        });\n\n        \/\/ \u2500\u2500 hover\u6682\u505c \u2500\u2500\n        wrap.addEventListener('mouseenter', function() { if (!videoMap[cur]) stopAuto(); });\n        wrap.addEventListener('mouseleave', function() { if (!videoMap[cur]) startAuto(); });\n\n        \/\/ \u2500\u2500 resize \u2500\u2500\n        window.addEventListener('resize', function() {\n            jumpTo(cur);\n            for (var k in videoMap) { videoMap[k].sizeCanvas(); }\n        });\n\n        \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n        \/\/  Visibility API\uff1a\u5207\u6362\u6807\u7b7e\u9875\u65f6\u6682\u505c\/\u6062\u590d\n        \/\/  \u9632\u6b62\u540e\u53f0\u64ad\u653e\u5bfc\u81f4\u7684\u8d44\u6e90\u6d6a\u8d39\u548c\u72b6\u6001\u6df7\u4e71\n        \/\/ \u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n        document.addEventListener('visibilitychange', function() {\n            if (document.hidden) {\n                \/\/ \u9875\u9762\u4e0d\u53ef\u89c1\uff1a\u6682\u505c\u6240\u6709\u89c6\u9891\n                for (var k in videoMap) {\n                    videoMap[k].video.pause();\n                }\n                stopAuto();\n            } else {\n                \/\/ \u9875\u9762\u6062\u590d\u53ef\u89c1\n                onSlideReady();\n            }\n        });\n\n        \/\/ \u2500\u2500 \u521d\u59cb\u5316 \u2500\u2500\n        jumpTo(1);\n        onSlideReady();\n    })();\n    <\/script>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f224b25 e-con-full e-flex e-con e-parent\" data-id=\"f224b25\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<a class=\"elementor-element elementor-element-7a91143 e-flex e-con-boxed e-con e-child\" data-id=\"7a91143\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" href=\"http:\/\/wohail.com\/?page_id=175\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-75ac715 e-con-full e-flex e-con e-parent\" data-id=\"75ac715\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<a class=\"elementor-element elementor-element-ac2ec48 e-con-full e-flex e-con e-child\" data-id=\"ac2ec48\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" href=\"http:\/\/wohail.com\/?page_id=167\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2d2dc1f e-con-full e-flex e-con e-parent\" data-id=\"2d2dc1f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<a class=\"elementor-element elementor-element-14c4dd3 e-con-full e-flex e-con e-child\" data-id=\"14c4dd3\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\" href=\"http:\/\/wohail.com\/?page_id=163\" target=\"_blank\" rel=\"noopener\">\n\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-28","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.lianwj.com\/index.php?rest_route=\/wp\/v2\/pages\/28","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.lianwj.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.lianwj.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.lianwj.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.lianwj.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=28"}],"version-history":[{"count":181,"href":"https:\/\/www.lianwj.com\/index.php?rest_route=\/wp\/v2\/pages\/28\/revisions"}],"predecessor-version":[{"id":846,"href":"https:\/\/www.lianwj.com\/index.php?rest_route=\/wp\/v2\/pages\/28\/revisions\/846"}],"wp:attachment":[{"href":"https:\/\/www.lianwj.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}