Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.02.2019, 12:09
Аспирант
Отправить личное сообщение для alex-romanov Посмотреть профиль Найти все сообщения от alex-romanov
 
Регистрация: 02.02.2019
Сообщений: 67

как сфокусироваться на появляемом элементе
Например есть таблица.

По клику на строке, строка выделяется и внизу появляется надпись.

/*выборка нескольких строк*/
        function fetchRows() {
            var selectorMessage = '.' + divMessage;

            $('table td').hover(function () {

                $(this).parent().find('td').css('background', 'rgb(199, 255, 181)');

                $(this).click(function () {

                    var idCell = $(this).parent().find('td').eq(0).html();

                    outputMessage(selectorMessage, 'Удалить выбранную строку c индексом : ' + idCell + ' ?');
                    $(selectorMessage).focus();
                });


            }, function () {
                $(this).parent().find('td').css('background', 'white');

                outputMessage(selectorMessage, '');

                if (options.isUsedDataTables) {
                    applyStyleForDataTables();
                } else {
                    applySettingsDefault();
                }
            });

        }



но вся страница имеет полосы прокрутки (добавлены были автоматически без моего участия плагином dataTables)
и сообщение, при выделении строки, не находится в видимой части страницы.

Можно ли сделать так, чтобы как только на странице появляется динамически, какой-то элемент, то он бы автоматически показывался в области видимости, а вся остальная часть поднималась, чтобы не делать это с помощью полос прокрутки ?
Ответить с цитированием
  #2 (permalink)  
Старый 19.02.2019, 08:51
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,215

Сообщение от alex-romanov
Можно ли сделать так, чтобы как только на странице появляется динамически, какой-то элемент, то он бы автоматически показывался в области видимости, а вся остальная часть поднималась, чтобы не делать это с помощью полос прокрутки ?
Как вариант...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$('button').click(function(){
		var o=$('#test tbody');
		var i=o.find('tr').length;
		var html='<tr id="t'+i+'"><td>'+i+'</td></tr>'
		o.append(html);
		top.location='#t'+i;
	});
});
</script>
</head>
<body>
<button>Add</button>
<table id='test'>
<tr>
	<td>0</td>
</tr>
<tr>
	<td>1</td>
</tr>
<tr>
	<td>2</td>
</tr>
<tr>
	<td>3</td>
</tr>
<tr>
	<td>4</td>
</tr>
</table>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 23.03.2019, 11:32
Аспирант
Отправить личное сообщение для alex-romanov Посмотреть профиль Найти все сообщения от alex-romanov
 
Регистрация: 02.02.2019
Сообщений: 67

top.location


не дает загрузке страницы и выдает ошибку.
у меня footer зафиксирован и если там элементов появляется много (динамически), то работает прокрутка
<div class="divFooter" style="background: white none repeat scroll 0% 0%; border-top: 2px dotted rgb(255, 169, 83); position: fixed; left: 0px; bottom: 0px; height: 25%; width: 100%; margin-top: 1%; overflow: auto; scrollbar-width: none;"><div class="divMessage"><div class="divMessageTips" style="margin-left: 15px;"><label class="checkboxToggleLabel"><input class="inputCheckbox" type="checkbox" style="position: absolute; z-index: -1; opacity: 0; margin: 10px 0px 0px 10px;"><div class="divBaseToggle" style="position: absolute; padding: 0px 0px 0px 45px; cursor: pointer; top: 5px; left: 5px; height: 20px; border-radius: 13px; background: rgb(205, 209, 218) none repeat scroll 0% 0%; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 3px inset; transition: all 0.2s ease 0s;"></div><div class="toggleOff" style="position: absolute; top: 6.4px; left: 6px; width: 17px; height: 17px; border-radius: 45px; background: rgb(255, 255, 255) none repeat scroll 0% 0%; box-shadow: rgba(0, 0, 0, 0.3) 0px 2px 5px; transition: all 0.2s ease 0s; display: none;"></div><div class="toggleOn" style="background: rgb(159, 212, 104) none repeat scroll 0% 0%; left: 30px; position: absolute; top: 6.4px; width: 17px; height: 17px; border-radius: 45px; transition: all 0.2s ease 0s; box-shadow: rgba(0, 0, 0, 0.2) 0px 2px 3px inset, rgba(255, 255, 0, 0.7) 0px 0px 0px 3px; display: inline;"></div><div class="showTips" style="padding-left: 55px; padding-top: 5px; color: rgb(73, 80, 199); cursor: pointer; font-style: italic;">Скрыть подсказки.</div></label><div class="divShowFewTips" style="color: rgb(168, 168, 168); font-size: 14px; display: inline;"><p class="tipEditCell">* Для редактирования ячейки, выполните двойной щелчок манипулятором мышь по нужной ячейке.</p><p class="tipSelectRow">* Для выделения строки таблицы, выполните одиночный щелчок манипулятором мышь по нужной ячейке. Для отмены выделения строки,  выполните одиночный щелчок еще раз.</p><p class="tipControlScrollBar">* Управление полосами прокрутки, может выполняться либо колесом манипулятора мышь ("вперед-назад", "влево-вправо"), либо клавишами стрелок ("влево-вправо","вверз-вниз") .</p></div></div><div class="selectorButtonFlex" style="display: flex; justify-content: center; margin-top: 2%; margin-bottom: 2%; flex-direction: row;"><div class="buttonDeleteDivFlex" style="margin-top: 2%; margin-bottom: 2%; display: flex; flex-direction: column; justify-content: center; width: 30%;"><label class="labelDelete" style="font-size: 18px; font-family: Calibri; font-weight: 400; font-style: italic; color: rgb(153, 153, 153); padding-left: 10px; margin-bottom: 5px;">Удалить данные...</label><button class="buttonDelete" style="width: 30%; font-family: Calibri; font-style: italic; font-size: 23px; padding-top: 4px; border-radius: 10px; margin-top: 5px; color: rgb(255, 255, 255); background: rgb(255, 0, 153) none repeat scroll 0% 0%;">Удалить</button></div></div></div><div class="divErrMessage" style="color: rgb(255, 0, 0);">список ошибок!</div></div>


вот такая структура.
Здесь видна одна из кнопок, которая появляется динамически.
Я хотел бы чтобы эти кнопки появлялись в видимой части экрана, но

top.location = '.buttonDelete';


удаляет страницу и вместо этого формируется страница с ошибкой

<body xmlns="http://www.w3.org/1999/xhtml" dir="ltr" class="neterror">
    <!-- ERROR ITEM CONTAINER (removed during loading to avoid bug 39098) -->
    

    <!-- PAGE CONTAINER (for styling purposes only) -->
    <div id="errorPageContainer" class="container">
      <div id="text-container">
        <!-- Error Title -->
        <div class="title">
          <h1 class="title-text">Файл не найден</h1>
        </div>

        <!-- LONG CONTENT (the section most likely to require scrolling) -->
        <div id="errorLongContent">

          <!-- Short Description -->
          <div id="errorShortDesc">
            <p id="errorShortDescText">Firefox не может найти файл /D:/!_apache-maven-projects/....../buttonDelete.</p>
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
initComponent: Как получить данные родителя и как получить store для вызова load()? Пролетарий ExtJS 76 04.07.2015 09:22
Как сделать что бы картинки с другого url отображались как свои zlodey Серверные языки и технологии 1 04.05.2015 21:30
Как обратиться к элементу, находящемуся в другом элементе по нескольким классам? egorychmaster jQuery 3 15.04.2015 11:55
Как правильно реализовать такой функционал? Julian Общие вопросы Javascript 3 16.01.2015 12:34
КАК сэмулировать клик мышкой на элементе из javascript? Brook Events/DOM/Window 13 24.04.2012 23:14