Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 29.10.2021, 14:21
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

voraa,
да все сработало. Но я не понимаю у меня есть вот такой якорь <li class="kontakt"><a href="#kontakt">Контакты</a></li>, если я его убираю в другую часть страницы все срабатывает.
Какие могут быть причины?
Ответить с цитированием
  #12 (permalink)  
Старый 29.10.2021, 14:51
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,744

Сообщение от Сергей Ракипов
Какие могут быть причины?
Мы тут не экстрасенсы. Не видя всей страницы, откуда и куда убираете, ничего нельзя сказать.
href="#kontakt" должен ссылаться на элемент с id="kontakt"

Последний раз редактировалось voraa, 29.10.2021 в 14:58.
Ответить с цитированием
  #13 (permalink)  
Старый 29.10.2021, 16:37
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

voraa,
Да я понимаю, просто там код большой, ну я попробую сейчас
Ответить с цитированием
  #14 (permalink)  
Старый 29.10.2021, 16:58
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

Открыть навигация, ссылка вконтакте, должна опустится вниз.
Но не срабатывает.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>

    <style>
        body {
            overflow-x: hidden;
        }
        main {
            height: 3000px;
        }
        *,
        *::after,
        *::before {
            -webkit-box-sizing: border-box;
            -moz-box-sizing: border-box;
            box-sizing: border-box;
        }
        .navigation-is-open main {
            -webkit-transform: translateX(100%);
            -moz-transform: translateX(100%);
            -ms-transform: translateX(100%);
            -o-transform: translateX(100%);
            transform: translateX(100%);
        }
        .cd-nav-trigger {
            position: fixed;
            z-index: 3;
            right: 5%;
            top: 50px;
            height: 54px;
            width: 54px;
            background-color: #243040;
            border-radius: 50%;
            /* image replacement */
            overflow: hidden;
            text-indent: 100%;
            white-space: nowrap;
            -webkit-transition: -webkit-transform 0.5s;
            -moz-transition: -moz-transform 0.5s;
            transition: transform 0.5s;
        }
        .cd-nav-trigger .cd-nav-icon {
            /* icon created in CSS */
            position: absolute;
            left: 50%;
            top: 50%;
            bottom: auto;
            right: auto;
            -webkit-transform: translateX(-50%) translateY(-50%);
            -moz-transform: translateX(-50%) translateY(-50%);
            -ms-transform: translateX(-50%) translateY(-50%);
            -o-transform: translateX(-50%) translateY(-50%);
            transform: translateX(-50%) translateY(-50%);
            width: 22px;
            height: 2px;
            background-color: #ffffff;
        }
        .cd-nav-trigger .cd-nav-icon::before,
        .cd-nav-trigger .cd-nav-icon:after {
            /* upper and lower lines of the menu icon */
            content: '';
            position: absolute;
            top: 0;
            right: 0;
            width: 100%;
            height: 100%;
            background-color: inherit;
            /* Force Hardware Acceleration in WebKit */
            -webkit-transform: translateZ(0);
            -moz-transform: translateZ(0);
            -ms-transform: translateZ(0);
            -o-transform: translateZ(0);
            transform: translateZ(0);
            -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
            -webkit-transition: -webkit-transform 0.5s, width 0.5s, top 0.3s;
            -moz-transition: -moz-transform 0.5s, width 0.5s, top 0.3s;
            transition: transform 0.5s, width 0.5s, top 0.3s;
        }
        .cd-nav-trigger .cd-nav-icon::before {
            -webkit-transform-origin: right top;
            -moz-transform-origin: right top;
            -ms-transform-origin: right top;
            -o-transform-origin: right top;
            transform-origin: right top;
            -webkit-transform: translateY(-6px);
            -moz-transform: translateY(-6px);
            -ms-transform: translateY(-6px);
            -o-transform: translateY(-6px);
            transform: translateY(-6px);
        }
        .cd-nav-trigger .cd-nav-icon::after {
            -webkit-transform-origin: right bottom;
            -moz-transform-origin: right bottom;
            -ms-transform-origin: right bottom;
            -o-transform-origin: right bottom;
            transform-origin: right bottom;
            -webkit-transform: translateY(6px);
            -moz-transform: translateY(6px);
            -ms-transform: translateY(6px);
            -o-transform: translateY(6px);
            transform: translateY(6px);
        }
        .no-touch .cd-nav-trigger:hover .cd-nav-icon::after {
            top: 2px;
        }
        .no-touch .cd-nav-trigger:hover .cd-nav-icon::before {
            top: -2px;
        }
        .cd-nav-trigger svg {
            position: absolute;
            top: 0;
            left: 0;
        }
        .cd-nav {
            position: fixed;
            z-index: 1;
            top: 0;
            left: 0;
            height: 100%;
            width: 100%;
            background-color: #243040;
            visibility: hidden;
            -webkit-transition: visibility 0s 0.7s;
            -moz-transition: visibility 0s 0.7s;
            transition: visibility 0s 0.7s;
        }

        .cd-nav .cd-navigation-wrapper {
            display: flex;
            justify-content: space-around;
            align-items: center;
            /* all navigation content */
            height: 100%;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            padding: 40px 5% 40px calc(5% + 20px);
            /* Force Hardware Acceleration in WebKit */
            -webkit-transform: translateZ(0);
            -moz-transform: translateZ(0);
            -ms-transform: translateZ(0);
            -o-transform: translateZ(0);
            transform: translateZ(0);
            -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
            -webkit-transform: translateX(50%);
            -moz-transform: translateX(50%);
            -ms-transform: translateX(50%);
            -o-transform: translateX(50%);
            transform: translateX(50%);
            -webkit-transition: -webkit-transform 0.7s;
            -moz-transition: -moz-transform 0.7s;
            transition: transform 0.7s;
            -webkit-transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78);
            -moz-transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78);
            transition-timing-function: cubic-bezier(0.86, 0.01, 0.77, 0.78);
        }
        .navigation-is-open .cd-nav {
            visibility: visible;
            -webkit-transition: visibility 0s 0s;
            -moz-transition: visibility 0s 0s;
            transition: visibility 0s 0s;
        }
        .navigation-is-open .cd-nav .cd-navigation-wrapper {
            -webkit-transform: translateX(0);
            -moz-transform: translateX(0);
            -ms-transform: translateX(0);
            -o-transform: translateX(0);
            transform: translateX(0);
            -webkit-transition: -webkit-transform 0.5s;
            -moz-transition: -moz-transform 0.5s;
            transition: transform 0.5s;
            -webkit-transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78);
            -moz-transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78);
            transition-timing-function: cubic-bezier(0.82, 0.01, 0.77, 0.78);
        }
    </style>
</head>
<body>
    <main>

    </main>
    <footer id="kontakt">
        Текст
    </footer>
    <a href="#cd-nav" class="cd-nav-trigger zakryt">Навигатция<span class="cd-nav-icon"></span>

        <svg x="0px" y="0px" width="54px" height="54px" viewBox="0 0 54 54">
            <circle fill="transparent" stroke="#656e79" stroke-width="1" cx="27" cy="27" r="25"
                stroke-dasharray="157 157" stroke-dashoffset="157"></circle>
        </svg>
    </a>

    <div id="cd-nav" class="cd-nav">
        <div class="cd-navigation-wrapper">
            <div class="cd-half-block">
                <nav>
                    <ul class="cd-primary-nav">
                        <li class="zakryt"><a href="#kontakt">Контакты</a></li>
                    </ul>
                </nav>
            </div><!-- .cd-half-block -->
        </div> <!-- .cd-navigation-wrapper -->
    </div> <!-- .cd-nav -->
    <script>
        jQuery(document).ready(function($){
            var isLateralNavAnimating = false;

            //open/close lateral navigation
            $('.zakryt').on('click', function(event){
                event.preventDefault();
                //stop if nav animation is running 
                if( !isLateralNavAnimating ) {
                    if($(this).parents('.csstransitions').length > 0 ) isLateralNavAnimating = true; 
                    
                    $('body').toggleClass('navigation-is-open');
                    $('.cd-navigation-wrapper').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){
                        //animation is over
                        isLateralNavAnimating = false;
                    });
                }
            });
        });
    </script>
</body>
</html>
Ответить с цитированием
  #15 (permalink)  
Старый 29.10.2021, 20:52
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,744

Все что делает этот код, так при клике на
<a href="#cd-nav" class="cd-nav-trigger zakryt">Навигатция...
и
<li class="zakryt"><a href="#kontakt">Контакты</a></li>

ставит или убирает у body класс navigation-is-open.

Почему от этого что то должно опускаться вниз? И куда?
Почему эта ссылка должна куда то опускаться? Ей что то поменяли? Класс или стиль?
Ответить с цитированием
  #16 (permalink)  
Старый 29.10.2021, 20:58
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,744

Сообщение от Сергей Ракипов
если я его убираю в другую часть страницы все срабатывает.
Что срабатывает?

Что вообще означают <a href="#kontakt"> и <a href="#cd-nav"
На что и зачем они ссылаются?

Последний раз редактировалось voraa, 29.10.2021 в 21:00.
Ответить с цитированием
  #17 (permalink)  
Старый 30.10.2021, 08:50
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

voraa,

Вот это ссылка <a href="#kontakt"> должна отпустится сюда.


<footer id="kontakt">
Текст
</footer>


То есть я при клике ожидаю что она закрывает навигацию и отпускается вниз к своему якорю.
Ответить с цитированием
  #18 (permalink)  
Старый 30.10.2021, 09:34
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,744

Сообщение от Сергей Ракипов
То есть я при клике ожидаю что она закрывает навигацию и отпускается вниз к своему якорю.
И что ее должно заставить это делать?
Что значит "опуститься"?
Переместиться только на экране? Или элемент в DOM должен переместиться в другой узел?
В любом случае сам элемент никуда опускаться не будет
При клике на ссылку с href="#..." просто происходит переход на ту часть страницы, которая начинается с элемента с соответствующим id. Ну просто страница роллингуется до этого места, если этот элемент не был виден. Но у Вас и этого не будет происходить потому, что есть
event.preventDefault();
Это отменяет стандартную реакцию на клик по ссылке.
Ответить с цитированием
  #19 (permalink)  
Старый 30.10.2021, 09:38
Профессор
Отправить личное сообщение для Сергей Ракипов Посмотреть профиль Найти все сообщения от Сергей Ракипов
 
Регистрация: 01.06.2010
Сообщений: 668

Сообщение от voraa Посмотреть сообщение
И что ее должно заставить это делать?
Но у Вас и этого не будет происходить потому, что есть
event.preventDefault();
Это отменяет стандартную реакцию на клик по ссылке.
Вот этого я не знал, а что можно сделать?
Ответить с цитированием
  #20 (permalink)  
Старый 30.10.2021, 09:46
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,744

Сообщение от Сергей Ракипов
а что можно сделать?
Для начала понять, что НУЖНО?
Сообщение от voraa
Что значит "опуститься"?
Переместиться только на экране? Или элемент в DOM должен переместиться в другой узел?
По любому, если у разных элементов разная реакция на клик, разные действия, то не надо для них писать ОДНУ функцию обработки. Т.е то, с чего вы начали.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создать код CSS+HTML JamesMorgan Общие вопросы Javascript 2 11.08.2015 12:50
Код ответа сервера и обновление iframe alexdemi911 Общие вопросы Javascript 6 10.08.2015 22:30
Помогите к js коду, написать html код Modrih Элементы интерфейса 8 16.06.2015 18:08
Требуется выводить код рекламного блока Adsense из файла JavaScript??? speedflow Элементы интерфейса 0 26.05.2012 15:50
Получить код js-скрипта, находящегося в файле на сервере RomanA Общие вопросы Javascript 4 04.04.2012 09:53