- Dapatkan link
- X
- Aplikasi Lainnya
𝗟𝗶𝗵𝗮𝘁 𝗥𝗲𝗸𝗮𝗺 : ●𝗝𝗘𝗝𝗔𝗞●𝗣𝗥𝗘𝗦𝗧𝗔𝗦𝗜●𝗣𝗘𝗡𝗚𝗛𝗔𝗥𝗚𝗔𝗔𝗡●𝗜𝗗𝗘/𝗚𝗔𝗚𝗔𝗦𝗔𝗡●
- Dapatkan link
- X
- Aplikasi Lainnya
Depo Bahan Bangunan Murah
<!DOCTYPE html>
<html lang="id-ID">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Depo Bahan Bangunan - Jual Material Bangunan Berkualitas</title>
<meta name="description" content="Depo Bahan Bangunan menjual berbagai material bangunan berkualitas seperti atap UPVC, rangka baja, besi beton. Harga terjangkau, melayani Jabodetabek.">
<meta name="keywords" content="depo bahan bangunan, material bangunan, atap UPVC, rangka baja, besi beton, bahan bangunan murah">
<meta name="author" content="Depo Bahan Bangunan">
<meta name="robots" content="index, follow">
<link rel="canonical" href="https://namablogkamu.blogspot.com/">
<meta property="og:title" content="Depo Bahan Bangunan - Jual Material Bangunan Berkualitas">
<meta property="og:description" content="Depo Bahan Bangunan menjual berbagai material bangunan berkualitas dengan harga terjangkau.">
<meta property="og:image" content="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVdVBZqreQlnc3KBN6MlXno9jWC3pUBZMyPYxB6qsOQnAc-danjjcBnjQCHp3bMdWVjSagi4vdUjUbODb5gXyZnH11ODB4UqVcNfsMRL7Gm9g7qo80lM9WVxWpT3qUPLBgagVyt5s65OJ5ln2KXdo4APhHP6szyV5pm68wlifUyeRkRP4s9UvtWAPDHxFS/s320/20260711_104543.gif">
<meta property="og:url" content="https://namablogkamu.blogspot.com/">
<meta property="og:type" content="website">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<style>
/* === RESET & FULL SCREEN === */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html, body {
width: 100vw!important;
height: 100%!important;
overflow-x: hidden;
overflow-y: auto;
background-color: #f5f5f5;
font-family: Arial, sans-serif;
}
/* === STYLE GRID PRODUK 3 KOLOM === */
.produk3k-grid-section {
background-color: white;
border-radius: 15px;
padding: 20px 15px;
box-shadow: 0 5px 15px rgba(0,0,0,0.05);
margin: 15px 0;
width: 100%!important;
max-width: 100vw!important;
}
.section-title {
text-align: center;
font-size: 18px;
color: #d32f2f;
margin-bottom: 20px;
padding-bottom: 10px;
border-bottom: 2px solid #ffeb3b;
}
.section-title span {
font-weight: bold;
}
#produk3k-grid {
display: grid!important;
grid-template-columns: repeat(3, 1fr)!important;
gap: 15px;
width: 100%!important;
}
.produk3k-card {
background-color: #fff;
border-radius: 8px;
text-align: center;
box-shadow: 0 3px 6px rgba(0,0,0,0.1);
width: 100%;
overflow: hidden;
transition: transform 0.3s ease;
border-top: 4px solid #d32f2f;
}
.produk3k-card:hover {
transform: translateY(-3px);
}
.produk3k-img-wrapper {
width: 100%;
height: 180px;
overflow: hidden;
}
.produk3k-card img {
width: 100%;
height: 100%;
object-fit: cover;
transition: transform 0.5s ease;
}
.produk3k-card:hover img {
transform: scale(1.05);
}
.produk3k-nama {
font-size: 16px;
font-weight: bold;
color: #333;
padding: 10px;
min-height: 40px;
display: flex;
align-items: center;
justify-content: center;
line-height: 1.3;
}
.produk3k-tag {
background-color: #ffeb3b;
color: #d32f2f;
font-size: 15px;
font-weight: bold;
padding: 3px 8px;
border-radius: 5px;
display: inline-block;
margin-bottom: 8px;
}
.btn-detail {
width: 100%;
padding: 10px;
background-color: #d32f2f;
color: white;
text-decoration: none;
border-radius: 0 0 8px 8px;
font-weight: bold;
font-size: 13px;
display: inline-block;
transition: background-color 0.3s ease;
}
.btn-detail:hover {
background-color: #b71c1c;
}
.grid-loading {
text-align: center;
font-size: 16px;
color: #666;
padding: 20px;
width: 100%;
grid-column: 1 / -1;
}
/* === STYLE SLIDE PRODUK === */
.slide3-section {
background-color: #000;
color: white;
width: 100vw!important;
height: 90vh;
position: relative;
margin: 15px 0;
border-radius: 15px;
overflow: hidden;
}
.slide3-title {
position: absolute;
top: 20px;
left: 50%;
transform: translateX(-50%);
background-color: rgba(211, 47, 47, 0.8);
padding: 8px 20px;
border-radius: 20px;
font-size: 16px;
z-index: 10;
}
#slide3Area {
width: 100%;
height: 100%;
position: relative;
}
.item-slide3 {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
opacity: 0;
visibility: hidden;
transition: all 1s ease;
display: flex;
align-items: center;
justify-content: center;
}
.item-slide3.active {
opacity: 1;
visibility: visible;
}
.slide3-box {
width: 100%;
height: 100%;
display: grid;
grid-template-columns: 1.2fr 1fr;
}
@media (max-width: 768px) {
.slide3-box {
grid-template-columns: 1fr;
grid-template-rows: 1fr 1fr;
}
#produk3k-grid {
grid-template-columns: repeat(3, 1fr)!important;
gap: 10px;
}
.produk3k-img-wrapper {
height: 120px;
}
}
.img-holder {
width: 100%;
height: 100%;
background-color: #000;
display: flex;
align-items: center;
justify-content: center;
padding: 0;
}
.img-holder img {
width: 100%;
height: 100%;
object-fit: cover;
}
.prod-info {
display: flex;
flex-direction: column;
justify-content: center;
padding: 25px;
background: linear-gradient(to right, rgba(0,0,0,0.8), rgba(211, 47, 47, 0.4));
}
@media (max-width: 768px) {
.prod-info {
padding: 20px;
background: linear-gradient(to bottom, rgba(0,0,0,0.8), rgba(211, 47, 47, 0.4));
}
}
.prod-name {
font-size: 17px;
color: #ffeb3b;
margin-bottom: 15px;
}
@media (max-width: 768px) {
.prod-name {
font-size: 16px;
}
}
.prod-spec {
font-size: 14px;
line-height: 1.2;
color: #ddd;
margin-bottom: 25px;
}
.prod-spec strong {
color: #ffeb3b;
}
@media (max-width: 768px) {
.prod-spec {
font-size: 12px;
}
}
.btn-wa, .btn-detail-slide3 {
padding: 8px 15px;
text-decoration: none;
border-radius: 8px;
font-weight: bold;
margin: 0 5px;
display: inline-block;
font-size: 15px;
transition: transform 0.3s ease;
}
.btn-wa {
background-color: #25D366;
color: white;
}
.btn-detail-slide3 {
background-color: #d32f2f;
color: white;
}
.btn-wa:hover, .btn-detail-slide3:hover {
transform: translateY(-2px);
}
#indArea {
position: absolute;
bottom: 20px;
left: 50%;
transform: translateX(-50%);
display: flex;
gap: 10px;
z-index: 10;
}
.ind-dot {
width: 12px;
height: 12px;
background-color: #888;
border-radius: 50%;
cursor: pointer;
}
.ind-dot.active {
background-color: #ffeb3b;
width: 30px;
border-radius: 6px;
}
.load-text {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
font-size: 18px;
}
/* === BAGIAN KEUNGGULAN === */
.keunggulan-section {
background-color: white;
border-radius: 15px;
padding: 20px;
box-shadow: 0 5px 15px rgba(0,0,0,0.05);
margin: 15px 0;
width: 100%!important;
}
.keunggulan-section h3 {
color: #d32f2f;
font-size: 22px;
text-align: center;
margin-bottom: 15px;
}
.keunggulan-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 15px;
}
.keunggulan-item {
text-align: center;
padding: 15px;
border: 1px solid #d32f2f;
border-radius: 8px;
}
.keunggulan-item i {
font-size: 30px;
color: #d32f2f;
margin-bottom: 10px;
}
.keunggulan-item h4 {
color: #333;
margin-bottom: 5px;
}
.keunggulan-item p {
font-size: 14px;
color: #666;
}
/* === FUNGSI FULL SCREEN OTOMATIS === */
@media screen and (max-width: 768px) {
html, body {
width: 100vw!important;
}
}
</style>
<!-- SCRIPT PAPA PARSE UNTUK CSV -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/PapaParse/5.3.2/papaparse.min.js"></script>
</head>
<body>
<!-- SLIDE PRODUK -->
<section class="slide3-section">
<h2 class="slide3-title">Produk Unggulan Depo Bahan Bangunan</h2>
<div id="slide3Area">
<div class="load-text">Memuat produk unggulan...</div>
</div>
<div id="indArea"></div>
</section>
<!-- KEUNGGULAN PRODUK -->
<section class="keunggulan-section" aria-labelledby="keunggulan-title">
<h3 id="keunggulan-title">Keunggulan Depo Bahan Bangunan</h3>
<div class="keunggulan-grid">
<div class="keunggulan-item">
<i class="fas fa-check-circle"></i>
<h4>Produk Berkualitas</h4>
<p>Semua produk melalui pemeriksaan ketat sebelum dijual</p>
</div>
<div class="keunggulan-item">
<i class="fas fa-tag"></i>
<h4>Harga Terjangkau</h4>
<p>Harga bersaing tanpa mengorbankan kualitas</p>
</div>
<div class="keunggulan-item">
<i class="fas fa-truck"></i>
<h4>Pengiriman Cepat</h4>
<p>Melayani area Jabodetabek dengan waktu pengiriman tepat</p>
</div>
<div class="keunggulan-item">
<i class="fas fa-users"></i>
<h4>Tim Profesional</h4>
<p>Tenaga ahli siap membantu konsultasi kebutuhan Anda</p>
</div>
</div>
</section>
<!-- GRID PRODUK 3 KOLOM -->
<section class="produk3k-grid-section" aria-labelledby="produk-title">
<h2 class="section-title" id="produk-title"><span>DAFTAR PRODUK DEPO BAHAN BANGUNAN</span></h2>
<div id="produk3k-grid">
<div class="grid-loading">Memuat daftar produk...</div>
</div>
</section>
<!-- SCRIPT FULL SCREEN OTOMATIS -->
<script>
// === FUNGSI FULL SCREEN OTOMATIS ===
function autoFullScreen() {
const docElement = document.documentElement;
const enterFullscreen = docElement.requestFullscreen ||
docElement.webkitRequestFullscreen ||
docElement.msRequestFullscreen;
if (enterFullscreen) {
enterFullscreen.call(docElement).catch(() => {});
}
}
// Jalankan saat halaman siap
document.addEventListener("DOMContentLoaded", autoFullScreen);
</script>
<!-- SCRIPT GRID PRODUK -->
<script>
const CSV_URL_GRID = "https://docs.google.com/spreadsheets/d/e/2PACX-1vSsibF7nbgLPGhSBYx2GxrD2aV0IMp1JQ5ao4UQo_29ELxpOOwRKSOcYYewRUVcXX4uCl3HiNXUUKA9/pub?output=csv";
Papa.parse(CSV_URL_GRID, {
download: true,
header: true,
complete: function(response) {
let gridHtml = "";
// Filter produk yang valid
response.data.filter(product => product["Nama Produk"] && product["Nama Produk"].trim()!== "").forEach(product => {
// Ambil data dengan benar dari CSV
const namaProduk = product["Nama Produk"] || "Produk Bahan Bangunan";
const linkDetailGrid = product["Link Selengkapnya..."] || product["Link Selengkapnya"] || "#";
const linkGambarGrid = product["Link Gambar"] || 'https://placehold.co/400x300/D32F2F/fff?text=DEPO+BAHAN+BANGUNAN';
// Tambahkan alt text SEO-friendly
gridHtml += `
<div class="produk3k-card" itemscope itemtype="https://schema.org/Product">
<div class="produk3k-img-wrapper">
<img src="${linkGambarGrid}"
loading="lazy"
alt="${namaProduk} - Bahan Bangunan Berkualitas dari Depo Bahan Bangunan"
itemprop="image">
</div>
<div class="produk3k-tag">DEPO BAHAN BANGUNAN</div>
<div class="produk3k-nama" itemprop="name">
${namaProduk}
</div>
<a href="${linkDetailGrid}"
class="btn-detail"
target="_blank"
itemprop="url">
Lihat Detail Produk
</a>
</div>
`;
});
// Tampilkan produk atau pesan kosong
const gridContainer = document.getElementById("produk3k-grid");
if (gridHtml!== "") {
gridContainer.innerHTML = gridHtml;
} else {
gridContainer.innerHTML = "<div class='grid-loading'>Belum ada produk yang tersedia di Depo Bahan Bangunan</div>";
}
},
error: function() {
document.getElementById("produk3k-grid").innerHTML = "<div class='grid-loading'>Gagal memuat daftar produk</div>";
}
});
</script>
<!-- SCRIPT SLIDE PRODUK -->
<script>
const CSV_URL_SLIDE = "https://docs.google.com/spreadsheets/d/e/2PACX-1vSWd495XVhYw63RB9qc-0S2f6y4w3J2OIv8pHid7MELgn1aw5xiyN3kTH7eUUWMhx7Zk4jdexFekZmO/pub?output=csv";
const DEFAULT_IMG_SLIDE = "https://via.placeholder.com/800x600/D32F2F/FFFFFF?text=DEPO+BAHAN+BANGUNAN";
let slide3Products = [];
let activeSlide3Index = 0;
function parseCSVForSlide3(csvText) {
const lines = csvText.split('\n');
const result = [];
for (let i = 1; i < lines.length; i++) {
if (!lines[i].trim()) continue;
let cleanLine = lines[i].replace(/"/g, '');
let columns = cleanLine.split(',');
if (columns.length > 5) {
let nama = columns[0];
let spesifikasi = columns.slice(1, columns.length - 3).join(',');
let gambar = columns[columns.length - 3];
let wa = columns[columns.length - 2];
let detail = columns[columns.length - 1];
columns = [nama, spesifikasi, gambar, wa, detail];
}
result.push({
nama: columns[0]?.trim() || "Produk Bahan Bangunan",
spesifikasi: "<strong>Produk Berkualitas Depo Bahan Bangunan:</strong> " + (columns[1]?.trim() || "Spesifikasi Produk Lengkap dan Teruji"),
gambar: columns[2]?.trim() || DEFAULT_IMG_SLIDE,
wa: columns[3]?.trim() || "https://wa.me/6281234567890",
detail: columns[4]?.trim() || "#"
});
}
return result;
}
async function loadSlide3Data() {
try {
const response = await fetch(CSV_URL_SLIDE);
if (!response.ok) throw new Error("Gagal mengambil data slide");
const csvText = await response.text();
slide3Products = parseCSVForSlide3(csvText);
if (slide3Products.length === 0) {
document.getElementById('slide3Area').innerHTML = "<div class='load-text'>Tidak ada produk unggulan yang tersedia</div>";
return;
}
buildSlide3Elements();
startAutoSlide3();
} catch (error) {
document.getElementById('slide3Area').innerHTML = "<div class='load-text'>Gagal memuat produk unggulan</div>";
console.log("Error Slide3:", error);
}
}
function buildSlide3Elements() {
const slide3Area = document.getElementById('slide3Area');
const indArea = document.getElementById('indArea');
slide3Area.innerHTML = "";
slide3Products.forEach((prod, idx) => {
const slide3 = document.createElement('div');
slide3.className = `item-slide3 ${idx === 0 ? 'active' : ''}`;
slide3.setAttribute("aria-label", `Slide produk ${prod.nama}`);
let imgSrc = prod.gambar;
if (!imgSrc.startsWith('http')) imgSrc = DEFAULT_IMG_SLIDE;
slide3.innerHTML = `
<div class="slide3-box">
<div class="img-holder">
<img src="${imgSrc}"
alt="${prod.nama} - Produk Unggulan Depo Bahan Bangunan"
onerror="this.src='${DEFAULT_IMG_SLIDE}'">
</div>
<div class="prod-info">
<div class="prod-name">${prod.nama}</div>
<div class="prod-spec">${prod.spesifikasi}</div>
<a href="${prod.wa}"
class="btn-wa"
target="_blank"
aria-label="Chat WhatsApp tentang ${prod.nama}">
<i class="fab fa-whatsapp"></i> Chat Sekarang
</a>
<a href="${prod.detail}"
class="btn-detail-slide3"
target="_blank"
aria-label="Lihat detail ${prod.nama}">
Detail Produk
</a>
</div>
</div>
`;
slide3Area.appendChild(slide3);
const dot = document.createElement('div');
dot.className = `ind-dot ${idx === 0 ? 'active' : ''}`;
dot.setAttribute("aria-label", `Pindah ke slide ${idx + 1}`);
dot.onclick = () => switchToSlide3(idx);
indArea.appendChild(dot);
});
}
function switchToSlide3(newIndex) {
const slides3 = document.querySelectorAll('.item-slide3');
const dots = document.querySelectorAll('.ind-dot');
slides3[activeSlide3Index].classList.remove('active');
dots[activeSlide3Index].classList.remove('active');
activeSlide3Index = newIndex;
slides3[activeSlide3Index].classList.add('active');
dots[activeSlide3Index].classList.add('active');
}
function startAutoSlide3() {
setInterval(() => {
let nextIdx;
do {
nextIdx = Math.floor(Math.random() * slide3Products.length);
} while (nextIdx === activeSlide3Index);
switchToSlide3(nextIdx);
}, 4000);
}
loadSlide3Data();
</script>
</body>
</html>
- Dapatkan link
- X
- Aplikasi Lainnya
Mari Kita Aminkan Indonesia 2024
Visi Misi Anies Baswedan - Muhaimin Iskandar di Pilpres 2024.
- Dapatkan link
- X
- Aplikasi Lainnya
7 Penghargaan Internasional Bergengsi Anies Baswedan dan Berbagai Prestasi Penghargaan dari dalam Negeri...
- Dapatkan link
- X
- Aplikasi Lainnya
Program Kerja Anies Berantas Korupsi: Miskinkan Koruptor, Sahkan UU Perampasan Aset
- Dapatkan link
- X
- Aplikasi Lainnya
Program Kerja Pak Anies Baswedan Bila Allah SWT meridhaiNya...Aamiin
- Dapatkan link
- X
- Aplikasi Lainnya
6 Ide atau Gagasan Capres Anies Baswedan
- Dapatkan link
- X
- Aplikasi Lainnya
Komentar
Posting Komentar