Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.06.2016, 18:27
Аватар для FreeZon
Аспирант
Отправить личное сообщение для FreeZon Посмотреть профиль Найти все сообщения от FreeZon
 
Регистрация: 01.08.2014
Сообщений: 44

Не изменяет свойство CSS
$(document).mousemove(function(logo){
	var e = e || window.event;
	n=getComputedStyle(document.documentElement).height.slice(0,-2);
	s=getComputedStyle(document.documentElement).width.slice(0,-2);
	//alert(s + 'z' + n ); // переменные не пустые...
	//document.getElementById('logo_img').style.transform = 'rotateX('+ n/2-e.pageY +' deg)';
	//document.getElementById('logo_img').style.transform = 'rotateY('+ -s/2-e.pageY +' deg)';
	$('#logo_img').css('transform', 'rotateX('+ n/2-e.pageY +' deg)');
	$('#logo_img').css('transform', 'rotateY('+ s/2-e.pageX +' deg)');
});


Я хочу сделать чтобы при движение мышкой блок двигался, и наклонялся в сторону мышки.
Написал код... В итоге, он мне не изменяет свойство цсс, как будто такого элемента #logo_img нет, хотя он есть, но к нему ни чего не применяется... Проверял через алерт переменные и работает вообще mousemove, да все работает. Пробовал изменять css через jq и сам js не там не там не изменяет...
Ответить с цитированием
  #2 (permalink)  
Старый 20.06.2016, 18:55
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

FreeZon,

$(document).mousemove(function(e){
  var n = getComputedStyle(document.documentElement).height.slice(0,-2);
  var s = getComputedStyle(document.documentElement).width.slice(0,-2);
  $('#logo_img').css('transform', 'rotateX('+ (n/2-e.pageY) +'deg)');
  $('#logo_img').css('transform', 'rotateY('+ (s/2-e.pageX) +'deg)');
});
Ответить с цитированием
  #3 (permalink)  
Старый 20.06.2016, 18:56
Кандидат Javascript-наук
Отправить личное сообщение для aklis Посмотреть профиль Найти все сообщения от aklis
 
Регистрация: 27.04.2015
Сообщений: 99

Пробел перед deg лишний. Это как минимум.
Ответить с цитированием
  #4 (permalink)  
Старый 20.06.2016, 18:56
Кандидат Javascript-наук
Отправить личное сообщение для aklis Посмотреть профиль Найти все сообщения от aklis
 
Регистрация: 27.04.2015
Сообщений: 99

Пардон, пока отвечал, уже ответили
Ответить с цитированием
  #5 (permalink)  
Старый 20.06.2016, 19:43
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

var logoImg = document.getElementById('logo_img');

window.onmousemove = function(e) {
    var values = [
         'rotateX('+ (this.innerHeight / 2 - e.pageY) + 'deg)',
         'rotateY('+ (this.innerWidth / 2 - e.pageX) + 'deg)'
    ];
    logoImg.style.transform = values.join(' ');
};

Последний раз редактировалось ruslan_mart, 20.06.2016 в 19:46.
Ответить с цитированием
  #6 (permalink)  
Старый 20.06.2016, 19:45
Аватар для FreeZon
Аспирант
Отправить личное сообщение для FreeZon Посмотреть профиль Найти все сообщения от FreeZon
 
Регистрация: 01.08.2014
Сообщений: 44

Я хотел как у него сделать: https://daneden.me/
Только с одним лого, но у меня не получается ни чего. Чет я не то считаю.... Поможет кто ? Объясните что и как нужно считать.
p.s я не хочу брать уже готовый его код я хочу понять как и что работает как вычитать по х и у объяснит кто ?...
Ответить с цитированием
  #7 (permalink)  
Старый 20.06.2016, 21:24
Аватар для FreeZon
Аспирант
Отправить личное сообщение для FreeZon Посмотреть профиль Найти все сообщения от FreeZon
 
Регистрация: 01.08.2014
Сообщений: 44

Видимо ни кто не знает..
Ответить с цитированием
  #8 (permalink)  
Старый 21.06.2016, 12:46
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

FreeZon,
В первом приближении... как черновик для дальнейшего развития
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" >
    <title>Untitled Page</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $(document).mousemove(function (e) {
               var n = getComputedStyle(document.documentElement).height.slice(0, -2);
               var s = getComputedStyle(document.documentElement).width.slice(0, -2);
                $('#logo_img').css('transform', 'rotateY(' + ((s / 2 - e.pageX) / 10) + 'deg) rotateX(' + (( e.pageY) / 10) + 'deg)');
              });
        });
    </script>
  </head>
  <body>
  <div id = 'logo_img' style="position:absolute;width:200px;height:200px;left:40%;">
   <img src="http://javascript.ru/forum/image.php?u=36419&dateline=1406918590" style="position:relative;width:100%;height:100%" >
  </div>
  </body>
</html>

Последний раз редактировалось Dilettante_Pro, 21.06.2016 в 13:15.
Ответить с цитированием
  #9 (permalink)  
Старый 21.06.2016, 15:12
Аватар для FreeZon
Аспирант
Отправить личное сообщение для FreeZon Посмотреть профиль Найти все сообщения от FreeZon
 
Регистрация: 01.08.2014
Сообщений: 44

Сообщение от Dilettante_Pro Посмотреть сообщение
FreeZon,
В первом приближении... как черновик для дальнейшего развития
<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" >
    <title>Untitled Page</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            $(document).mousemove(function (e) {
               var n = getComputedStyle(document.documentElement).height.slice(0, -2);
               var s = getComputedStyle(document.documentElement).width.slice(0, -2);
                $('#logo_img').css('transform', 'rotateY(' + ((s / 2 - e.pageX) / 10) + 'deg) rotateX(' + (( e.pageY) / 10) + 'deg)');
              });
        });
    </script>
  </head>
  <body>
  <div id = 'logo_img' style="position:absolute;width:200px;height:200px;left:40%;">
   <img src="http://javascript.ru/forum/image.php?u=36419&dateline=1406918590" style="position:relative;width:100%;height:100%" >
  </div>
  </body>
</html>
Вот объясни теперь почему по Y в градусах мы должны из половины высоты вычесть координаты мыши по Х.
А в ротате Х ни чего вычитать не надо просто дели координаты мыши по У на чувствительность ?
Объясни как все это считается формула может
Ответить с цитированием
  #10 (permalink)  
Старый 21.06.2016, 15:39
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от FreeZon Посмотреть сообщение
Вот объясни теперь почему по Y в градусах мы должны из половины высоты вычесть координаты мыши по Х.
Не из половины высоты, а из половины ширины. Чтобы вращение по оси Y шло вокруг середины картинки по горизонтали.
Сообщение от FreeZon
А в ротате Х ни чего вычитать не надо просто дели координаты мыши по У на чувствительность
Здесь вращение получилось вокруг верхнего края картинки.
Можно сделать и вокруг середины картинки по высоте:
rotateX(' + (( e.pageY - 100) / 10) + 'deg)'
где -100 - половина высоты картинки.
Если бы картинка была размещена в центре экрана, то можно было бы взять половину высоты экрана.
Почему в одном случае (e.pageY - 100), а в другом (s / 2 - e.pageX)?
Для достижения нужного визуального эффекта.
Поменяйте, посмотрите, сделайте как больше нравится
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
CSS свойство "content" без before и after. ruslan_mart (X)HTML/CSS 5 01.10.2013 19:28
Как проверить свойство css? metaller92 jQuery 1 05.07.2013 14:02
CSS свойство cursor и IE.... macexa (X)HTML/CSS 4 28.12.2011 12:49
Как изменить свойство css у всех элементов одного класса AlexJ Events/DOM/Window 7 19.03.2011 06:25
если (свойство css == 2) свойство css = 1; funkypublic Events/DOM/Window 1 09.06.2010 17:39