Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 2
Регистрация: 06.10.2012
Сообщений: 33

Добавить прокрутку на страницу при выборе контента

25.10.2013, 10:21. Показов 1183. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Очередная загвоздка....У меня имеется фиксированный футер, который прокручивается вместе со страницей, на нем меню. При нажатии на кнопку меню. он поднимается вверх на высоту окна. Контент в нем разной высоты, если контент больше высоты окна, нужно добавить полосу прокрутки. Вроде бы все легко, но не получается. ДУмала насчет позиционирования, если ставить fixed высота контента меняется, при absolute relative нет..
HTML5
1
2
3
4
5
6
7
<div id="third_foot">
        <div class="footer_1 footer_btn" id="Tab1">1</div> //кнопка1
        <div class="footer_2 footer_btn" id="Tab2" >2</div> //кнопка2
        <div class="footer_3 footer_btn" id="Tab3" >3</div> //кнопка3
        <div class="footer_5" onclick="Close_Window();" id="Tab5"><img src="design/default/images/close1.png"alt="14">
        </div>
<div class="content_footer">    <div id="Content_Tab2" class="infocontent" style="display: none;"></div>//контент при нажатии на вторую кнопку
Стиль:
CSS
1
2
3
4
5
6
#Content_Tab2{
    position:absolute;
    bottom:-118px;
    width:1300px;
    float:left;
}
и собственно скрипт
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
    var y=0;
                var height=window.innerHeight-46;
                $("#third_foot").css({'top':height});
                $('.infocontent').css({'top':height+46});
                $('.footer_btn').click (function() { 
                    
                    $('.footer_btn').removeClass('footer_select');
                    $(this).addClass('footer_select');
                    Select_info(this);
                    Open_Window(this);
                });
                function Select_info(elem) //смена вкладок  
                {       //alert('.content_footer #Content_'+$id)
                    $id=elem.id;
                    $('.infocontent').css({'display':'none'});
                    $('.content_footer #Content_'+$id).css({'display':'block'});
                };
                    
                function Close_Window(){//опустить при нажатии
                    if(y==1){
                    //  $("body").css("overflow", "auto");
                        $('.infocontent').animate( {"top": document.body.clientHeight+'px'},400);
                        $("#third_foot").animate( {"top":+document.body.clientHeight-46+'px'},400);
                        $("#index-wrapper").fadeIn(400);                        
                        $('.footer_btn').removeClass('footer_select');  
                        y=0;}   
                };
                function Open_Window(){ //поднять при нажатии
            
                    if(y!=1){
                        //$("body").css("overflow", "hidden"); //эксперимент со скролом
                        $('.infocontent').animate( {"top":height, 'top':'46px'},300);
                        $("#third_foot").animate( {"top":height, 'top':'0px'},300); 
                        y=1;
                        $("#index-wrapper").fadeOut(400);   
                        $("#top_background").fadeOut(400);
                        $("#first_foot").fadeOut(400);
                        $("#second_foot").fadeOut(400);
                    
                        
                    }
                };
                
                var block = $('#third_foot');
                var content=$('.infocontent')
                var position = block.position();
                var windowpos = 0;
                window.onscroll = function () {
                wintop = $(window).scrollTop();
                if(wintop<position.bottom+10){
                    block.css({position: 'absolute', bottom: '0px'});
                }else{
                    block.css({position: 'fixed', bottom: '10px'});
                    };
                }
                
                jQuery(window).resize(function(element) { //ресайз
                var $id=element.id; //переменная не передается почему-то, нужна, чтобы определить какая вкладка открыта
                var win_h=window.innerHeight;
                var element_h=$('.content_footer #Content_'+$id).height();//выбор контента
                    if(y==1){
                        block.css({top: "0"});
                        content.css({top: 46});
                        y=1
                    }
                    else{
                        block.css({top: win_h-46});
                        content.css({display: 'none'});
                    }
 
                    //console.log(element_h+'>'+win_h);
                    if(element_h>win_h){
                        $("body").css("overflow-y","auto");
                    }
                    else{
                    $('body').css({"overflow-y":"hidden"});
                    }
                });
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.10.2013, 10:21
Ответы с готовыми решениями:

Подгрузка контента при выборе
Здравствуйте! Подскажите, пожалуйста, как сделать вот так же как здесь. То есть, при выборе из выпадающего списка сразу подгружался...

Смена контента при выборе города
Здравствуйте. Пытаюсь сделать следующее: 4 колонки, данные берутся из базы. В зависимости от выбранного города данные в этих колонках...

Изменение контента страницы при выборе другого города
Здравствуйте, стоит следующая задача, на примере этого сайта rus-rbt.ru, хотелось бы понять как можно сделать так на своем. Например я...

2
 Аватар для nonamez123
189 / 185 / 54
Регистрация: 23.10.2010
Сообщений: 1,336
25.10.2013, 10:56
Попробуй добавить
CSS
1
2
max-height: 100px /*Тут забей максимальное значение блока*/
overflow: auto;
По идеи скролл должен будет сам автоматом выскакивать при превышении максимального значения.

Например http://jsfiddle.net/nonamez/ET9Ju/
0
0 / 0 / 2
Регистрация: 06.10.2012
Сообщений: 33
25.10.2013, 11:22  [ТС]
Согласна, но тогда прокрутка появляется непосредственно у блока Tab3, то есть контент...а мне нужно, чтоб у body был
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.10.2013, 11:22
Помогаю со студенческими работами здесь

Как сделать вывод определенного контента при выборе значения <option> из <select>
Попытаюсь объяснить понятней :) Хочу реализовать такой тип вывода контента, когда пользователь выбирает из выпадающего списка (черех html...

Переход на страницу при выборе пункта в Select
подскажите: мне нужно сделать чтобы при выборе пункта в меню Select оно перебрасывало на другую страницу само меню сделал, но вот как...

При выборе из списка загружать страницу с параметром?
Есть форма В ней присутствует список, в который загружается из базы данных некие значения. Пример: &lt;form action='list.asp'...

Переход на страницу при выборе элемента в select
вот сделал поле со списком &lt;form action=&quot;price.php&quot;&gt; &lt;p&gt;&lt;b&gt;Поиск авто по цене&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;select name=&quot;id&quot;&gt; ...

Если контента больше становится сделать прокрутку
Как можно сделать фиксированный блок ( модальное окно ) , если там контента появляется больше сделать прокрутку? &lt;div...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru