87 lines
3.3 KiB
PHP
87 lines
3.3 KiB
PHP
@extends('layouts.app')
|
||
@section('content')
|
||
<section id="section4" class="container mx-auto p-12 md:py-12">
|
||
<div class="flex justify-between mb-15">
|
||
<h4 class="text-lg md:text-2xl font-extrabold text-black">Galeri Adiwiyata</h4>
|
||
</div>
|
||
<div class="flex flex-row gap-10">
|
||
<div class="grid grid-rows-1 md:grid-cols-3 lg:grid-cols-4 gap-5">
|
||
@foreach($kegiatan as $dataKeg)
|
||
<?php
|
||
$images = json_decode($dataKeg->image);
|
||
?>
|
||
<div class="relative group w-full overflow-hidden rounded-lg shadow-[10px_10px_10px_0px_rgba(0,0,0,0.25)]">
|
||
<img src="{{ asset($images[0]) }}" class="w-full h-full object-cover" alt="Galeri">
|
||
<div class="absolute inset-0 bg-success bg-opacity-50 opacity-0 group-hover:opacity-100 transition-opacity duration-300 flex flex-col justify-center p-4 gap-3">
|
||
<h4 class="mb-5 font-bold text-white w-50">{{ $dataKeg->judul }}</h4>
|
||
{{-- <p class="text-white text-sm font-normal">1 Agustus 2025</p> --}}
|
||
{{-- <button class="rounded-md bg-gray-950/5 px-2.5 py-1.5 text-sm font-semibold text-gray-900 hover:bg-gray-950/10">Open dialog</button> --}}
|
||
|
||
<a href="#" data-url="{{$dataKeg->image}}" data-judul="{{$dataKeg->judul}}" class="btnmodal p-2 text-black text-sm bg-white opacity-50 rounded-[10px] mx-auto md:mx-0 text-center flex flex-row justify-between gap-3 w-40 ">
|
||
<span>Lihat Detail</span> <x-lucide-arrow-right width="20" class="text-black text-right"/>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
@endforeach
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
<div id="myModal" class="fixed inset-0 z-50 hidden bg-black/50 flex items-center justify-center">
|
||
<div class="bg-white rounded-lg shadow-lg w-1/2 p-6 relative">
|
||
<div id="carousel" class="relative w-full flex transition-transform duration-500">
|
||
<img id="image" src="" alt="" class="w-full rounded">
|
||
<!-- tombol navigasi -->
|
||
<button id="prev" class="absolute left-0 top-1/2 transform -translate-y-1/2 bg-gray-800 text-white px-3 py-1 rounded">‹</button>
|
||
<button id="next" class="absolute right-0 top-1/2 transform -translate-y-1/2 bg-gray-800 text-white px-3 py-1 rounded">›</button>
|
||
</div>
|
||
<div class="flex justify-end space-x-2 mt-1">
|
||
<button onclick="closeModal()" class="bg-gray-300 text-gray-700 px-4 py-2 cursor-pointer rounded">Tutup</button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
@endsection
|
||
@section('js')
|
||
<script src="https://code.jquery.com/jquery-3.7.1.js"></script>
|
||
<script>
|
||
let slides = [];
|
||
let currentIndex = 0;
|
||
|
||
$('.btnmodal').on('click', function(e){
|
||
e.preventDefault();
|
||
$('#myModal').removeClass('hidden');
|
||
|
||
$('#judul').html($(this).data('judul'));
|
||
// ambil data-images dan parse JSON
|
||
slides = $(this).data('url');
|
||
if (!Array.isArray(slides)) {
|
||
slides = JSON.parse(slides);
|
||
}
|
||
|
||
console.log(slides);
|
||
|
||
currentIndex = 0;
|
||
$('#image').attr('src', "{{ asset('/') }}"+slides[currentIndex]);
|
||
});
|
||
|
||
// tombol navigasi
|
||
$('#next').on('click', function(){
|
||
if(slides.length > 0){
|
||
currentIndex = (currentIndex + 1) % slides.length;
|
||
$('#image').attr('src', "{{ asset('/') }}"+slides[currentIndex]);
|
||
}
|
||
});
|
||
|
||
$('#prev').on('click', function(){
|
||
if(slides.length > 0){
|
||
currentIndex = (currentIndex - 1 + slides.length) % slides.length;
|
||
$('#image').attr('src', "{{ asset('/') }}"+slides[currentIndex]);
|
||
}
|
||
});
|
||
|
||
function closeModal(){
|
||
$('#myModal').addClass('hidden');
|
||
}
|
||
|
||
</script>
|
||
@endsection
|