/** * 自定义器预览功能 * 实时预览关于我们时间轴设置的变化 */ (function($) { 'use strict'; // 关于我们时间轴实时预览 initAboutTimelinePreview(); // 视频Banner实时预览 initVideoBannerPreview(); // 业务流程实时预览 initBusinessProcessPreview(); // 关于我们时间轴预览功能 function initAboutTimelinePreview() { // 时间轴显示状态实时预览 wp.customize('about_timeline_show', function(value) { value.bind(function(newval) { const timelineContainer = $('.about-timeline-block'); if (newval) { timelineContainer.show(); } else { timelineContainer.hide(); } }); }); // 时间轴标题实时预览 wp.customize('about_timeline_title', function(value) { value.bind(function(newval) { $('.about-timeline-block .timeline-title').text(newval); }); }); // 监听各个时间轴项目字段的变化 for (let i = 1; i <= 5; i++) { // 监听启用状态变化 wp.customize(`about_timeline_item_${i}_enabled`, function(value) { value.bind(function(newval) { updateTimelineFromFields(); }); }); // 监听年份变化 wp.customize(`about_timeline_item_${i}_year`, function(value) { value.bind(function(newval) { updateTimelineFromFields(); }); }); // 监听标题变化 wp.customize(`about_timeline_item_${i}_title`, function(value) { value.bind(function(newval) { updateTimelineFromFields(); }); }); // 监听描述变化 wp.customize(`about_timeline_item_${i}_description`, function(value) { value.bind(function(newval) { updateTimelineFromFields(); }); }); // 监听图片变化 wp.customize(`about_timeline_item_${i}_image`, function(value) { value.bind(function(newval) { updateTimelineFromFields(); }); }); } } // 从字段获取时间轴数据并更新预览 function updateTimelineFromFields() { const timelineData = []; // 收集所有启用的时间轴项目数据 for (let i = 1; i <= 5; i++) { const enabled = wp.customize(`about_timeline_item_${i}_enabled`).get(); if (enabled) { const year = wp.customize(`about_timeline_item_${i}_year`).get(); const title = wp.customize(`about_timeline_item_${i}_title`).get(); const description = wp.customize(`about_timeline_item_${i}_description`).get(); const image = wp.customize(`about_timeline_item_${i}_image`).get(); // 只有当年份和标题都不为空时才添加 if (year && title) { timelineData.push({ year: year, title: title, description: description || '', image: image || '' }); } } } if (timelineData.length > 0) { updateTimelinePreview(timelineData); } } // 更新时间轴预览内容 function updateTimelinePreview(timelineData) { const timelineContainer = $('.timeline-container'); const swiperContainer = $('.swiper-wrapper'); if (timelineContainer.length === 0 || swiperContainer.length === 0) { return; } // 更新时间轴点 let timelineHtml = ''; timelineData.forEach((item, index) => { const activeClass = index === 0 ? ' active' : ''; timelineHtml += `
${item.year}
`; }); timelineContainer.html(timelineHtml); // 更新Swiper幻灯片 let swiperHtml = ''; timelineData.forEach((item, index) => { swiperHtml += `
${item.title}

${item.title}

${item.description}

`; }); swiperContainer.html(swiperHtml); // 重新初始化时间轴(如果存在) if (window.initTimelineBlocks) { // 销毁现有的实例 $('.about-timeline-block').each(function() { const instance = $(this).data('timeline-instance'); if (instance && typeof instance.destroy === 'function') { instance.destroy(); } $(this).removeData('timeline-instance'); $(this).removeData('timeline-initialized'); }); // 重新初始化 setTimeout(() => { window.initTimelineBlocks(); }, 100); } } // 视频Banner预览功能 function initVideoBannerPreview() { // 背景图片实时预览 wp.customize('video_banner_bg_image', function(value) { value.bind(function(newval) { const bannerContainer = $('.video-banner-block'); if (bannerContainer.length) { if (newval) { bannerContainer.css('background-image', 'url(' + newval + ')'); } else { bannerContainer.css('background-image', 'none'); } } }); }); // 标题实时预览 wp.customize('video_banner_content_title', function(value) { value.bind(function(newval) { $('.video-banner-content .banner-title').text(newval); }); }); // 副标题实时预览 wp.customize('video_banner_content_subtitle', function(value) { value.bind(function(newval) { $('.video-banner-content .banner-subtitle').text(newval); }); }); // 描述实时预览 wp.customize('video_banner_content_description', function(value) { value.bind(function(newval) { $('.video-banner-content .banner-description').text(newval); }); }); // 高度实时预览 wp.customize('video_banner_height', function(value) { value.bind(function(newval) { const bannerContainer = $('.video-banner-block .video-banner-container'); if (bannerContainer.length) { bannerContainer.css('height', newval + 'px'); } }); }); // 视频背景启用/禁用 wp.customize('video_banner_video_bg_enabled', function(value) { value.bind(function(newval) { const videoBg = $('.video-banner-video-bg'); if (videoBg.length) { if (newval) { videoBg.show(); initVideoBackground(); } else { videoBg.hide(); } } }); }); // 视频背景URL实时预览 wp.customize('video_banner_video_bg_url', function(value) { value.bind(function(newval) { const videoBg = $('.video-banner-video-bg video'); if (videoBg.length && newval) { videoBg.attr('src', newval); // 重新加载视频 videoBg[0].load(); } }); }); // 视频背景不透明度实时预览 wp.customize('video_banner_video_bg_opacity', function(value) { value.bind(function(newval) { const videoBg = $('.video-banner-video-bg video'); if (videoBg.length) { videoBg.css('opacity', newval / 100); } }); }); // 区块ID实时预览 wp.customize('video_banner_block_id', function(value) { value.bind(function(newval) { const bannerBlock = $('.video-banner-block'); if (bannerBlock.length) { bannerBlock.attr('id', newval); } }); }); // 区块类名实时预览 wp.customize('video_banner_block_class', function(value) { value.bind(function(newval) { const bannerBlock = $('.video-banner-block'); if (bannerBlock.length) { // 移除之前的自定义类名(保留默认类名) bannerBlock.removeClass(function(index, className) { return (className.match(/(^|\s)custom-\S+/g) || []).join(' '); }); // 添加新的类名 if (newval) { bannerBlock.addClass(newval); } } }); }); // 初始化视频背景 initVideoBackground(); } // 初始化视频背景 function initVideoBackground() { const videoBg = $('.video-banner-video-bg video'); if (videoBg.length) { const video = videoBg[0]; // 设置视频属性 video.muted = true; video.loop = true; video.playsInline = true; // 尝试自动播放 const playPromise = video.play(); if (playPromise !== undefined) { playPromise.catch(function(error) { console.log('视频自动播放失败:', error); // 可以在这里添加用户交互后播放的逻辑 }); } // 视频加载完成后设置不透明度 video.addEventListener('loadeddata', function() { const opacity = wp.customize('video_banner_video_bg_opacity')(); videoBg.css('opacity', opacity / 100 || 1); }); // 错误处理 video.addEventListener('error', function(e) { videoBg.hide(); }); } } // 实时更新视频Banner样式 function updateVideoBannerStyles() { const bannerContainer = $('.video-banner-block .video-banner-container'); if (bannerContainer.length) { // 获取当前设置值 const height = wp.customize('video_banner_height')(); const bgImage = wp.customize('video_banner_bg_image')(); // 应用样式 if (height) { bannerContainer.css('height', height + 'px'); } if (bgImage) { bannerContainer.css('background-image', 'url(' + bgImage + ')'); } } } // 页面加载完成后初始化 $(document).ready(function() { // 延迟执行以确保DOM完全加载 setTimeout(function() { updateVideoBannerStyles(); initVideoBackground(); }, 500); }); // 业务流程预览功能 function initBusinessProcessPreview() { // 业务流程显示状态实时预览 wp.customize('business_process_show', function(value) { value.bind(function(newval) { const processContainer = $('.business-process-block'); if (newval) { processContainer.show(); } else { processContainer.hide(); } }); }); // 业务流程标题实时预览 wp.customize('business_process_title', function(value) { value.bind(function(newval) { $('.business-process-block .process-title').text(newval); }); }); // 业务流程副标题实时预览 wp.customize('business_process_subtitle', function(value) { value.bind(function(newval) { $('.business-process-block .process-subtitle').text(newval); }); }); // 监听各个tab的变化 for (let i = 1; i <= 4; i++) { const tabNumber = i.toString().padStart(2, '0'); // 监听tab标题变化 wp.customize(`business_process_tab_${tabNumber}_title`, function(value) { value.bind(function(newval) { $(`.business-process-tabs .tab-item[data-tab="${tabNumber}"] .tab-title`).text(newval); }); }); // 监听tab描述变化 wp.customize(`business_process_tab_${tabNumber}_description`, function(value) { value.bind(function(newval) { $(`.business-process-tabs .tab-item[data-tab="${tabNumber}"] .tab-description`).text(newval); }); }); // 监听tab图片变化 wp.customize(`business_process_tab_${tabNumber}_image`, function(value) { value.bind(function(newval) { const imageContainer = $('.business-process-image'); const currentActiveTab = $('.business-process-tabs .tab-item.active').data('tab'); // 如果当前活动的tab是正在更改的tab,则更新图片 if (currentActiveTab === tabNumber) { const img = imageContainer.find('img'); if (img.length && newval) { img.attr('src', newval); } } // 更新数据属性以备后续切换使用 $(`.business-process-tabs .tab-item[data-tab="${tabNumber}"]`).attr('data-image', newval); }); }); } // 监听tab切换事件,更新图片预览 $(document).on('click', '.business-process-tabs .tab-item', function() { const tabNumber = $(this).data('tab'); const imageUrl = $(this).data('image'); const imageContainer = $('.business-process-image'); if (imageUrl && imageContainer.length) { const img = imageContainer.find('img'); if (img.length) { // 添加淡出效果 img.fadeOut(200, function() { $(this).attr('src', imageUrl).fadeIn(200); }); } } }); } })(jQuery);