<script type="text/discourse-plugin" version="0.8">
var addedElement;
api.onPageChange(() => {
addedElement = false;
//window.onload = lastPostFix();
});
async function lastPostFix()
{
var elements = document.getElementsByClassName('topic-post-visited');
var newElement = document.createElement("div");
newElement.classList.add('small-action');
while(elements.length > 0 && !addedElement)
{
elements[0].parentNode.insertBefore(newElement, elements[0].nextSibling);
addedElement = true;
}
}
</script>
ومع ذلك، عند التمرير لأعلى أو لأسفل، هناك الكثير من المشكلات التي يبدو أن هذا يسببها، بدءًا من رفض المشاركات للتحميل ببساطة إلى مساحات فارغة ضخمة أو أيًا كان ما يحدث في الصورة الثالثة:
بينما يجعل ذلك أرق، فهذه ليست المشكلة حقًا هنا - المثال الذي قدمته كنموذج مثالي تم عن طريق تعديلي لـ CSS، وهو أمر تافه في الأساس - المشكلة هي أن تلوين خلفية مشاركاتنا يتم عبر محدد nth-child والعنصر .small-action.topic-post-visited يُحسب كطفل وبالتالي يبدل nth-child عندما لا نريده أن يفعل ذلك.
لذلك نحصل أيضًا على بعض السلوك الممتع عندما تقوم بالتمرير بما يكفي لتحميل الشريط - تومض المنشورات بألوان ذهابًا وإيابًا بينما يعيد الموقع تحديد ما يجب تلوينه كأي شيء عندما يختفي شريط “آخر زيارة”.
هذا غير مثالي على الإطلاق وبالنظر إلى الألوان المتناوبة يستحق أكثر بالنسبة لنا من مؤشر آخر زيارة، فنحن نرغب بشدة في وجود طريقة للتعامل مع هذا بشكل صحيح أو تعطيل الميزة بالكامل.
من الممكن تحقيق نفس التأثير باستخدام CSS فقط ولكنه مخادع بعض الشيء وسيعمل فقط في تدفق المنشورات. لن يعمل في قائمة المواضيع. ستحتاج جافا سكريبت هناك حيث أن سفاري فقط هي التي تحدد بناء الجملة :nth-child( of <selector>) وعلى حد علمي لا توجد سمات يمكن استهدافها لتطبيق التأثير.
@orangeandblack5، عليك استهداف عنصر article داخل المنشورات. لاحظ أن السمة id تتبع النمط id=post_N حيث N هو رقم المنشور في التدفق.
لقد قررت تجربة فكرة CSS الخالصة، وللأسف بينما تُحتسب بعض الإجراءات الصغيرة (مثل قفل أو فتح أو تثبيت موضوع) كمنشور كامل وتحصل على معرف فريد خاص بها يمكننا استخدامه لتلوينها، فإن هذا لا ينطبق على جميعها.
لاحظ أن هذا يؤثر أيضًا على إصلاح JS الذي قدمه @Don - سأرى ما إذا كان بإمكاني إيجاد طريقة للتغلب على ذلك، لكن معرفتي بلغة JS أضعف بكثير من معرفتي بـ CSS.