Jump to content
  • 0

Прокрутка содержимого блока


Suppy
 Share

Question

Здравствуйте! На сайте есть некоторый блок фиксированной высоту при переполнении которого должны появляться сверху и снизу кнопки прокрутки(хочется заменить не оч эстетичное overflow). Подскажите пожалуйста плагин к jquery если такой есть или другое готовое решение. Или на худой конец скажите пожалуйста куда копать.

Link to comment
Share on other sites

13 answers to this question

Recommended Posts

  • 0

В итоге написал свое решение, задача немного конкретизировалась и это по большей части для фотогалереи. Все блоки элементов(фотографий например) имеют фиксированную величину, которая указывается в скрипте. Это необходимо знать, чтобы вовремя убирать кнопки прокрутки. Дольше всего пришлось помучиться с кроссбраузерностью, но терь все работает. Вот, может кому пригодится..

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>
<style type="text/css">
.up-but {
cursor: pointer;
height: 20px;
width: 47px;
visibility: hidden;
background: url('up-but.gif') no-repeat;
margin-left: 67px;
}

.down-but {
cursor: pointer;
height: 20px;
visibility: hidden;
width: 47px;
background: url('down-but.gif') no-repeat;
margin-left: 67px;
}

.gallery {
width: 185px; height: 320px;
border: 2px solid black;
overflow: hidden;
position: relative;
}

.scroll {
position: relative;
top: 0;
}

</style>
<script type="text/javascript">
$(document).ready(function(){
var item_height=105;
var scroll_speed=600;
var item_num=0;
var cont_height=parseFloat($(".gallery").css("height"));
$(".gallery .scroll div").each(function() {item_num++;});
all_item_height=item_height*item_num;
var dif=all_item_height-cont_height;
if (dif > 0) $(".down-but").css("visibility", "visible");
$(".down-but").click(function(){
$(".scroll").animate({top: "-="+item_height}, scroll_speed);
$(".up-but").css("visibility", "visible");
dif=dif-item_height;
if (dif<0) $(".down-but").css("visibility", "hidden");
return false;
});
$(".up-but").click(function(){
$(".down-but").css("visibility", "visible");
$(".scroll").animate({top: "+="+item_height}, scroll_speed);
dif=dif+item_height;
if (dif+1 > all_item_height-cont_height) $(".up-but").css("visibility", "hidden");
return false;
});

});
</script>
</head>
<body>
<div class="up-but">Вверх</div>
<div class="gallery">
<div class="scroll">
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок1</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок2</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок3</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок4</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок5</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок6</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок7</div>
</div>
</div>
<div class="down-but">Вниз</div>
</body>
</html>

Link to comment
Share on other sites

  • 0

В данном конкретном случае для самодостаточности примера- скопировал и оценил (поддерживал бы форум вложения, выложил бы с кнопочками). А вообще это удобно. Если пользователь посещал любой сайт, грузящий библиотеку с Google Code ( тот же gmail), то она уже будет в кэше и соответственно загрузится мгновенно. Но с оправданностью такого решения можно конечно и поспорить.

Link to comment
Share on other sites

  • 0
В итоге написал свое решение, задача немного конкретизировалась и это по большей части для фотогалереи. Все блоки элементов(фотографий например) имеют фиксированную величину, которая указывается в скрипте. Это необходимо знать, чтобы вовремя убирать кнопки прокрутки. Дольше всего пришлось помучиться с кроссбраузерностью, но терь все работает. Вот, может кому пригодится..

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type="text/javascript"></script>
<style type="text/css">
.up-but {
cursor: pointer;
height: 20px;
width: 47px;
visibility: hidden;
background: url('up-but.gif') no-repeat;
margin-left: 67px;
}

.down-but {
cursor: pointer;
height: 20px;
visibility: hidden;
width: 47px;
background: url('down-but.gif') no-repeat;
margin-left: 67px;
}

.gallery {
width: 185px; height: 320px;
border: 2px solid black;
overflow: hidden;
position: relative;
}

.scroll {
position: relative;
top: 0;
}

</style>
<script type="text/javascript">
$(document).ready(function(){
var item_height=105;
var scroll_speed=600;
var item_num=0;
var cont_height=parseFloat($(".gallery").css("height"));
$(".gallery .scroll div").each(function() {item_num++;});
all_item_height=item_height*item_num;
var dif=all_item_height-cont_height;
if (dif > 0) $(".down-but").css("visibility", "visible");
$(".down-but").click(function(){
$(".scroll").animate({top: "-="+item_height}, scroll_speed);
$(".up-but").css("visibility", "visible");
dif=dif-item_height;
if (dif<0) $(".down-but").css("visibility", "hidden");
return false;
});
$(".up-but").click(function(){
$(".down-but").css("visibility", "visible");
$(".scroll").animate({top: "+="+item_height}, scroll_speed);
dif=dif+item_height;
if (dif+1 > all_item_height-cont_height) $(".up-but").css("visibility", "hidden");
return false;
});

});
</script>
</head>
<body>
<div class="up-but">Вверх</div>
<div class="gallery">
<div class="scroll">
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок1</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок2</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок3</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок4</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок5</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок6</div>
<div style="margin-top: 5px; background: #ededed; height: 100px; width: 180px">Блок7</div>
</div>
</div>
<div class="down-but">Вниз</div>
</body>
</html>

Интересное решение. А как сюда добавить, что бы скрол работал когда на мышке колесиком скролишь?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

  • Обсуждения

    • Актуальные контакты: Telegram: @Nikker_web E-Mail:   tarasevich.email@gmail.com Портфолио https://www.behance.net/d4d4186e Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ    
    • Актуальные контакты: Telegram: @Nikker_web E-Mail:   tarasevich.email@gmail.com   Разрабатываю дизайн групп в соц сетях, сайтов, приложений, другой дизайн под заказ   Портфолио https://www.behance.net/d4d4186e
    • Доброго всем времени суток. Прошу помощи. Научите принципу изменения футера. Движок Xenforo. Версия 2.2.10. Стиль дефолтный. Что именно нужно в итоге на фото примере. Мой шаблон app.footer less имеет следующее значение.  .p-footer { .xf-publicFooter(); a { .xf-publicFooterLink(); } } .p-footer-inner { .m-pageWidth(); .m-pageInset(); padding-top: @xf-paddingMedium; padding-bottom: @xf-paddingLarge; } .p-footer-row { .m-clearFix(); margin-bottom: -@xf-paddingLarge; } .p-footer-row-main { float: left; margin-bottom: @xf-paddingLarge; } .p-footer-row-opposite { float: right; margin-bottom: @xf-paddingLarge; } .p-footer-linkList { .m-listPlain(); .m-clearFix(); > li { float: left; margin-right: .5em; &:last-child { margin-right: 0; } a { padding: 2px 4px; border-radius: @xf-borderRadiusSmall; &:hover { text-decoration: none; background-color: fade(@xf-publicFooterLink--color, 10%); } } } } .p-footer-rssLink { > span { position: relative; top: -1px; display: inline-block; width: 1.44em; height: 1.44em; line-height: 1.44em; text-align: center; font-size: .8em; background-color: #4682B4; border-radius: 2px; } .fa-rss { color: white; } } .p-footer-copyright { margin-top: @xf-elementSpacer; text-align: center; font-size: @xf-fontSizeSmallest; } .p-footer-debug { margin-top: @xf-paddingLarge; text-align: right; font-size: @xf-fontSizeSmallest; .pairs > dt { color: inherit; } } @media (max-width: @xf-responsiveMedium) { .p-footer-row-main, .p-footer-row-opposite { float: none; } .p-footer-copyright { text-align: left; padding: 0 4px; // aligns with other links } }  
    • Нужны сайты с примерами верстки, типа https://css-tricks.com/. Типовые приемы и нестандартные на все случаи жизни. Накидайте ссылок.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy