{#
This file is part of EC-CUBE
Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
http://www.ec-cube.co.jp/
For the full copyright and license information, please view the LICENSE
file that was distributed with this source code.
#}
{% extends 'default_frame.twig' %}
{% set body_class = 'front_page' %}
{% set NewsList = repository('Eccube\\Entity\\News').getList() %}
{% block stylesheet %}
<style>
.slick-slider{
height:100%;
width: 100%;
overflow: hidden;
}
.main_visual.slick-slider .slick-list,
.main_visual.slick-slider .slick-track,
.main_visual.slick-slider .slick-slide,
.main_visual.slick-slider .slick-track > .slick-slide > div,
.main_visual.slick-slider .slick-slide img{
height:100%;
}
.main_visual.slick-slider .slick-slide{
overflow:hidden;
}
.main_visual.slick-slider .slick-slide img{
opacity:0.8;
}
.main_visual.slick-slider:before {
background: rgba(60, 20, 0, .2);
content: '';
display: block;
height: 100%;
left: 0;
opacity: .6;
position: absolute;
top: 0;
width: 100%;
z-index: 10;
}
.main_visual.slick-slider:after {
background: linear-gradient(217deg, rgba(110, 72, 51, .6), rgba(255, 0, 0, 0) 70.71%), linear-gradient(127deg, rgba(241, 234, 230, .6), rgba(0, 255, 0, 0) 70.71%), linear-gradient(336deg, rgba(249, 247, 245, .6), rgba(0, 0, 255, 0) 70.71%);
content: '';
display: block;
height: 100%;
left: 0;
opacity: .6;
position: absolute;
top: 0;
width: 100%;
z-index: 5;
}
.slick-slide{
position:relative;
}
/* テキストのフェードインとスライドイン */
.main {
opacity: 0;
transform: translateX(10vw); /* 右からスライドイン */
transition: opacity 0.5s ease-in-out, transform 0.5s ease-in-out;
}
.sub {
opacity: 0;
transform: translateX(10vw); /* 右からスライドイン */
transition: opacity 0.5s ease-in-out 0.3s, transform 0.5s ease-in-out 0.2s; /* 0.2秒遅れ */
}
.fade-in .main {
opacity: 1;
transform: translateX(0); /* 元の位置に戻る */
}
.fade-in .sub {
opacity: 1;
transform: translateX(0); /* 元の位置に戻る */
}
/* 背景画像の設定 */
.slick-slide {
overflow:hidden;
}
@-webkit-keyframes fadezoom {
0% {
transform: scale(1);
}
100% {
transform: scale(1.25);
}
}
@keyframes fadezoom {
0% {
transform: scale(1);
}
100% {
transform: scale(1.25);
}
}
.slick-animation {
animation: fadezoom 20s linear 0s normal both;
}
</style>
{% endblock %}
{% block javascript %}
<script>
$(function() {
// メインスライダーの初期化時のイベント
$('.main_visual').on('init', function () {
// 最初のスライドにアニメーションを適用
$('.slick-slide[data-slick-index="0"] img').addClass('slick-animation');
});
// メインスライダーの設定
$('.main_visual').slick({
autoplay: true, // 自動再生
infinite: true, // 無限ループ
slidesToShow: 1, // 1つのスライドを表示
slidesToScroll: 1, // スライドを1つずつスクロール
arrows: false, // 矢印を非表示
speed: 3000, // フェードアニメーションの速度
autoplaySpeed: 5000, // スライドが切り替わる間隔
pauseOnFocus: false, // フォーカス時にスライドを一時停止しない
pauseOnHover: false, // ホバー時にスライドを一時停止しない
asNavFor: '.text_slider' // .text_slider と同期
})
.on({
beforeChange: function(event, slick, currentSlide, nextSlide) {
// 次のスライドに 'slick-animation' クラスを追加
$(".main_visual .slick-slide[data-slick-index='" + nextSlide + "'] img").addClass("slick-animation");
},
afterChange: function(event, slick, currentSlide) {
// 前のスライドのインデックスを計算
var prevSlide = (currentSlide === 0) ? slick.slideCount - 1 : currentSlide - 1;
// 一つ前のスライドから 'slick-animation' クラスを削除
$(".main_visual .slick-slide[data-slick-index='" + prevSlide + "'] img").removeClass("slick-animation");
}
});
// テキストスライダーの初期化時のイベント
$('.text_slider').on('init', function () {
// 最初のスライドに 'fade-in' クラスを適用
$('.slick-slide[data-slick-index="0"]').addClass('fade-in');
});
// テキストスライダーの設定(メインスライダーと同期)
$('.text_slider').slick({
autoplay: true, // 自動再生
infinite: true, // 無限ループ
slidesToShow: 1, // 1つのスライドを表示
slidesToScroll: 1, // スライドを1つずつスクロール
fade: true,
speed: 1000,
autoplaySpeed: 5000,
arrows: false,
pauseOnFocus: false,
pauseOnHover: false,
pauseOnDotsHover: false,
asNavFor: '.main_visual' // .main_visual と同期
})
.on({
beforeChange: function(event, slick, currentSlide, nextSlide) {
// 次のスライドに 'fade-in' クラスを追加
$(".text_slider .slick-slide[data-slick-index='" + nextSlide + "']").addClass("fade-in");
},
afterChange: function(event, slick, currentSlide) {
// 現在のスライド以外のすべてのスライドから 'fade-in' クラスを削除
$(".text_slider .slick-slide").not("[data-slick-index='" + currentSlide + "']").not(".slick-cloned").removeClass("fade-in");
// 現在のスライドにクラスを確実に追加
$(".text_slider .slick-slide[data-slick-index='" + currentSlide + "']").addClass("fade-in");
}
});
});
$(function() {
$('.topic_slider').slick({
vertical: true,
autoplay: true,
autoplaySpeed: 3800,
speed: 800,
arrows: true,
pauseOnFocus: false,
pauseOnHover: false,
pauseOnDotsHover: false
});
$('.ec-sliderRole__news').each(function() {
var listLength = $(this).find('.ec-sliderRole__newsItem').length;
if (listLength > 5) {
$(this).find('.ec-sliderRole__newsItem:gt(4)').each(function() {
$(this).hide();
});
$(this).append('<a id="news_readmore" class="ec-inlineBtn--top">{{ 'more'|trans }}</a>');
var dispNum = 5;
$(this).find('#news_readmore').click(function() {
dispNum += 5;
$(this).parent().find('.ec-sliderRole__newsItem:lt(' + dispNum + ')').show();
if (dispNum >= listLength) {
$(this).hide();
}
})
}
});
});
</script>
{% endblock javascript %}
{% block main %}
<div class="ec-sliderRole">
<div class="ec-sliderRole__wrap">
<div class="mv__wrap">
<div class="main_visual">
<div class="item slick-slide">
<img src="{{ asset('assets/img/top/01.jpg') }}" class="outset">
</div>
<div class="item slick-slide">
<img src="{{ asset('assets/img/top/02.jpg') }}" class="outset">
</div>
<div class="item slick-slide">
<img src="{{ asset('assets/img/top/03.jpg') }}" class="outset">
</div>
<div class="item slick-slide">
<img src="{{ asset('assets/img/top/04.jpg') }}" class="outset">
</div>
</div>
<div class="text_slider">
<div class="ec-sliderRole__title">
<div class="main">Lillie and</div>
<div class="sub">Garcello</div>
</div>
<div class="ec-sliderRole__title">
<div class="main">ORIGINAL</div>
<div class="sub">GOODS</div>
</div>
<div class="ec-sliderRole__title">
<div class="main">RECOMMENDED</div>
<div class="sub">ITEM</div>
</div>
<div class="ec-sliderRole__title">
<div class="main">LIMITED</div>
<div class="sub">SET</div>
</div>
</div>
</div>
<div class="ec-sliderRole__news topic_slider">
{% for News in NewsList %}
<a href={{ url('news_detail', {'id': News.id}) }} class="ec-sliderRole__newsItem" target="_blank">
<div class="ec-sliderRole__newsHeading">
<div class="ec-sliderRole__newsDate">
{{ News.publish_date|date_day }}
</div>
<div class="ec-sliderRole__newsColumn">
<div class="ec-sliderRole__newsTitle">
{{ News.title }}
</div>
{# {% if News.description or News.url %}
<div class="ec-sliderRole__newsClose">
<a class="ec-sliderRole__newsCloseBtn">
<i class="fas fa-angle-down"></i>
</a>
</div>
{% endif %} #}
</div>
</div>
{# <div class="ec-sliderRole__newsDescription">
{{ News.description|raw|nl2br }}
{% if News.url %}
<br>
<a href="{{ News.url }}" {% if News.link_method == '1' %}target="_blank"{% endif %}>{{ '詳しくはこちら'|trans }}</a>
{% endif %}
</div> #}
</a>
{% endfor %}
</div>
</div>
</div>
{% endblock %}