Слайдер страницы на сайте

0

Я новичок в веб-программировании. Я хочу построить что-то вроде flip.hr. Меня интересовал эффект скольжения, созданный при нажатии на панель навигации в нижней части страницы. В настоящее время я знаю это, когда вы создаете гиперссылки на разные части страницы и нажимая на них, вы попадаете в определенную часть. Теперь я хочу создать эффект скольжения, как это делается здесь. Пожалуйста, помогите мне достичь этого.

3 ответа

3
Лучший ответ

LIVE DEMO

Это ужасно просто, допустим, у вас есть нижняя навигация и #pages DIV которые будут иметь в качестве первых детей желаемые страницы DIV:

<div id="pages">  
  <div id="home">HOME PAGE</div>
  <div id="about">ABOUT PAGE</div>
  <div id="products">PRODUCTS PAGE</div>
  <div id="contact">CONTACT</div> 
</div>

<table id="nav">
  <tr>
    <td><a href="#home">HOME</a></td>
    <td><a href="#about">ABOUT</a></td>
    <td><a href="#products">PRODUCTS</a></td>
    <td><a href="#contact">CONTACT</a></td>
  </tr>
</table>

все, что вам нужно, это установить position:fixed #nav внизу и установить absolute width и height 100% на ваших страницах:

#pages > div{
  position:absolute;
  width:100%;
  height:100%;
}
#pages div + div{ // To keep "HOME page" at 0 but push away all other pages
    left:-100%; /* note this */
}

// Style buttons and pages
#home,    a[href="#home"]    {background:#078;}
#about,   a[href="#about"]   {background:#780;}
#products,a[href="#products"]{background:#807;}
#contact, a[href="#contact"] {background:#088;}

#nav{
  position:fixed;
  bottom:0;
  width:100%;
  table-layout:fixed;
}
#nav a{
  display:block;
}

все, что вам нужно, это крошечный бит jQuery:

jQuery(function($){

    function showPage( pageID ){
      var pID = pageID || window.location.hash;
      $('#pages > div:gt(0)').animate({left: '-100%'}, 600);
      $(pID).stop().animate({left:0}, 600);
    }
    showPage();

    $('#nav a').click(function(){
      showPage( $(this).attr('href') );
    });

});

Обратите внимание на то, что навигационные привязки имеют то же самое имя привязки, что и относительный ID страниц. Теперь, чтобы объяснить:

$('#nav a').click(function(){

по умолчанию #pagename хеш #pagename в строке URL, теперь нам нужна только функция, которая будет считывать идентификатор целевой страницы с помощью переданного аргумента pageID OR (||), если не было аргументов, прочитайте window.location.hash с адресной панели.

Таким образом, вы убедитесь, что если я cpoy вставьте ссылку страницы другу, например:

http://www.example.com/#contact

showPage(); триггер функции приведет его к желаемой странице.

Внутри функции мы всегда держим домашнюю страницу в 0 левых пикселях, просто нацеливая все остальные страницы с помощью селектора jQuery :gt() (больше индекса):

$('#pages > div:gt(0)').animate({left: '-100%'}, 600); // speaks by itself

чем мы просто нацеливаем на нужный ID страницы, и мы анимируем его на месте.

  • Мы передали атрибут href привязанного href,
  • У загруженной страницы уже был hash в адресной строке.

С jQuery другой способ сделать это будет также просто

$('#nav a').click(showPage);

но, чем внутри нашей функции, мы должны ждать изменения HASH, прежде чем мы сможем применить любую анимацию. С этой целью setTimeout would be fine:

function showPage(){
  setTimeout(function(){
    $('#pages > div:gt(0)').animate({left: '-100%'}, 600);
    $(window.location.hash).stop().animate({left:0}, 600);
  },100);
}
showPage();
  • 0
    Огромное спасибо. Это супер полезно.
  • 0
    @ не знаю, пожалуйста! Я просто должен предупредить вас, когда вы новичок в SOverflow, в следующий раз, когда вы будете задавать вопросы, покажите некоторый код, указывающий на конкретную проблему, с которой вы столкнулись, в противном случае вы можете собрать отрицательные голоса или даже увидеть закрытый вопрос. Удачного кодирования
1

Если вы немного знакомы с jQuery, вы можете в конечном итоге использовать функцию.show() из jQuery UI, используя эффект slide.

Или вы можете сделать это только с помощью HTML/CSS, в Интернете есть много учебников, таких как этот, но с div, которые делают 100% ширину и высоту.

1

Фактически вы можете установить страницу как раздел и попытаться сделать преобразование в событии клика. Это будет очень полезно. Это поможет вам

Ещё вопросы

Сообщество Overcoder
Наверх
Меню