Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 26.11.2018, 12:49
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от i501
Скрипт я привел
Но не полный. Значительная часть функциональности скрипта описана словами.
Что такое img.width/img.height ?

Сообщение от i501
У <body> есть фоновый рисунок.
Как задан?
Ответить с цитированием
  #12 (permalink)  
Старый 26.11.2018, 14:50
Интересующийся
Отправить личное сообщение для i501 Посмотреть профиль Найти все сообщения от i501
 
Регистрация: 25.11.2018
Сообщений: 23

img = new Image() ;
img.src = 'bg.jpg';

У body тот же имж через css
Ответить с цитированием
  #13 (permalink)  
Старый 26.11.2018, 16:04
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

<style>
body {
  background: url(https://bandaumnikov.ru/files/posting/tablica-pifagora.jpg) no-repeat;
  background-size: 100%;
}
div.central {
   position:fixed;
  background: url(https://bandaumnikov.ru/files/posting/tablica-pifagora.jpg) no-repeat;
   opacity:1;
   top:40px;
   left:200px;
   width:300px;
   border:1px solid black;
   z-index:2;
}
div.left {
   position:fixed;
   top:50px;
   left:50px;
   width:300px;
   border:1px solid black;
      z-index:1;
}
</style>
<body>
  <div class = "left">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
   </div>
  <div class = "central">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
   </div>
</body>
<script>
   var central = document.querySelector("div.central");
   central.style.backgroundPosition = "-" + (central.offsetLeft + 1) + " -" + (central.offsetTop + 1);
   central.style.backgroundSize = ((document.querySelector("body").clientWidth / central.clientWidth) * 100) + "%";

</script>


+ 1 это толщина бордера

PS: чуть-чуть расползание есть..

Последний раз редактировалось Dilettante_Pro, 26.11.2018 в 16:23.
Ответить с цитированием
  #14 (permalink)  
Старый 26.11.2018, 20:20
Интересующийся
Отправить личное сообщение для i501 Посмотреть профиль Найти все сообщения от i501
 
Регистрация: 25.11.2018
Сообщений: 23

Всячески плюсую, пан профэссор.
Ваша метода через querySelector намного проще.
Поработаю напильником. Надеюсь получица
Ответить с цитированием
  #15 (permalink)  
Старый 28.11.2018, 20:56
Интересующийся
Отправить личное сообщение для i501 Посмотреть профиль Найти все сообщения от i501
 
Регистрация: 25.11.2018
Сообщений: 23

Все вроде работает (спасибо Dilettante_Pro), но нарисовалась еще одна проблема - при клике на блок
- копируем в блок фоновую картинку
- подгоняем масштаб и положение
- плавно увеличиваем блок. И фон масштабируется вместе с блоком - это проблема. Можно конечно в цикле каждый раз при увеличении на, скажем 1%, вызывать скрипт. Вопрос - как зафиксировать фон блока, что бы он не масштабировался вместе с блоком?
Ответить с цитированием
  #16 (permalink)  
Старый 28.11.2018, 22:43
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068


<!DOCTYPE html>

<html>
<head>
  <title>Untitled</title>
  <meta charset="utf-8">

</head>

<body>
<style>
body {
  background: url(https://bandaumnikov.ru/files/posting/tablica-pifagora.jpg) no-repeat;
  background-size: 100%;
  background-position: 0 0;
  transition: 2s;
}
div.central {
   background-size: inherit;
   position:fixed;
   background: url(https://bandaumnikov.ru/files/posting/tablica-pifagora.jpg) no-repeat ;
   opacity:1;
   top:140px;
   left:200px;
   width:300px;
   height: 130px;
   border:1px solid black;
   z-index:2;
   overflow: hidden;
   transform: scale(0);
   transition: transform 5s;
}
div.left {
   position:fixed;
   top:50px;
   left:50px;
   width:300px;
   border:1px solid black;
   z-index:1;
}
.central.big {
  transform: scale(1);
}

</style>
<body>
  <div class = "left">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
   </div>
  <div class = "central">Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
   </div>
</body>
<script>
   var central = document.querySelector("div.central");
   central.style.backgroundPosition = central.offsetLeft  + "px " + central.offsetTop + "px";
   window.setTimeout(function() {
    central.classList.add("big")
   }, 2000)
   window.setTimeout(function() {
     document.body.style.backgroundPositionX  = "300px";
   }, 15000)
</script>

</body>
</html>
Ответить с цитированием
  #17 (permalink)  
Старый 29.11.2018, 10:14
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

рони,
div.central {
   background-size: inherit;

central.style.backgroundPosition = central.offsetLeft  + "px " + central.offsetTop + "px";

Красиво!
Ответить с цитированием
  #18 (permalink)  
Старый 29.11.2018, 10:50
Интересующийся
Отправить личное сообщение для i501 Посмотреть профиль Найти все сообщения от i501
 
Регистрация: 25.11.2018
Сообщений: 23

Круто. инхерит заменил большинство моих велосипедов js
Спасибо. Попробую на реальном коде
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать что бы при открытии блока, вместе с ним двигался другой блок(стрелки)? freeman0204 Общие вопросы Javascript 2 21.02.2016 15:15
Как подставить переменные js в ID блока? malsyst Общие вопросы Javascript 4 05.12.2015 13:56
Как скосить углы у блока soltx Элементы интерфейса 1 09.05.2015 01:16
Как объединить 4 одинаковых функции Batyabest Общие вопросы Javascript 2 21.12.2013 22:53
как совместить скрипты? savinefim Общие вопросы Javascript 2 25.11.2013 15:47