Nano Hash - криптовалюты, майнинг, программирование

Центрированный горизонтальный веб-макет с анимированным эффектом прокрутки

Мы создали центрированный горизонтальный веб-макет с анимированным эффектом прокрутки. У нас есть 5 меню, которые используют простой якорь для навигации между разными страницами. Поскольку вся страница статична, за исключением зоны body (контента), мы просто нацеливаем привязку на конкретный DIV. Так что скользит не вся страница, а только содержательная часть. Исследуемый эффект представляет собой плавную прокрутку с одной страницы на другую. Если мы нажмем на первый пункт меню, а затем на последний (5-й), все страницы будут скользить одна за другой до последней ... и до сих пор все в порядке.

Мы взяли пример кода с других сайтов (некоторые части css) и маленькие части jquery. Но когда мы нажимаем на какое-то меню, иногда оно ничего не делает, иногда не отображает хорошие слайды и, наконец, не скользит в правильном направлении (будет скользить в противоположном направлении), и мы застряли на этой части. .

HTML

<body>
    <div id="menu">
        <ul>
            <li><a href="#menu1">Page 1</a></li>
            <li><a href="#menu2">Page 2</a></li>
            <li><a href="#menu3">Page 3</a></li>
            <li><a href="#menu4">Page 4</a></li>
            <li><a href="#menu5">Page 5</a></li>
        </ul>
     </div>


    <div align="center" id="body">
      <div id="body_wrapper">
        <div class="body_content_content" id="menu1">menu1 page content</div>
        <div class="body_content_content" id="menu2">menu2 page content</div>
        <div class="body_content_content" id="menu3">menu3 page content</div>
        <div class="body_content_content" id="menu4">menu4 page content</div>
        <div class="body_content_content" id="menu5">menu5 page content</div>
      </div>
    </div>

</body>

CSS

#menu ul li {
 display:inline;   
}

#body {
  width:100%;
  height:200px;
  margin:auto;
  position:relative;
  border: 0px solid red;
  overflow:hidden;
  top:100px;
}

#body_wrapper {
  float:left;
  width:500%;
  padding:0;
  margin:0;
  height: 200px;
}

.body_content_content {
  float:left;
  width:20%;
  height:200px;
  #margin:10px 0;
  position:relative;
}

.body_content_content div:first {
  width:900px;
  padding:20px;
  margin:auto;
  float:none;   
}

JQUERY

$('a[href^="#"]').on('click',function(event){
      var $anchor = $(this);

      $('#body').stop().animate({
          scrollLeft: $($anchor.attr('href')).offset().left
      }, 1000);

      event.preventDefault();
  });

> См. веб-сайт

>> Вот скрипка

В скрипте вы можете установить CSS overflow:display; в идентификаторе #body и снова запустите скрипку, чтобы увидеть обычный div с 5 рядом один к одному div в нем.

Что ж, спасибо за помощь.


  • Хороший сайт, но я вижу проблему. Это странно, потому что кажется, что это должно работать. 18.10.2013
  • Это может помочь (проверка W3C): validator.w3.org/ 18.10.2013

Ответы:


1

Наконец, есть способ, которым это работает с помощью простого подключаемого модуля jquery Jquery.LocalScroll, и его легко реализовать.

Здесь вы можете увидеть полную информацию об авторе сайта плагина и демонстрация, где мы можем прокручивать 'X ', 'Y' или даже оба одновременно.

CSS/HTML не изменили просто блок JavaScript JQuery, который выглядит так:

$.localScroll.defaults.axis = 'xy';

// Scroll initially if there's a hash (#something) in the url 
$.localScroll.hash({
    target: '#content', // Could be a selector or a jQuery object too.
    queue:true,
    duration:1500
});

$.localScroll({
    target: '#body', // could be a selector or a jQuery object too.
    queue:true,
    duration:1000,
    hash:true,
    onBefore:function( e, anchor, $target ){
        // The 'this' is the settings object, can be modified
    },
    onAfter:function( anchor, settings ){
        // The 'this' contains the scrolled element (#content)
    }
});

Кроме того, вы должны добавить jquery.scrollTo-min.js и jquery.localsscroll-min.js, включенные в демонстрация.

И теперь все работает нормально в моем решении

07.11.2013
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

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

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..


© 2024 nano-hash.ru, Nano Hash - криптовалюты, майнинг, программирование