`; this.DOM.el.insertBefore(this.DOM.svg, this.DOM.nav); this.DOM.shape = this.DOM.svg.querySelector('path'); } updateFrame() { this.paths.initial = this.calculatePath('initial'); this.paths.final = this.calculatePath('final'); this.DOM.svg.setAttribute('viewbox',`0 0 ${this.rect.width} ${this.rect.height}`); this.DOM.shape.setAttribute('d', this.paths.initial); } calculatePath(path = 'initial') { if ( path === 'initial' ) { return `M 0,0 0,${this.rect.height} ${this.rect.width},${this.rect.height} ${this.rect.width},0 0,0 Z M 0,0 ${this.rect.width},0 ${this.rect.width},${this.rect.height} 0,${this.rect.height} Z`; } else { return { step1: `M 0,0 0,${this.rect.height} ${this.rect.width},${this.rect.height} ${this.rect.width},0 0,0 Z M ${this.frameSize},${this.frameSize} ${this.rect.width},0 ${this.rect.width},${this.rect.height} 0,${this.rect.height} Z`, step2: `M 0,0 0,${this.rect.height} ${this.rect.width},${this.rect.height} ${this.rect.width},0 0,0 Z M ${this.frameSize},${this.frameSize} ${this.rect.width-this.frameSize},${this.frameSize} ${this.rect.width},${this.rect.height} 0,${this.rect.height} Z`, step3: `M 0,0 0,${this.rect.height} ${this.rect.width},${this.rect.height} ${this.rect.width},0 0,0 Z M ${this.frameSize},${this.frameSize} ${this.rect.width-this.frameSize},${this.frameSize} ${this.rect.width-this.frameSize},${this.rect.height-this.frameSize} 0,${this.rect.height} Z`, step4: `M 0,0 0,${this.rect.height} ${this.rect.width},${this.rect.height} ${this.rect.width},0 0,0 Z M ${this.frameSize},${this.frameSize} ${this.rect.width-this.frameSize},${this.frameSize} ${this.rect.width-this.frameSize},${this.rect.height-this.frameSize} ${this.frameSize},${this.rect.height-this.frameSize} Z` } } } initEvents() { this.DOM.nextCtrl.addEventListener('click', () => this.navigate('next')); this.DOM.prevCtrl.addEventListener('click', () => this.navigate('prev')); window.addEventListener('resize', debounce(() => { this.rect = this.DOM.el.getBoundingClientRect(); this.updateFrame(); }, 20)); } navigate(dir = 'next') { if ( this.isAnimating ) return false; this.isAnimating = true; const animateShapeInTimeline = anime.timeline({ duration: this.settings.animation.shape.duration, easing: this.settings.animation.shape.easing.in }); animateShapeInTimeline .add({ targets: this.DOM.shape, d: this.paths.final.step1 }) .add({ targets: this.DOM.shape, d: this.paths.final.step2, offset: `-=${this.settings.animation.shape.duration*.5}` }) .add({ targets: this.DOM.shape, d: this.paths.final.step3, offset: `-=${this.settings.animation.shape.duration*.5}` }) .add({ targets: this.DOM.shape, d: this.paths.final.step4, offset: `-=${this.settings.animation.shape.duration*.5}` }); const animateSlides = () => { return new Promise((resolve, reject) => { const currentSlide = this.DOM.slides[this.current]; anime({ targets: currentSlide, duration: this.settings.animation.slides.duration, easing: this.settings.animation.slides.easing, translateX: dir === 'next' ? -1*this.rect.width : this.rect.width, complete: () => { currentSlide.classList.remove('slide--current'); resolve(); } }); this.current = dir === 'next' ? this.current < this.slidesTotal-1 ? this.current + 1 : 0 : this.current > 0 ? this.current - 1 : this.slidesTotal-1; const newSlide = this.DOM.slides[this.current]; newSlide.classList.add('slide--current'); anime({ targets: newSlide, duration: this.settings.animation.slides.duration, easing: this.settings.animation.slides.easing, translateX: [dir === 'next' ? this.rect.width : -1*this.rect.width,0] }); const newSlideImg = newSlide.querySelector('#id_862e730f897136caade2e70b .slide__img'); anime.remove(newSlideImg); anime({ targets: newSlideImg, duration: this.settings.animation.slides.duration*4, easing: this.settings.animation.slides.easing, translateX: [dir === 'next' ? 200 : -200, 0] }); anime({ targets: [newSlide.querySelector('#id_862e730f897136caade2e70b .slide__title'), newSlide.querySelector('#id_862e730f897136caade2e70b .slide__desc'), newSlide.querySelector('#id_862e730f897136caade2e70b .slide__link')], duration: this.settings.animation.slides.duration*2, easing: this.settings.animation.slides.easing, delay: (t,i) => i*100+100, translateX: [dir === 'next' ? 300 : -300,0], opacity: [0,1] }); }); }; const animateShapeOut = () => { const animateShapeOutTimeline = anime.timeline({ duration: this.settings.animation.shape.duration, easing: this.settings.animation.shape.easing.out }); animateShapeOutTimeline .add({ targets: this.DOM.shape, d: this.paths.final.step3 }) .add({ targets: this.DOM.shape, d: this.paths.final.step2, offset: `-=${this.settings.animation.shape.duration*.5}` }) .add({ targets: this.DOM.shape, d: this.paths.final.step1, offset: `-=${this.settings.animation.shape.duration*.5}` }) .add({ targets: this.DOM.shape, d: this.paths.initial, offset: `-=${this.settings.animation.shape.duration*.5}`, complete: () => this.isAnimating = false }); } animateShapeInTimeline.finished.then(animateSlides).then(animateShapeOut); } }; new Slideshow(document.querySelector('#id_862e730f897136caade2e70b .slideshow')); imagesLoaded('#id_862e730f897136caade2e70b .slide__img', { background: true }, () => document.body.classList.remove('b_loading')); });
其為何物
別墅轟趴的那些事從這里開始吧
轟趴就是英文“Home Party”的英譯漢發音,指的就是家庭派對.它一直是西方國家傳統與主流的生活方式的重要部分. 轟趴的類別多樣,精彩紛呈,以至于現在不少西方國家更寬泛的稱之為”House Party“.對國內來說,轟趴作為一種相對新興的聚會方式慢慢時興.
【定制轟趴】顧名思義是指上海巡洋艦品牌體驗式團隊建設中心在傳統的轟趴活動基礎上根據客戶的實際需求保留相應的轟趴項目,并且結合企業團隊的實際情況及創意和體驗要求而單獨為企業量身定制的主題性轟趴體驗活動.定制轟趴打破了傳統轟趴在項目上的局限性.
別墅轟趴具有高創意、強趣味性、高活力、高休閑等特點,并且具有極強的企業和諧家文化營造氛圍的特色自然的融于了其形式的本身.所以其能夠讓團隊在放松中增強伙伴之間的深層溝通與團隊的深層凝聚和歸屬.因其獨特的魅力所受到的追捧程度也日趨的火熱和勁爆.
環境參考
  • 別墅轟趴你值得擁有
    如果你想獨一無二的團隊建設方式請來別墅轟趴; 如果你想身心盡享的全方位體驗請來別墅+轟趴; 如果你想與團隊來一次難忘遇見請來別墅+轟趴; 如果你想做一次說走就走的旅行請來別墅+轟趴;
  • 別墅轟趴你值得擁有
    如果你想獨一無二的團隊建設方式請來別墅轟趴; 如果你想身心盡享的全方位體驗請來別墅+轟趴; 如果你想與團隊來一次難忘遇見請來別墅+轟趴; 如果你想做一次說走就走的旅行請來別墅+轟趴;
  • 別墅轟趴你值得擁有
    如果你想獨一無二的團隊建設方式請來別墅轟趴; 如果你想身心盡享的全方位體驗請來別墅+轟趴; 如果你想與團隊來一次難忘遇見請來別墅+轟趴; 如果你想做一次說走就走的旅行請來別墅+轟趴;
  • 別墅轟趴你值得擁有
    如果你想獨一無二的團隊建設方式請來別墅轟趴; 如果你想身心盡享的全方位體驗請來別墅+轟趴; 如果你想與團隊來一次難忘遇見請來別墅+轟趴; 如果你想做一次說走就走的旅行請來別墅+轟趴;
  • 別墅轟趴你值得擁有
    如果你想獨一無二的團隊建設方式請來別墅轟趴; 如果你想身心盡享的全方位體驗請來別墅+轟趴; 如果你想與團隊來一次難忘遇見請來別墅+轟趴; 如果你想做一次說走就走的旅行請來別墅+轟趴;
  • 別墅轟趴你值得擁有
    如果你想獨一無二的團隊建設方式請來別墅轟趴; 如果你想身心盡享的全方位體驗請來別墅+轟趴; 如果你想與團隊來一次難忘遇見請來別墅+轟趴; 如果你想做一次說走就走的旅行請來別墅+轟趴;
  • img
  • img
  • img
  • img
  • img
  • img
部分項目
  • 高手與高手的較量除了技術的比拼,更多的是智慧的終極大碰撞.
  • 小小的臺上足球盡顯強者的大風范尺寸的桌面之爭足以讓PK凌厲之極.
  • 小小桌面,匯聚江湖上的八方高手,舉手投足,皆為十面埋伏?
  • 一展歌喉盡釋全部的壓力,一副麻將提精氣—我們向神仙的快樂進發.
  • 回家感受真好,讓企業的關愛盈滿團隊,良性家文化-盡在美食廚房.
  • 別墅轟趴原來也是可以濕身?“水貨”的世界也同樣可以精彩萬分.
  • 如果你對轟趴的理解是充滿趣味,其實它也充滿了一些超虐的挑戰.
  • 高雅的GOLF體驗不止是在戶外的球場上可以擁有,轟趴可滿足小愿望.
山东十一选五开奖直播