דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. קטגוריות בהרצה
  3. תכנות
  4. בינה מלאכותית - AI
  5. עזרה הדדית - בינה מלאכותית
  6. המלצה | כפתור לאתר הגזרה שגולל מטה להודעה אחרונה בכל פעם - ניתן לביטול מהיר

המלצה | כפתור לאתר הגזרה שגולל מטה להודעה אחרונה בכל פעם - ניתן לביטול מהיר

מתוזמן נעוץ נעול הועבר עזרה הדדית - בינה מלאכותית
1 פוסטים 1 כותבים 39 צפיות 1 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מים אחרוניםמ מנותק
    מים אחרוניםמ מנותק
    מים אחרונים
    כתב נערך לאחרונה על ידי
    #1

    עצבן אותי כל פעם (ק"ו עם מחשב נייד לנובו X201 למכירים...)
    לגלול שוב למטה ושוב למטה.
    תן לצפות בכל שניה בעדכון האחרון...
    ג'מיני כתב לי לזה סקריפט לטמפרונסקי.
    משתף.

    פיצ'רים מרכזיים בתוסף

    • גלילה אוטומטית חכמה: הצמדה אוטומטית של המסך לתחתית הצ'אט בכל פעם שמתקבל מבזק חדש, מותאם למבנה ה-Reverse של האתר.
    • לחצן בקרה צף (UI): הוספת כפתור עגול בפינה הימנית התחתונה המאפשר הפעלה וכיבוי של הפיצ'ר בלחיצה מהירה.
    • חיווי מצב צבעוני: שינוי צבע הלחצן בזמן אמת – ירוק למצב פעיל ואדום למצב כבוי.
    • שמירת העדפות משתמש (Persistence): שימוש ב-localStorage לשמירת מצב הכפתור גם לאחר רענון הדף או כניסה מחדש לאתר.
    • התראת "דופק" (Pulse Notification): הנפשה ויזואלית של הלחצן בעת קבלת הודעה חדשה כאשר הגלילה האוטומטית במצב כבוי.
    • גלילה חלקה (Smooth Scroll): ביצוע תנועת גלילה הדרגתית ונעימה לעין במקום מעבר חד וקופצני.
    • ניטור שינויים בזמן אמת: שימוש ב-MutationObserver למעקב רציף אחרי רכיבי ה-DOM באתר ותגובה מיידית לכל עדכון.
    • אפקטים של אינטראקציה: שינוי שקיפות (Opacity) במעבר עכבר ושינוי גודל (Scale) בלחיצה לחיווי ויזואלי למשתמש.
    • מנגנון אתחול חכם: בדיקה חוזרת של קיום אלמנט הצ'אט לפני הפעלת הסקריפט למניעת שגיאות בזמן טעינת האתר.

    מקווה שאין באגים, ושלא יצטרכו עדכונים...

    // ==UserScript==
    // @name         הגיזרה - גלילה אוטומטית 
    // @namespace    http://tampermonkey.net/
    // @version      1.0
    // @description  גלילה אוטומטית בצד ימין עם שמירת מצב וחיווי הודעות
    // @author       מים אחרונים
    // @match        https://hagizra.news/*
    // @grant        none
    // ==/UserScript==
    
    (function() {
        'use strict';
    
        // טעינת מצב קודם מהדפדפן (ברירת מחדל: כבוי)
        let autoScrollEnabled = localStorage.getItem('hagizra_autoscroll') === 'true';
    
        // יצירת הכפתור
        const btn = document.createElement('button');
        const icon = `<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><path d="m7 13 5 5 5-5M7 6l5 5 5-5"/></svg>`;
    
        btn.innerHTML = icon;
    
        // סגנונות - צד ימין למטה
        const style = document.createElement('style');
        style.innerHTML = `
            @keyframes scrollPulse {
                0% { transform: scale(1); box-shadow: 0 0 0 0 rgba(34, 197, 94, 0.7); }
                70% { transform: scale(1.2); box-shadow: 0 0 0 10px rgba(34, 197, 94, 0); }
                100% { transform: scale(1); box-shadow: 0 0 0 0 rgba(34, 197, 94, 0); }
            }
            .scroll-btn-active { background-color: #22c55e !important; opacity: 1 !important; }
            .scroll-btn-inactive { background-color: #ef4444 !important; opacity: 0.6; }
            .new-msg-pulse { animation: scrollPulse 1s infinite; }
        `;
        document.head.appendChild(style);
    
        btn.style.cssText = `
            position: fixed;
            bottom: 25px;
            right: 25px;
            z-index: 10000;
            width: 45px;
            height: 45px;
            color: white;
            border: 2px solid white;
            border-radius: 50%;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 4px 10px rgba(0,0,0,0.3);
            transition: all 0.3s ease;
        `;
    
        updateBtnUI();
        document.body.appendChild(btn);
    
        function updateBtnUI() {
            if (autoScrollEnabled) {
                btn.className = 'scroll-btn-active';
                btn.classList.remove('new-msg-pulse');
            } else {
                btn.className = 'scroll-btn-inactive';
            }
        }
    
        function scrollToBottom(isSmooth = true) {
            if (!autoScrollEnabled) return;
            const container = document.querySelector('app-chat div.flex-col-reverse');
            if (container) {
                container.scrollTo({ top: 0, behavior: isSmooth ? 'smooth' : 'auto' });
            }
        }
    
        btn.addEventListener('click', () => {
            autoScrollEnabled = !autoScrollEnabled;
            localStorage.setItem('hagizra_autoscroll', autoScrollEnabled);
            updateBtnUI();
            if (autoScrollEnabled) scrollToBottom();
        });
    
        // האזנה להודעות חדשות
        const observer = new MutationObserver((mutations) => {
            const hasNewMsg = mutations.some(m => m.addedNodes.length > 0);
    
            if (hasNewMsg) {
                if (autoScrollEnabled) {
                    setTimeout(() => scrollToBottom(true), 150);
                } else {
                    // חיווי ויזואלי שהגיעה הודעה כשהגלילה כבויה
                    btn.classList.add('new-msg-pulse');
                    setTimeout(() => btn.classList.remove('new-msg-pulse'), 3000);
                }
            }
        });
    
        function init() {
            const chatArea = document.querySelector('app-chat');
            if (chatArea) {
                observer.observe(chatArea, { childList: true, subtree: true });
                if (autoScrollEnabled) scrollToBottom(false);
            } else {
                setTimeout(init, 1000);
            }
        }
    
        init();
    })();
    
    תגובה 1 תגובה אחרונה
    2

    • התחברות

    • אין לך חשבון עדיין? הרשמה

    • התחברו או הירשמו כדי לחפש.
    • פוסט ראשון
      פוסט אחרון
    0
    • חוקי הפורום
    • פופולרי
    • לא נפתר
    • משתמשים
    • חיפוש גוגל בפורום
    • צור קשר