Александр Попов

Рейтинг
30
Регистрация
30.07.2024
Интересы
CPA
Mazay #:
По данным Яндекса, этот сайт может выдавать себя за популярный сервис или сайт известной организации, чтобы выманить конфиденциальные данные посетителей

Так может у вас информационный сайт, условно, про ВТБ, а ваш домен vtbinfo.link (Зона указана условно), т.е используется название конкретного крупного бренда в домене?

Есть риск того, что такая статья не будет проиндексирована Гуглом, и никакого толка от ссылки не будет. 
ziliboba0213 #:

Даже лучше Сбербанка? =)))))) Да не может быть... =)))

Ну, для Дурова, очевидно, после сделки, Грок — лучшая модель. 


Из того, что видел, Дуров ответил Маску: 

«Верно. Есть принципиальная договоренность, но формальности еще не улажены».



Такое чувство, что Маск забыл закупиться ТОНом и решил немного уронить его, вот же два скамера мирового масштаба🤣

yodda #:

Вот моя стата за несколько дней. На графике прекрасно виден общий результат - ДОХОД ВЫРОС. Да, падения бывают, но следом всегда идет рост, который перекрывает это смешное падение.

А давай с датами, а давай с суммами. Ну камон, может там доход по 10-15 рублей в день. 

В интернете нет никакой статистики (ну, вдруг хоть когда-то Яндекс публиковал) по нажатию на Google на странице результатов выдачи? 
Клауд 4 Соннет:


 Понимаю проблему! Основная сложность в том, что вам нужно сохранить текущее состояние анимации приближения и продолжить с того же места. Давайте переработаем код, чтобы он работал корректно:


Основные изменения в коде:

1. **Использование `requestAnimationFrame`** вместо CSS-анимации для точного контроля над эффектом приближения
2. **Сохранение прогресса анимации** в переменной `pausedProgress`, чтобы возобновлять с того же места
3. **Управление autoplay** - останавливаем при клике и возобновляем через 5 секунд или при повторном клике
4. **Индикатор паузы** - визуальная подсказка о том, что слайдер на паузе
5. **Правильная обработка смены слайдов** - сбрасываем состояние предыдущего слайда

**Как это работает:**

- При клике по изображению анимация приближения останавливается точно в том месте, где была
- Autoplay слайдера также останавливается
- Показывается индикатор "Пауза (5 сек)"
- Через 5 секунд или при повторном клике анимация и autoplay возобновляются
- Анимация продолжается с того же масштаба, на котором была остановлена

Теперь эффект работает именно так, как вы описали в требованиях!









<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Swiper Slider with Zoom Effect</title>
    <link rel="stylesheet" href="https://unpkg.com/swiper/swiper-bundle.min.css">
    <style>
        body {
            margin: 0;
            font-family: Arial, sans-serif;
        }
        .swiper-container {
            width: 100%;
            height: 100vh;
        }
        .swiper-slide {
            display: flex;
            justify-content: center;
            align-items: center;
            overflow: hidden;
            cursor: pointer;
        }
        .swiper-slide img {
            max-width: 100%;
            height: 100%;
            object-fit: cover;
            transition: none;
        }
        
        /* Индикатор паузы */
        .pause-indicator {
            position: absolute;
            top: 20px;
            right: 20px;
            background: rgba(0, 0, 0, 0.7);
            color: white;
            padding: 10px;
            border-radius: 5px;
            font-size: 14px;
            z-index: 10;
            opacity: 0;
            transition: opacity 0.3s;
        }
        
        .pause-indicator.show {
            opacity: 1;
        }
    </style>
</head>
<body>
    <div class="swiper-container">
        <div class="swiper-wrapper">
            <div class="swiper-slide"><img src="https://images.wallpaperscraft.com/image/single/lynx_animal_predator_1398659_1920x1080.jpg" alt=""></div>
            <div class="swiper-slide"><img src="https://images.wallpaperscraft.com/image/single/lake_trees_sunset_1398065_1920x1080.jpg" alt=""></div>
            <div class="swiper-slide"><img src="https://images.wallpaperscraft.com/image/single/field_river_trees_1399666_1920x1080.jpg" alt=""></div>
        </div>
        <div class="swiper-pagination"></div>
        <div class="pause-indicator">Пауза (5 сек)</div>
    </div>

    <script src="https://unpkg.com/swiper/swiper-bundle.min.js"></script>
    <script>
        const swiper = new Swiper('.swiper-container', {
            loop: true,
            autoplay: {
                delay: 5000,
                disableOnInteraction: false,
            },
            pagination: {
                el: '.swiper-pagination',
                clickable: true,
            },
        });

        let zoomAnimationId;
        let zoomStartTime;
        let zoomDuration = 5000; // 5 секунд
        let isPaused = false;
        let pauseTimeout;
        let pausedProgress = 0; // Прогресс анимации на момент паузы
        
        const pauseIndicator = document.querySelector('.pause-indicator');

        function animateZoom(startTime, initialProgress = 0) {
            const activeSlide = document.querySelector('.swiper-slide-active img');
            if (!activeSlide) return;

            function zoom(currentTime) {
                if (!startTime) startTime = currentTime;
                
                const elapsed = currentTime - startTime;
                const totalProgress = Math.min((elapsed + initialProgress * zoomDuration) / zoomDuration, 1);
                
                // Вычисляем масштаб от 1 до 1.2
                const scale = 1 + (totalProgress * 0.2);
                activeSlide.style.transform = `scale(${scale})`;
                activeSlide.style.transition = 'none';
                
                if (totalProgress < 1 && !isPaused) {
                    zoomAnimationId = requestAnimationFrame(zoom);
                } else if (totalProgress >= 1 && !isPaused) {
                    // Анимация завершена, переходим к следующему слайду
                    activeSlide.style.transform = 'scale(1)';
                    activeSlide.style.transition = 'transform 0.3s ease-out';
                    swiper.slideNext();
                }
                
                // Сохраняем текущий прогресс
                pausedProgress = totalProgress;
            }
            
            zoomAnimationId = requestAnimationFrame(zoom);
        }

        function startZoom() {
            if (isPaused) return;
            
            pausedProgress = 0;
            zoomStartTime = performance.now();
            animateZoom();
        }

        function pauseZoom() {
            isPaused = true;
            if (zoomAnimationId) {
                cancelAnimationFrame(zoomAnimationId);
            }
            
            // Показываем индикатор паузы
            pauseIndicator.classList.add('show');
            
            // Автоматическое возобновление через 5 секунд
            pauseTimeout = setTimeout(() => {
                resumeZoom();
            }, 5000);
        }

        function resumeZoom() {
            isPaused = false;
            
            // Скрываем индикатор паузы
            pauseIndicator.classList.remove('show');
            
            // Очищаем таймаут автовозобновления
            if (pauseTimeout) {
                clearTimeout(pauseTimeout);
                pauseTimeout = null;
            }
            
            // Возобновляем анимацию с сохраненного прогресса
            if (pausedProgress < 1) {
                animateZoom(performance.now(), pausedProgress);
            } else {
                // Если анимация была завершена, начинаем новую
                startZoom();
            }
            
            // Возобновляем autoplay
            swiper.autoplay.start();
        }

        function togglePause() {
            if (isPaused) {
                resumeZoom();
            } else {
                // Останавливаем autoplay
                swiper.autoplay.stop();
                pauseZoom();
            }
        }

        // Обработчик смены слайда
        swiper.on('slideChange', () => {
            // Сбрасываем состояние предыдущего слайда
            document.querySelectorAll('.swiper-slide img').forEach(img => {
                img.style.transform = 'scale(1)';
                img.style.transition = 'transform 0.3s ease-out';
            });
            
            // Очищаем анимацию
            if (zoomAnimationId) {
                cancelAnimationFrame(zoomAnimationId);
            }
            
            // Если не на паузе, запускаем новую анимацию
            if (!isPaused) {
                setTimeout(() => {
                    startZoom();
                }, 100); // Небольшая задержка для корректной работы
            }
        });

        // Добавляем обработчики кликов
        document.querySelectorAll('.swiper-slide').forEach(slide => {
            slide.addEventListener('click', (e) => {
                e.preventDefault();
                e.stopPropagation();
                togglePause();
            });
        });

        // Запускаем первую анимацию после загрузки
        swiper.on('init', () => {
            setTimeout(() => {
                startZoom();
            }, 100);
        });

        // Если swiper уже инициализирован
        if (swiper.initialized) {
            setTimeout(() => {
                startZoom();
            }, 100);
        }
    </script>
</body>
</html>
Dimmex #:

Он с этими обзорами очень много не понимает. Например, даты и географию. Пишешь простой запрос о мероприятиях на день защиты детей, он льет тонну воды, основываясь на данных 2022 года. 

Сколько уже времени gemini развивается? Но это худшая нейронка из всех возможных. Как и переводчик гугловский. Непонятно нафига такой сырой продукт выкатывать на весь мир? Тут проблема не в том, что ИИ обзоры трафик отожмут, а в том, что пользователи разбегутся. 

Ну не из-за удобства нейронок люди всё чаще ими пользуются. Просто кривые алгоритмы гугла перестали давать искомую информацию. Порой в Яндексе выдача лучше.

296 сервисов/проектов/разработок в killedbygoogle, для них не в новинку)

Dimmex #:

Изучите тему иммунитет растений. В садоводстве важный аспект.

Но тут суть в другом. Если информации на запрос нет, то и ответа быть не должно. Логично ведь? Должно быть что-то типа "по запоосу нет информации" вместо полностью нерелевантной портянки.

И самое главное — в источнике один из них DTF.

Я не эксперт в этой области и даже не любитель, но кажется, дтф не самый компетентный источник по данному вопросу. 


Г и Я прям друзьяшки, умнички, на благо интернета)

Genius Ideaing #:

потому что генеративные нейросети российской выделки ПРИМИТИВНЫ и ГЛЮЧНЫ

ни одна из них даже близко не напишет по подробному заданию 70-80% уникальную СЕО статью по текст ру 

а chatGPT даже бесплатной версии такие статьи на русском языке пишет... 

вот и весь ответ

российские ИИ буду в рейтинге ниже плинтуса

А с другой стороны — у чатов есть специфика. Смысл сберу ради 1000-2000 сеошников и 10 000 копирайтеров обучать модель на это, если есть насколько миллионов человек, для которых задача — «задать обычный поисковой запрос голосом и получить ответ голосом»?

Всего: 304