Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.03.2018, 13:57
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

MouseEvent у window.pageYOffset???
Доброго времени всем.

Есть таблица, при клике на строке таблица скрывается, вместо неё появляется div с элементами строки (для редактирования). В div'е есть кнопочка Exit, при нажатии на которую осуществляется remove этого div'а и возвращает таблице вид:

display = 'table';


Хотелось бы, чтобы при выходе страница скролилась в первоначальное положение. Однако вот такой казус - сия переменная:

var scrolledY = window.pageYOffset;


становиться MouseEvent + некоторое кол-во параметров (это в консоли пронаблюдал), если вызвать редактирование строки (появление div и скрытие таблицы).
Ответить с цитированием
  #2 (permalink)  
Старый 02.03.2018, 14:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

atanov,
сделайте минимальный макет
Ответить с цитированием
  #3 (permalink)  
Старый 02.03.2018, 16:59
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

рони,
примерно так:

table{border-collapse:collapse;border:solid black 1px;display:table;}
.edivedit{background-color:grey;height:100px;width:100px;}


<meta http-equiv = "Content-Type" content = "text/html" charset = "utf-8">
<link rel = "stylesheet" type = "text/css" href = "19.css">
<table><tbody>
<tr><td>1</td><td>1</td><td>1</td></tr>
<tr><td>2</td><td>2</td><td>2</td></tr>
<tr><td>3</td><td>3</td><td>3</td></tr>
</tbody></table>
<script src = "19.js" type = "text/javascript"></script>


document.getElementsByTagName('table')[0].onclick = getS;
var scrolledY = window.pageYOffset;
function getS(){
document.getElementsByTagName('table')[0].style.display = 'none';
var divforedit = document.createElement('div');
divforedit.className = 'edivedit';
divforedit.id = 'ediv';
document.body.appendChild (divforedit);
var ebutton = document.createElement('button');
//ebutton.className = 'button-' + buttonnames[i];
ebutton.id = 'ebutton';
ebutton.innerHTML = 'Exit';
divforedit.appendChild (ebutton);
document.getElementById('ebutton').onclick = exit;
}
function exit(scrolledY){
	document.getElementById('ediv').remove();
	document.getElementsByTagName('table')[0].style.display = 'table';
	console.log(scrolledY);
}
Ответить с цитированием
  #4 (permalink)  
Старый 02.03.2018, 17:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

atanov,
<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
table{border-collapse:collapse;border:solid black 1px;display:table;}
.edivedit{background-color:grey;height:100px;width:100px;}

p {
  height: 1000px;
}

 </style>


</head>

<body>
<p></p>
<table><tbody>
<tr><td>1</td><td>1</td><td>1</td></tr>
<tr><td>2</td><td>2</td><td>2</td></tr>
<tr><td>3</td><td>3</td><td>3</td></tr>
</tbody></table>
 <script>
    document.getElementsByTagName('table')[0].onclick = getS;
var scrolledY;
function getS(){
scrolledY = window.pageYOffset;
document.getElementsByTagName('table')[0].style.display = 'none';
var divforedit = document.createElement('div');
divforedit.className = 'edivedit';
divforedit.id = 'ediv';
document.body.appendChild (divforedit);
var ebutton = document.createElement('button');
//ebutton.className = 'button-' + buttonnames[i];
ebutton.id = 'ebutton';
ebutton.innerHTML = 'Exit';
divforedit.appendChild (ebutton);
document.getElementById('ebutton').onclick = exit;
}
function exit(){
  document.getElementById('ediv').remove();
  document.getElementsByTagName('table')[0].style.display = 'table';
  window.scrollTo( 0, scrolledY);
}

  </script>

</body>
</html>
Ответить с цитированием
  #5 (permalink)  
Старый 02.03.2018, 17:30
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

рони, спасибо большое, этот пример рабочий.
Однако в моём коде функция getS() находится внутри другой функции, в которой есть window.event. Чувствую, что из-за этого в exit() scrolledY попадает undifined Такое может быть?
Ответить с цитированием
  #6 (permalink)  
Старый 02.03.2018, 17:33
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от atanov
Такое может быть?
нет, если scrolledY вне функций
Ответить с цитированием
  #7 (permalink)  
Старый 02.03.2018, 17:47
Профессор
Отправить личное сообщение для atanov Посмотреть профиль Найти все сообщения от atanov
 
Регистрация: 27.06.2016
Сообщений: 180

рони, спасибо!!!
Я осёл, поставил
var scrolledY = window.pageYOffset;
и думаю чё не работает
Ответить с цитированием
Ответ



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

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