Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.09.2016, 12:45
Новичок на форуме
Отправить личное сообщение для vendetta_klein Посмотреть профиль Найти все сообщения от vendetta_klein
 
Регистрация: 15.08.2016
Сообщений: 1

Скролл до якоря мышкой
Добрый день господа.
Сразу скажу, что я только обучаюсь и порой не знаю как правильно сделать запрос для поиска.
Итак к делу. Сделал ЭТО ЧУДО. Хочу сделать, чтобы при скроле колёсика, страницы опускались как и при переходе по пунктам меню (чтобы меню открылось нажмите на надпись MENU). Если грубо говорить, колёсико вниз - опустилось до якоря. Очень бы хотелось, чтобы было реализовано на JQ.
На всякий оставлю тут HTML
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Мой сайт</title>
    <link href="style.css" rel="stylesheet">
    <script src="js/jquery-3.1.0.min.js"></script>
    <script src="js/js.js"></script>
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
</head>
<body>
    <div id="gallery"></div>
    <div id="blog"></div>
    <div id="about"></div>
    <div id="contact"></div>
    <div id="help"></div>
    <div class="menu-icon">
        <img src="img/MENU_ICON.png">
        <p>menu</p>
    </div>
    <div class="menu">
        <ul>
            <li><a href="#gallery">gallery</a></li>
            <li><a href="#blog">blog</a></li>
            <li><a href="#about">about me</a></li>
            <li><a href="#contact">contact</a></li>
            <li><a href="#help">help</a></li>
        </ul>
    </div>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 26.09.2016, 12:59
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

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

Ну вот, пункты есть - крути колесиком и нажимай на них программно по достижению каких-то там координат.
Ответить с цитированием
  #3 (permalink)  
Старый 26.09.2016, 15:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

vendetta_klein,
прокрутка блоков колёсиком мыши, плюс добавлено: индикация текущего блока в меню
<!DOCTYPE html>
<html>
<head>
    <base href="http://212.98.173.96:8282/" />
    <meta charset="UTF-8">
    <title>Мой сайт</title>
    <link href="style.css" rel="stylesheet">
    <style type="text/css">
    .menu.open{
       left:0px;
    }
    .menu{
      top: 30%;
      transition: left 250ms;
        }
   .menu li.active{

      background-image: -webkit-gradient(linear, left, right, color-stop(0, #DCDCDC), color-stop(1, #E58643));
      background-image: -o-linear-gradient(left, #DCDCDC, #E58643);
      background-image: -moz-linear-gradient(left, #DCDCDC, #E58643);
      background-image: -webkit-linear-gradient(left, #DCDCDC, #E58643);
      background-image: linear-gradient(to right, #DCDCDC, #E58643)
    }
   .menu li.active a{
      color: #000000;
      font-weight: bold;
    }
   .menu li:after{ transition: all 800ms 300ms;
      content: " ";
      display: block;
      position: absolute;
      height: 8px;
      width: 8px;
      right: -25px;
      margin-top: -25px;
      background-color: #9E009E ;
      border-radius: 50%;
   }
   .menu li.active:after {
     background-color: #FFE033;
   }
   .menu.open li:after{
      transition-duration: 0s;
      transition-delay: 0s;
      height: 0;
      width: 0;
   }

    </style>
    <script src="js/jquery-3.1.0.min.js"></script>
    <script>
$(function() {
    $(".menu-icon").click(function() {
        $(".menu").toggleClass("open")
    });
    var c = $('a[href^="#"]'),
        a = 0,
        e = c.length,
        d;
    c.click(function(b) {
        b.preventDefault();
        a = c.index(this);
        c.parent().removeClass("active").eq(a).addClass("active");
        b = $(this).attr("href");
        $("html, body").animate({
            scrollTop: $(b).offset().top
        }, 800, function() {
            d = !1
        })
    });
    $("body").on("wheel", function(b) {
        b.preventDefault();
        d || (d = !0, 0 < b.originalEvent.deltaY ? a++ : a--, 0 > a && (a = 0), a >= e && (a = e - 1), c.eq(a).click())
    })
});
    </script>
    <link rel="icon" href="/favicon.ico" type="image/x-icon">
</head>
<body>
    <div id="gallery"></div>
    <div id="blog"></div>
    <div id="about"></div>
    <div id="contact"></div>
    <div id="help"></div>
    <div class="menu-icon">
        <img src="img/MENU_ICON.png">
        <p>menu</p>
    </div>
    <div class="menu">
        <ul>
            <li class="active"><a href="#gallery">gallery</a></li>
            <li><a href="#blog">blog</a></li>
            <li><a href="#about">about me</a></li>
            <li><a href="#contact">contact</a></li>
            <li><a href="#help">help</a></li>
        </ul>
    </div>
</body>
</html>

Последний раз редактировалось рони, 27.09.2016 в 21:55.
Ответить с цитированием
  #4 (permalink)  
Старый 26.09.2016, 16:43
Профессор
Отправить личное сообщение для warren buffet Посмотреть профиль Найти все сообщения от warren buffet
 
Регистрация: 08.07.2016
Сообщений: 1,332

Красиво, теперь осталось подписать, чтобы колесо крутили. )))
Ответить с цитированием
  #5 (permalink)  
Старый 29.09.2016, 10:59
Аватар для lawish
Новичок на форуме
Отправить личное сообщение для lawish Посмотреть профиль Найти все сообщения от lawish
 
Регистрация: 29.09.2016
Сообщений: 1

Симпатичное меню
Ответить с цитированием
  #6 (permalink)  
Старый 29.09.2016, 11:06
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,492

Ну а можно заюзать нативный scrollIntoView, без всяких красивостей.)
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В каком направлении и сколько раз был прокручен скролл webrepa Events/DOM/Window 19 12.02.2016 14:45
FancyBox переопределяет вертикальный скролл ? ilyas-> Элементы интерфейса 14 08.11.2014 16:55
Js scrollpane, постоянно виден скролл, как убрать? metaller92 jQuery 0 17.07.2013 11:23
Отключить скролл мышкой во время анимации окна ilya_ Общие вопросы Javascript 12 14.03.2013 09:42
увеличение картинки при наведении мышкой Sereban jQuery 10 31.08.2011 14:50