var allWaterfallArr = [
{
category: 'image',
title: '舟山',
imageWebp: '1.jpg',
imageJpg: '1.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '舟山',
imageWebp: '2.jpg',
imageJpg: '2.jpg',
imageHeight: 562.2,
},
{
category: 'video',
title: '舟山站-拍摄花絮',
imageWebp: '3.jpg',
imageJpg: '3.jpg',
video: '3.mp4',
poster: '3.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '舟山-港岛大桥',
imageWebp: '4.jpg',
imageJpg: '4.jpg',
imageHeight: 562.2,
},
{
category: 'video',
title: '宁波站-拍摄花絮',
imageWebp: '5.jpg',
imageJpg: '5.jpg',
video: '5.mp4',
poster: 'po_5.jpg',
imageHeight: 562.2,
},
{
category: 'image',
title: '舟山-秀山大桥',
imageWebp: '6.jpg',
imageJpg: '6.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '舟山',
imageWebp: '7.jpg',
imageJpg: '7.jpg',
imageHeight: 210.73,
},
{
category: 'video',
title: '青龙湾站-拍摄花絮',
imageWebp: '8.jpg',
imageJpg: '8.jpg',
video: '8.mp4',
poster: '8.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '宣城-青龙湾',
imageWebp: '9.jpg',
imageJpg: '9.jpg',
imageHeight: 210.73,
},
{
category: 'video',
title: '红杉林站-拍摄花絮',
imageWebp: '10.jpg',
imageJpg: '10.jpg',
video: '10.mp4',
poster: 'po_10.jpg',
imageHeight: 562.2,
},
{
category: 'image',
title: '宁国-落雨红杉林',
imageWebp: '11.jpg',
imageJpg: '11.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '舟山-秀山大桥',
imageWebp: '12.jpg',
imageJpg: '12.jpg',
imageHeight: 562.2,
},
{
category: 'image',
title: '汉中天坑群',
imageWebp: '13.jpg',
imageJpg: '13.jpg',
imageHeight: 790.32,
},
{
category: 'image',
title: '宁国-落雨红杉林',
imageWebp: '14.jpg',
imageJpg: '14.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '宁波-鳌柱塔',
imageWebp: '15.jpg',
imageJpg: '15.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '宣城-青龙湾',
imageWebp: '16.jpg',
imageJpg: '16.jpg',
imageHeight: 562.2,
},
{
category: 'image',
title: '安庆-天柱山',
imageWebp: '17.jpg',
imageJpg: '17.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '皖南-卢村',
imageWebp: '18.jpg',
imageJpg: '18.jpg',
imageHeight: 562.2,
},
{
category: 'image',
title: '安庆-天柱山',
imageWebp: '19.jpg',
imageJpg: '19.jpg',
imageHeight: 562.2,
},
{
category: 'image',
title: '安庆-天柱山',
imageWebp: '20.jpg',
imageJpg: '20.jpg',
imageHeight: 562.2,
},
{
category: 'image',
title: '舟山',
imageWebp: '21.jpg',
imageJpg: '21.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '四川阿坝-莲宝叶则',
imageWebp: '22.jpg',
imageJpg: '22.jpg',
imageHeight: 117.46,
},
{
category: 'image',
title: '甘南阿万仓湿地',
imageWebp: '23.jpg',
imageJpg: '23.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '甘南阿万仓湿地',
imageWebp: '24.jpg',
imageJpg: '24.jpg',
imageHeight: 210.73,
},
{
category: 'video',
title: '洋县站-拍摄花絮',
imageWebp: '25.jpg',
imageJpg: '25.jpg',
video: '43.mp4',
poster: 'po_43.jpg',
imageHeight: 456.09,
},
{
category: 'image',
title: '甘南阿万仓湿地',
imageWebp: '26.jpg',
imageJpg: '26.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '甘南阿万仓湿地',
imageWebp: '27.jpg',
imageJpg: '27.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '四川阿坝-莲宝叶则',
imageWebp: '28.jpg',
imageJpg: '28.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '四川阿坝-莲宝叶则',
imageWebp: '29.jpg',
imageJpg: '29.jpg',
imageHeight: 210.73,
},
{
category: 'video',
title: '汉中天坑站-拍摄花絮',
imageWebp: '30.jpg',
imageJpg: '30.jpg',
video: '44.mp4',
poster: '44.jpg',
imageHeight: 210.87,
},
{
category: 'image',
title: '汉中挂壁公路',
imageWebp: '31.jpg',
imageJpg: '31jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '汉中挂壁公路',
imageWebp: '32.jpg',
imageJpg: '32.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '舟山',
imageWebp: '33.jpg',
imageJpg: '33.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '唐家河国家级自然保护区-中华斑羚',
imageWebp: '34.jpg',
imageJpg: '34.jpg',
imageHeight: 210.73,
},
{
category: 'video',
title: '莲宝叶则站-拍摄花絮',
imageWebp: '35.jpg',
imageJpg: '35.jpg',
video: '46.mp4',
poster: '46.jpg',
poster: '35.jpg',
imageHeight: 210.87,
},
{
category: 'image',
title: '唐家河国家级自然保护区-藏酋猴',
imageWebp: '36.jpg',
imageJpg: '36.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '汉中天坑群',
imageWebp: '37.jpg',
imageJpg: '37.jpg',
imageHeight: 562.2,
},
{
category: 'image',
title: '汉中天坑群',
imageWebp: '38.jpg',
imageJpg: '38.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '皖南卢村',
imageWebp: '39.jpg',
imageJpg: '39.jpg',
imageHeight: 210.73,
},
{
category: 'image',
title: '汉中洋县-朱鹮',
imageWebp: '40.jpg',
imageJpg: '40.jpg',
imageHeight: 562.2,
},
{
category: 'video',
title: '越海向山-拍摄花絮',
imageWebp: '41.jpg',
imageJpg: '41.jpg',
video: '41.mp4',
poster: 'po_41.jpg',
imageHeight: 456.09,
},
{
category: 'video',
title: '西安站-拍摄花絮',
imageWebp: '42.jpg',
imageJpg: '42.jpg',
video: '42.mp4',
poster: '42.jpg',
imageHeight: 210.87,
},
{
category: 'image',
title: '汉中-天坑群',
imageWebp: '43.jpg',
imageJpg: '43.jpg',
imageHeight: 562.2,
},
{
category: 'image',
title: '汉中挂壁公路',
imageWebp: '44.jpg',
imageJpg: '44.jpg',
imageHeight: 210.73,
},
{
category: 'video',
title: '唐家河站-拍摄花絮',
imageWebp: '45.jpg',
imageJpg: '45.jpg',
video: '45.mp4',
poster: 'po_45.jpg',
imageHeight: 456.09,
},
{
category: 'video',
title: '阿万仓湿地站-拍摄花絮',
imageWebp: '46.jpg',
imageJpg: '46.jpg',
video: '47.mp4',
poster: 'po_47.jpg',
imageHeight: 456.09,
},
];
var hiddenImgHeights = [];
var $window = $(window);
var windowWidth = $window.width();
var windowHeight = $window.height();
var bg = $('.bg-container');
var bg1 = $('.bg-container .bg1');
var bg2 = $('.bg-container .bg2');
var bg3 = $('.bg-container .bg3');
var bg4 = $('.bg-container .bg4');
var bg5 = $('.bg-container .bg5');
var waterFallColumn = $('.waterfall').find('.img-column');
var showMoreImg = $('.page-section-03 .show-more');
var imgSwiperWrapper = $('.img-swiper .swiper-wrapper');
var currentIndex = 0;
var columnHeights = [];
for (let i = 0; i < allWaterfallArr.length; i++) {
hiddenImgHeights.push(allWaterfallArr[i].imageHeight);
if (allWaterfallArr[i].category === 'image') {
var slide = $(
"
" +
allWaterfallArr[i].title +
'
'
);
} else if (allWaterfallArr[i].category === 'video') {
var slide = $(
"" +
allWaterfallArr[i].title +
'
'
);
}
imgSwiperWrapper.append(slide);
}
if ($window.width() <= 1000) {
columnHeights = [0, 0];
} else {
columnHeights = [0, 0, 0, 0];
}
function newPos(x, windowHeight, pos, adjuster, inertia) {
return x + '% ' + -(windowHeight + pos - adjuster) * inertia + 'px';
}
function Move() {
var pos = $window.scrollTop();
if (bg.hasClass('inview')) {
if (windowWidth > 1000) {
bg.css({ backgroundPosition: newPos(0, windowHeight, pos, 1000, 0) });
bg1.css({ backgroundPosition: newPos(0, windowHeight, pos, 970, 0.4) });
bg2.css({ backgroundPosition: newPos(0, windowHeight, pos, 1000, 0.3) });
bg3.css({ backgroundPosition: newPos(0, windowHeight, pos, 1000, 0.2) });
bg4.css({ backgroundPosition: newPos(0, windowHeight, pos, 1000, 0.1) });
bg5.css({ backgroundPosition: newPos(0, windowHeight, pos, 1000, 0.2) });
} else if (windowWidth > 640 && windowWidth <= 1000) {
bg.css({ backgroundPosition: newPos(0, windowHeight, pos, 0, 0) });
bg1.css({ backgroundPosition: newPos(0, windowHeight, pos, 200, 0.4) });
bg2.css({ backgroundPosition: newPos(0, windowHeight, pos, 50, 0.3) });
bg3.css({ backgroundPosition: newPos(0, windowHeight, pos, -100, 0.2) });
bg4.css({ backgroundPosition: newPos(0, windowHeight, pos, -1000, 0.1) });
bg5.css({ backgroundPosition: newPos(0, windowHeight, pos, 0, 0.2) });
} else {
bg.css({ backgroundPosition: newPos(0, windowHeight, pos, 1000, 0) });
bg1.css({ backgroundPosition: newPos(0, windowHeight, pos, 600, 0.4) });
bg2.css({ backgroundPosition: newPos(0, windowHeight, pos, 700, 0.3) });
bg3.css({ backgroundPosition: newPos(0, windowHeight, pos, 850, 0.2) });
bg4.css({ backgroundPosition: newPos(0, windowHeight, pos, 500, 0.1) });
bg5.css({ backgroundPosition: newPos(0, windowHeight, pos, 600, 0.2) });
}
}
}
function createItem(startIndex, endIndex) {
for (let i = startIndex; i < endIndex; i++) {
var minHeight = Math.min(...columnHeights);
var minIndex = columnHeights.indexOf(minHeight);
if (allWaterfallArr[i].category === 'image') {
var imageElement = $(
"![" +
allWaterfallArr[i].title +
"](https://auto.huawei.com/marketingcloud/pep/asset//20000004/campaign/travelog/img/" +
allWaterfallArr[i].imageWebp +
")
" +
allWaterfallArr[i].title +
'
'
);
} else if (allWaterfallArr[i].category === 'video') {
var imageElement = $(
"![" +
allWaterfallArr[i].title +
"](https://auto.huawei.com/marketingcloud/pep/asset//20000004/campaign/travelog/img/" +
allWaterfallArr[i].imageWebp +
")

" +
allWaterfallArr[i].title +
'
'
);
}
waterFallColumn.eq(minIndex).append(imageElement);
columnHeights[minIndex] += hiddenImgHeights[i];
}
}
$(document).ready(function () {
if (windowWidth > 1000) {
bg.css({ backgroundPosition: newPos(0, windowHeight, 0, 1000, 0) });
bg1.css({ backgroundPosition: newPos(0, windowHeight, 0, 970, 0.4) });
bg2.css({ backgroundPosition: newPos(0, windowHeight, 0, 1000, 0.3) });
bg3.css({ backgroundPosition: newPos(0, windowHeight, 0, 1000, 0.2) });
bg4.css({ backgroundPosition: newPos(0, windowHeight, 0, 1000, 0.1) });
bg5.css({ backgroundPosition: newPos(0, windowHeight, 0, 1000, 0.2) });
} else if (windowWidth > 640 && windowWidth <= 1000) {
bg.css({ backgroundPosition: newPos(0, windowHeight, 0, 0, 0) });
bg1.css({ backgroundPosition: newPos(0, windowHeight, 0, 200, 0.4) });
bg2.css({ backgroundPosition: newPos(0, windowHeight, 0, 50, 0.3) });
bg3.css({ backgroundPosition: newPos(0, windowHeight, 0, -100, 0.2) });
bg4.css({ backgroundPosition: newPos(0, windowHeight, 0, -1000, 0.1) });
bg5.css({ backgroundPosition: newPos(0, windowHeight, 0, 0, 0.2) });
} else {
bg.css({ backgroundPosition: newPos(0, windowHeight, 0, 1000, 0) });
bg1.css({ backgroundPosition: newPos(0, windowHeight, 0, 600, 0.4) });
bg2.css({ backgroundPosition: newPos(0, windowHeight, 0, 700, 0.3) });
bg3.css({ backgroundPosition: newPos(0, windowHeight, 0, 850, 0.2) });
bg4.css({ backgroundPosition: newPos(0, windowHeight, 0, 500, 0.1) });
bg5.css({ backgroundPosition: newPos(0, windowHeight, 0, 600, 0.2) });
}
$window.resize(function () {
// Move();
});
$window.on('scroll', function () {
if ($window.scrollTop() < $('.page-banner').height()) {
bg.addClass('inview');
} else {
bg.removeClass('inview');
}
// Move();
});
$('.page-section-02 .items-box .item').on('click', function () {
var index = $(this).index();
$(this).addClass('active').siblings().removeClass('active');
videoSwiper.slideTo(index, 1000, false);
});
var videoSwiper = new Swiper('.video-swiper', {
slidesPerView: 1,
slidesPerGroup: 1,
initialSlide: 3,
spaceBetween: 20,
pagination: {
el: '.video-pagination-swiper',
clickable: true,
},
navigation: {
nextEl: '.video-button-next',
prevEl: '.video-button-prev',
},
breakpoints: {
992: {},
},
on: {
slideChangeTransitionEnd: function () {
$('.page-section-02 .items-box .item')
.eq(this.activeIndex)
.addClass('active')
.siblings()
.removeClass('active');
},
},
});
var imgSwiper = new Swiper('.img-swiper', {
noSwiping: true,
navigation: {
nextEl: '.img-swiper-button-next',
prevEl: '.img-swiper-button-prev',
},
on: {
slideChangeTransitionEnd: function () {
$('.bu-geography-popup .img-swiper .swiper-slide')
.eq(this.activeIndex)
.siblings()
.find('video')
.trigger('pause');
setTimeout(function () {
$('.bu-geography-popup .img-swiper .swiper-slide')
.eq(this.activeIndex)
.find('video')
.trigger('play');
$('.bu-geography-popup .img-swiper .swiper-slide')
.eq(this.activeIndex)
.find('video')
.trigger('play');
}, 1000);
},
},
});
setTimeout(function () {
createItem(0, 12);
currentIndex = 2;
}, 1000);
waterFallColumn.on('click', '.img-wrapper', function () {
var clickedIndex = $(this).data('index');
$('body').css('overflow', 'hidden');
$('.page-section-03 .img-wrapper').css('pointer-events', 'none');
imgSwiper.slideTo(clickedIndex, 100, false);
$('.bu-geography-popup').addClass('on');
// 埋码251015 开始
pageName = window.gaInfo && window.gaInfo.pageName;
pageCategory = window.gaInfo && window.gaInfo.pageCategory;
let videohash = $(this).data('campaignhash');
let videoactiontype = $(this).data('campaignactiontype');
let videomodule = $(this).data('campaignmodule');
let videotitle = $(this).data('campaignname');
let videourl = $(this).data('videourl');
setTimeout(function () {
$('.bu-geography-popup .img-swiper .swiper-slide')
.eq(clickedIndex)
.find('video')
.trigger('play');
let nativeVideo = $('.popup-container .swiper-slide').eq(clickedIndex).find('video')[0];
if (nativeVideo) {
// 初始化 dataLayer 如果不存在
if (typeof window.dataLayer === 'undefined') {
window.dataLayer = [];
}
// 追踪原生视频事件
let trackedPercentages = [25, 50, 75, 100];
let percentagesTracked = [];
let hasStarted = false;
nativeVideo.addEventListener('play', function () {
if (!hasStarted) {
hasStarted = true;
window.dataLayer.push({
event: 'video_play',
video_status: 'start',
video_percentage: 0,
video_type: 'native',
page_hash: videohash,
page_category: pageCategory,
page_name: pageName,
action_type: videoactiontype,
module: videomodule,
video_title: videotitle,
video_url: videourl,
});
// console.log({
// event: 'video_play',
// video_status: 'start',
// video_percentage: 0,
// video_type: 'native',
// page_hash: videohash,
// page_category: pageCategory,
// page_name: pageName,
// action_type: videoactiontype,
// module: videomodule,
// video_title: videotitle,
// video_url: videourl,
// });
}
});
nativeVideo.addEventListener('pause', function () {
let percent = Math.round((nativeVideo.currentTime / nativeVideo.duration) * 100);
if (percent < 99) {
window.dataLayer.push({
event: 'video_play',
video_status: 'pause',
video_percentage: Math.round((nativeVideo.currentTime / nativeVideo.duration) * 100),
video_type: 'native',
page_hash: videohash,
page_category: pageCategory,
page_name: pageName,
action_type: videoactiontype,
module: videomodule,
video_title: videotitle,
video_url: videourl,
});
// console.log({
// event: 'video_play',
// video_status: 'pause',
// video_percentage: Math.round((nativeVideo.currentTime / nativeVideo.duration) * 100),
// video_type: 'native',
// page_hash: videohash,
// page_category: pageCategory,
// page_name: pageName,
// action_type: videoactiontype,
// module: videomodule,
// video_title: videotitle,
// video_url: videourl,
// });
}
});
nativeVideo.addEventListener('ended', function () {
window.dataLayer.push({
event: 'video_play',
video_status: 'complete',
video_percentage: 100,
video_type: 'native',
page_hash: videohash,
page_category: pageCategory,
page_name: pageName,
action_type: videoactiontype,
module: videomodule,
video_title: videotitle,
video_url: videourl,
});
// console.log({
// event: 'video_play',
// video_status: 'complete',
// video_percentage: 100,
// video_type: 'native',
// page_hash: videohash,
// page_category: pageCategory,
// page_name: pageName,
// action_type: videoactiontype,
// module: videomodule,
// video_title: videotitle,
// video_url: videourl,
// });
});
nativeVideo.addEventListener('timeupdate', function () {
let percent = Math.round((nativeVideo.currentTime / nativeVideo.duration) * 99);
if (trackedPercentages.some((p) => percent >= p && !percentagesTracked.includes(p))) {
let milestone = trackedPercentages.find(
(p) => percent >= p && !percentagesTracked.includes(p)
);
if (milestone) {
percentagesTracked.push(milestone);
window.dataLayer.push({
event: 'video_play',
video_status: 'progress',
video_percentage: milestone,
video_type: 'native',
page_hash: videohash,
page_category: pageCategory,
page_name: pageName,
action_type: videoactiontype,
module: videomodule,
video_title: videotitle,
video_url: videourl,
});
// console.log({
// event: 'video_play',
// video_status: 'progress',
// video_percentage: milestone,
// video_type: 'native',
// page_hash: videohash,
// page_category: pageCategory,
// page_name: pageName,
// action_type: videoactiontype,
// module: videomodule,
// video_title: videotitle,
// video_url: videourl,
// });
}
}
});
}
// 埋码251015 结束
}, 100);
});
$('.page-section-03 .img-wrapper').hover(
function () {
$(this).find('.mask-txt').fadeIn();
},
function () {
$(this).find('.mask-txt').fadeOut();
}
);
showMoreImg.on('click', function () {
var nextStartIndex = currentIndex * 6;
var nextEndIndex = nextStartIndex + 6;
if (nextStartIndex < allWaterfallArr.length) {
if (nextStartIndex + 6 > allWaterfallArr.length) {
nextEndIndex = allWaterfallArr.length;
}
createItem(nextStartIndex, nextEndIndex);
currentIndex++;
}
if (currentIndex * 6 >= allWaterfallArr.length) {
$(this).addClass('no-more').text('更多精彩 敬请期待').css('cursor', 'inherit');
}
});
$('.popup-close').on('click', function (e) {
e.stopPropagation();
e.preventDefault();
$('body').css('overflow', 'scroll');
$('.bu-geography-popup').removeClass('on');
$('.bu-geography-popup .img-swiper .swiper-slide').find('video').trigger('pause');
setTimeout(function () {
$('.page-section-03 .img-wrapper').css('pointer-events', 'inherit');
}, 500);
});
});