قالب تطبيق المصحف الإلكتروني الشامل (رواية ورش بالملون)
ملف متكامل ومبسط يحتوي على الأكواد جاهزة للنسخ واللصق المباشر لتسهيل بناء تطبيقك الخاص.
💡 نصيحة قبل البدء: تم تصميم هذه الأكواد لتوضع مباشرة بدون تعقيد. اتبع الخطوتين التاليتين لتشغيل المصحف كـ تطبيق حقيقي بالكامل.
الخطوة 1: كود المظهر العام (يتم تركيبه مرة واحدة في القالب)
توجه إلى بلوجر < سهم التخصيص < تعديل HTML، وابحث عن الوسم </head> وضَع فوقه مباشرة الكود التالي ثم اضغط حفظ:
<!-- مكتبات التصفح السريع واللمس للهواتف -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css" />
<script src="https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css"/>
<style>
/* نمط التطبيق الكامل المخصص للمصحف */
body { background-color: #f4f1ea !important; transition: background 0.3s ease; }
.swiper { width: 100%; max-width: 600px; margin: 20px auto 80px auto; }
.swiper-slide { text-align: center; display: flex; justify-content: center; align-items: center; }
.swiper-slide img { width: 100%; height: auto; box-shadow: 0 4px 20px rgba(0,0,0,0.15); border-radius: 8px; }
/* شريط التحكم السفلي الثابت الذكي */
.quran-controls { display: flex; justify-content: space-around; background: #2c3e50; padding: 12px 0; position: fixed; bottom: 0; left: 0; width: 100%; z-index: 10000; box-shadow: 0 -3px 10px rgba(0,0,0,0.2); }
.quran-btn { color: #fff; font-size: 16px; cursor: pointer; text-decoration: none; display: flex; flex-direction: column; align-items: center; width: 25%; }
.quran-btn span { font-size: 11px; margin-top: 5px; font-family: inherit; }
/* إخفاء الزوائد المزعجة للحصول على مظهر تطبيق نظيف */
.post-header-line-1, .post-footer, .comments, #sidebar-wrapper, .main-header { display: none !important; }
#main-wrapper { width: 100% !important; float: none !important; margin: 0 auto !important; }
</style>
الخطوة 2: كود نشر السور (يُنسخ داخل كل مشاركة جديدة)
عند كتابة سورة جديدة، حوّل المحرر إلى عرض HTML وضَع الكود التالي (مع استبدال روابط الصور بروابط صفحاتك):
<!-- حاوية صفحات المصحف الملون -->
<div class="swiper mySwiper" dir="rtl">
<div class="swiper-wrapper">
<!-- الصفحة 1 -->
<div class="swiper-slide">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_SAMPLE1/s1600/page1.jpg" alt="الصفحة الأولى" />
</div>
<!-- الصفحة 2 -->
<div class="swiper-slide">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_SAMPLE2/s1600/page2.jpg" alt="الصفحة الثانية" />
</div>
<!-- الصفحة 3 -->
<div class="swiper-slide">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_SAMPLE3/s1600/page3.jpg" alt="الصفحة الثالثة" />
</div>
<!-- يمكنك تكرار وسم السلايدر أعلاه بعدد صفحات السورة -->
</div>
<div class="swiper-pagination"></div>
</div>
<!-- شريط التحكم السفلي المدمج للتصفح والميزات الذكية -->
<div class="quran-controls">
<div class="quran-btn" id="saveBookmark" onclick="saveCurrentPage()">
<i class="fa-regular fa-bookmark"></i><span>حفظ العلامة</span>
</div>
<a href="/p/index.html" class="quran-btn">
<i class="fa fa-list"></i><span>الفهرس</span>
</a>
<a href="/p/rules.html" class="quran-btn">
<i class="fa fa-paint-brush"></i><span>الأحكام الملونة</span>
</a>
<div class="quran-btn" onclick="toggleDarkMode()">
<i class="fa fa-moon"></i><span>الوضع الليلي</span>
</div>
</div>
<!-- مشغل جافا سكريبت الذكي -->
<script>
var swiper = new Swiper('.mySwiper', {
loop: false,
pagination: { el: '.swiper-pagination', type: 'progressbar' },
});
function saveCurrentPage() {
localStorage.setItem('lastReadPage', window.location.href);
alert('تم حفظ موضع القراءة الحالي بنجاح!');
document.getElementById('saveBookmark').innerHTML = "<i class='fa-solid fa-bookmark' style='color:#f1c40f'></i><span>تم الحفظ</span>";
}
function toggleDarkMode() {
var body = document.body;
if (body.style.backgroundColor === 'rgb(30, 30, 30)') {
body.style.backgroundColor = '#f4f1ea';
document.querySelectorAll('.swiper-slide').forEach(el => el.style.backgroundColor = '#f4f1ea');
} else {
body.style.backgroundColor = '#1e1e1e';
document.querySelectorAll('.swiper-slide').forEach(el => el.style.backgroundColor = '#1e1e1e');
}
}
</script>
الخطوة 3: كود الفهرس الذكي (يُوضع في صفحة ثابتة "Page")
قم بإنشاء صفحة ثابتة جديدة باسم "الفهرس" وضع بها هذا الجدول الأنيق لربط السور وتفعيل زر العودة لآخر علامة توقف:
<div style="text-align: center; margin-bottom: 20px;">
<button id="resumeBtn" onclick="resumeReading()" style="background:#e67e22; color:white; border:none; padding:12px 24px; font-size:16px; border-radius:30px; cursor:pointer; display:none; font-weight:bold; box-shadow:0 4px 10px rgba(0,0,0,0.15);">
<i class="fa-solid fa-play"></i> متابعة القراءة من آخر علامة
</button>
</div>
<table dir="rtl">
<thead>
<tr>
<th>رقم السورة</th>
<th>اسم السورة</th>
<th>النوع</th>
<th>رابط السورة</th>
</tr>
</thead>
<tbody>
<tr>
<td>٠٠١</td>
<td style="font-weight:bold; color:#16a085;">الفاتحة</td>
<td><span class="badge" style="background:#2ecc71;">مكية</span></td>
<td><a href="ضع_رابط_مشاركة_سورة_الفاتحة_هنا" style="color:#2980b9; text-decoration:none; font-weight:bold;">اقرأ الآن ←</a></td>
</tr>
<tr>
<td>٠٠٢</td>
<td style="font-weight:bold; color:#16a085;">البقرة</td>
<td><span class="badge" style="background:#e74c3c;">مدنية</span></td>
<td><a href="ضع_رابط_مشاركة_سورة_البقرة_هنا" style="color:#2980b9; text-decoration:none; font-weight:bold;">اقرأ الآن ←</a></td>
</tr>
<!-- يمكنك إضافة بقية السور هنا بنفس الطريقة -->
</tbody>
</table>
<script>
// فحص وجود علامة حفظ مسبقة لإظهار زر المتابعة
if(localStorage.getItem('lastReadPage')) {
document.getElementById('resumeBtn').style.display = 'inline-block';
}
function resumeReading() {
var url = localStorage.getItem('lastReadPage');
if(url) { window.location.href = url; }
}
</script>
") no-repeat left top;
padding:10px 0 0;
}
#main3 {
background:url("https://resources.blogblog.com/blogblog/data/rounders/rails_main.gif") repeat-y;
padding:0;
#sidebar {
width:240px;
float:right;
margin:15px 0 0;
font-size:97%;
line-height:1.5em;
}
}
@media handheld
#content {
width:90%;
}
#main {
width:100%;
float:none;
background:#fff;
}
#main2 {
float:none;
background:none;
}
#main3 {
background:none;
padding:0;
}
#sidebar {
width:100%;
float:none;
}
}
/* Links
----------------------------------------------- */
a:link {
color:#258;
}
a:visited {
color:#666;
}
a:hover {
color:#c63;
}
a img {
border-width:0;
}
/* Blog Header
----------------------------------------------- */
@media all {
#header {
background:#456 url("https://resources.blogblog.com/blogblog/data/rounders/corners_cap_top.gif") no-repeat left top;
margin:0 0 0;
padding:8px 0 0;
color:#fff;
}
#header div {
background:url("https://resources.blogblog.com/blogblog/data/rounders/corners_cap_bot.gif") no-repeat left bottom;
padding:0 15px 8px;
}
}
@media handheld {
#header {
background:#456;
}
#header div {
background:none;
}
}
#blog-title {
margin:0;
padding:10px 30px 5px;
font-size:200%;
line-height:1.2em;
}
#blog-title a {
text-decoration:none;
color:#fff;
}
#description {
margin:0;
padding:5px 30px 10px;
font-size:94%;
line-height:1.5em;
}
/* Posts
----------------------------------------------- */
.date-header {
margin:0 28px 0 43px;
font-size:85%;
line-height:2em;
text-transform:uppercase;
letter-spacing:.2em;
color:#357;
.post-title {
margin:0
line-height:1.5em;
background:url("https://resources.blogblog.com/blogblog/data/rounders/icon_arrow.gif") no-
border-width:0 1px 1px;
padding:2px 14px 2px 29px;
color:#333;
}
a.title-link, .post-title strong {
text-decoration:none;
display:block;
}
a.title-link:hover {
background-color:#ded;
color:#000;
}
.post-body {
border:1px dotted #bbb;
border-width:0 1px 1px;
border-bottom-color:#fff;
padding:10px 14px 1px 29px;
}
html>body .post-body {
border-bottom-width:0;
}
.post p {
margin:0 0 .75em;
}
p.post-footer {
background:#ded
margin:0;
padding:2px 14px 2px 29px;
border:1px dotted #bbb;
border-width:1px;
border-bottom:1px solid #eee;
font-size:100%;
line-height:1.5em;
color:#666;
text-align:right
}
html>body p.post-footer {
border-bottom-color:transparent;
}
p.post-footer em {
display:block;
float:left;
text-align:left;
font-style:normal
}
a.comment-link {
/* IE5.0/Win doesn't apply padding to inline elements,
so we hide these two declarations from it */
background/* */:/**/url("https://resources.blogblog.com/blogblog/data/rounders/icon_comment.gif") no-repeat 0 45%;
padding-left:14px;
}
html>body a.comment-link {
/* Respecified,
background:url("https://resources.blogblog.com/blogblog/data/rounders/icon_comment.gif") no-repeat 0 45%;
padding-left:14px;
}
.post img {
margin:0 0 5px 0;
padding:4px;
border:1px solid #ccc;
}
blockquote {
margin:.75em 0;
border:1px dotted #ccc;
border-width:1px 0;
padding:5px 15px;
color:#666;
}
.post blockquote p {
margin:.5em 0;
}
/* Comments
----------------------------------------------- */
#comments {
margin:-25px 13px 0;
border:1px dotted #ccc;
border-width:0 1px 1px;
padding:20px 0 15px 0;
}
#comments h4 {
margin:0 0 10px;
padding:0 14px 2px 29px;
border-bottom:1px dotted #ccc;
font-size:120%;
line-height:1.4em;
color:#333;
}
#comments-block {
margin:0 15px 0 9px;
}
.comment-data {
background:url("https://resources.blogblog.com/blogblog/data/rounders/icon_comment.gif") no-repeat 2px .3em;
margin:.5em 0;
padding:0 0 0 20px;
color:#666;
}
.comment-poster {
font-weight:bold;
}
.comment-body {
margin:0 0 1.25em;
padding:0 0 0 20px;
}
.comment-body p {
margin:0 0 .5em;
}
.comment-timestamp {
margin:0 0 .5em;
padding:0 0 .75em 20px;
color:#666;
}
.comment-timestamp a:link {
color:#666;
}
.deleted-comment {
font-style:italic;
color:gray;
}
.paging-control-container {
float: right;
margin: 0px 6px 0px 0px;
font-size: 80%;
}
.unneeded-paging-control {
visibility: hidden;
}
/* Profile
----------------------------------------------- */
@media all {
#profile-container {
background:#cdc url("https://resources.blogblog.com/blogblog/data/rounders/corners_prof_bot.gif") no-repeat left bottom;
margin:0 0 15px;
padding:0 0 10px;
color:#345;
}
#profile-container h2 {
background:url("https://resources.blogblog.com/blogblog/data/rounders/corners_prof_top.gif") no-repeat left top;
padding:10px 15px .2em;
margin:0;
border-width:0;
font-size:115%;
line-height:1.5em;
color:#234;
}
}
@media handheld {
#profile-container {
background:#cdc;
}
#profile-container h2 {
background:none;
}
}
.profile-datablock {
margin:0 15px .5em;
border-top:1px dotted #aba;
padding-top:8px;
}
.profile-img {display:inline;}
.profile-img img {
float:left;
margin:0 10px 5px 0;
border:4px solid #fff;
}
.profile-data strong {
display:block;
}
#profile-container p {
margin:0 15px .5em;
}
#profile-container .profile-textblock {
clear:left;
}
#profile-container a {
color:#258;
}
.profile-link a {
background:url("https://resources.blogblog.com/blogblog/data/rounders/icon_profile.gif") no-repeat 0 .1em;
padding-left:15px;
font-weight:bold;
}
ul.profile-datablock {
list-style-type:none;
}
/* Sidebar Boxes
----------------------------------------------- */
@media all {
.box {
background:#fff url("https://resources.blogblog.com/blogblog/data/rounders/corners_side_top.gif") no-repeat left top;
margin:0 0 15px;
padding:10px 0 0;
color:#666;
}
.box2 {
background:url("https://resources.blogblog.com/blogblog/data/rounders/corners_side_bot.gif") no-repeat left bottom;
padding:0 13px 8px;
}
}
@media handheld {
.box {
background:#fff;
}
.box2 {
background:none;
}
}
.sidebar-title {
margin:0;
padding:0 0 .2em;
border-bottom:1px dotted #9b9;
font-size:115%;
line-height:1.5em;
color:#333;
}
.box ul {
margin:.5em 0 1.25em;
padding:0 0px;
list-style:none;
}
.box ul li {
background:url("https://resources.blogblog.com/blogblog/data/rounders/icon_arrow_sm.gif") no-repeat 2px .25em;
margin:0;
padding:0 0 3px 16px;
margin-bottom:3px;
border-bottom:1px dotted #eee;
line-height:1.4em;
}
.box p {
margin:0 0 .6em;
}
/* Footer
----------------------------------------------- */
#footer {
clear:both;
margin:0;
padding:15px 0 0;
}
@media all {
#footer div {
background:#456 url("https://resources.blogblog.com/blogblog/data/rounders/corners_cap_top.gif") no-repeat left top;
padding:8px 0 0;
color:#fff;
}
#footer div div {
background:url("https://resources.blogblog.com/blogblog/data/rounders/corners_cap_bot.gif") no-repeat left bottom;
padding:0 15px 8px;
}
}
@media handheld {
#footer div {
background:#456;
}
#footer div div {
background:none;
}
}
#footer hr {display:none;}
#footer p {margin:0;}
#footer a {color:#fff;}
/* Feeds
----------------------------------------------- */
#blogfeeds {
}
#postfeeds {
padding:0 15px 0;
}
0 تعليقات:
إرسال تعليق
الاشتراك في تعليقات الرسالة [Atom]
<< الصفحة الرئيسية