Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.07.2016, 09:20
Новичок на форуме
Отправить личное сообщение для Artем Посмотреть профиль Найти все сообщения от Artем
 
Регистрация: 04.07.2016
Сообщений: 4

Появление исчезновение элемента при прокрутке страницы
Добрый день!

Подскажите, пожалуйста, как реализовать на сайте механизм появления элемента при прокрутке экрана - элемент движется по горизонтальной оси (с права налево, или наоборот), в зависимости от прокрутки экрана вверх или вниз. Данный механизм реализован на сайте: mhmgroup.ae
Есть похожий код, но в нем элемент будет просто появляться и исчезать, но я никак не могу найти решение для необходимой мне цели:
<script type="text/javascript">
jQuery(function(f){
    var element = f('#back-top');
    f(window).scroll(function(){
        element['fade'+ (f(this).scrollTop() > 200 ? 'In': 'Out')](500);           
    });
});
</script>

Спасибо

Последний раз редактировалось Artем, 04.07.2016 в 11:18.
Ответить с цитированием
  #2 (permalink)  
Старый 04.07.2016, 10:54
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

Artем,
html сделайте и
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #3 (permalink)  
Старый 04.07.2016, 11:19
Новичок на форуме
Отправить личное сообщение для Artем Посмотреть профиль Найти все сообщения от Artем
 
Регистрация: 04.07.2016
Сообщений: 4

Сообщение от рони Посмотреть сообщение
Artем,
html сделайте и
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Оформил. Вы можете помочь мне в моем вопросе?
Ответить с цитированием
  #4 (permalink)  
Старый 04.07.2016, 12:06
Профессор
Отправить личное сообщение для Rasy Посмотреть профиль Найти все сообщения от Rasy
 
Регистрация: 17.06.2016
Сообщений: 509

Artем,
http://mynameismatthieu.com/WOW/
Ответить с цитированием
  #5 (permalink)  
Старый 04.07.2016, 12:11
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Artем,
<!DOCTYPE html>
<html>
<head>
    <style>
        .scroller 
        { position:fixed;
          top:10px;
          left:0px;
          width:50px;
          height:50px;
          background-color:red
            }
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            var element = $('#back-top');
            $(window).scroll(function () {
                element.css('left', $(this).scrollTop() * window.innerWidth / $("#container").height() + "px");
            });
        });
</script></head>
<body>
   <div id="container" style="position:absolute;width:100%;height:1500px"></div>
   <div id="back-top" class="scroller"></div>
</body>
</html>

Последний раз редактировалось Dilettante_Pro, 04.07.2016 в 12:42.
Ответить с цитированием
  #6 (permalink)  
Старый 04.07.2016, 12:20
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

вертикальный скролл горизонтальное перемещение
Artем,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   html{
    width: 100%;
    height: 3000px;
   }
  body{
    position: relative;
     overflow-x: hidden;
  }

  .first {
    background: #FFCC00;
    width: 100%;
    height: 200px;
    text-align:  center;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
     transition:  all .4s ease-out;
}


  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>

    $(window).load(
        function () {
            var l, min = 500, max = 1500, el = $(".first"), width = el.width() ;
            el.css({marginLeft : -width})
           $(window).scroll(function() {
      var scroll =  $(window).scrollTop();
    if(scroll > min && scroll < max )  l = - 104 + (scroll - min)/(max - min) * 208 + "%";
    if(scroll < min) l = "-104%";
    if(scroll > max) l = "104%";
    if(scroll > min + 300 &&  scroll < max - 300 ) l = "0%";
    el.css({marginLeft : l})
})



        }
    );




  </script>
</head>

<body>

<div class='first'>
  блок в середине страницы
</div>


</body>

</html>

Последний раз редактировалось рони, 04.07.2016 в 12:29.
Ответить с цитированием
  #7 (permalink)  
Старый 04.07.2016, 15:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,069

Artем,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
   html{
    width: 100%;
    height: 3000px;
   }
  body{
    position: relative;
     overflow-x: hidden;
  }

  .first {
    background: #FFCC00;
    width: 100%;
    height: 200px;
    text-align:  center;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto 0 ;
    transition:  all 1.2s ease-out ;
}


.right{
    margin-left : 104%;
}
.left{
    margin-left : -104%;
}

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>

$(window).load(function() {
    var min = 500,
        max = 1500,
        el = $(".first");
    $(window).scroll(function() {
        var scroll = $(window).scrollTop();
        scroll < min ? el.addClass("left") : el.removeClass("left");
        scroll > max ? el.addClass("right") : el.removeClass("right")
    })
});  </script>
</head>

<body>

<div class='first left'>
  блок в середине страницы
</div>


</body>

</html>
Ответить с цитированием
  #8 (permalink)  
Старый 11.07.2016, 21:21
Новичок на форуме
Отправить личное сообщение для Artем Посмотреть профиль Найти все сообщения от Artем
 
Регистрация: 04.07.2016
Сообщений: 4

Dilettante_Pro,
Здравствуйте! Спасибо большое Вам за ценную информацию! Сайт я делаю для себя, по урокам в интернете, но по данному моменту мне с трудом удавалось найти правильное решение. Перечитал много одинаковых статей с разными вариантами подключения jQuery, но ничего не выходит. Явно что-то просто недопонимаю и упускал. Ваши знания помогли.
Прошу Вас, пожалуйста, помочь разобраться в некоторых моментах:
1. Как реализовать код, чтобы элемент (#back-top), начал смещаться с исходной позиции (на которой он размещен изначально), при прокрутке экрана? Сейчас же он смещается с левой крайней стороны экрана.
2. Пробовал различные вариации, чтобы при прокрутке экрана вниз, элемент (#back-top), начал двигаться с права налево до определенной позиции (например, до середины экрана), а не наоборот. Для этого менял значение "Left" в коде на "Right", но ничего не получилось. В чем я не прав?
3. Для затухания элемента (#back-top) при прокрутке экрана, пример данной анимации можно увидеть на сайте http://mhmgroup.ae/, я дополнил Ваш код следующим:
var scrollTop = $(window).scrollTop();
        var move = scrollTop / coeff;
        element['fade' + (scrollTop > 800? 'Out' : 'In')](2500);
        element.css('marginLeft', move);


Возможно ли сделать, чтобы затухание элемента начиналось постепенно, от одной точки до другой, до полного исчезновения, при прокрутке экрана (как в примере на сайте)? Приведенный выше код скрывает элемент лишь после прохождения точки в 800px. с указанным временным интервалом.

Спасибо!
Ответить с цитированием
  #9 (permalink)  
Старый 11.07.2016, 21:23
Новичок на форуме
Отправить личное сообщение для Artем Посмотреть профиль Найти все сообщения от Artем
 
Регистрация: 04.07.2016
Сообщений: 4

рони,
Здравствуйте! Благодарю за помощь!
Ответить с цитированием
  #10 (permalink)  
Старый 12.07.2016, 14:17
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Artем,
Движение с определенной позиции справа налево с затуханием
<!DOCTYPE html>
<html>
<head>
    <style>
        .scroller 
        { position:fixed;
          top:10px;
          right:100px;
          width:50px;
          height:50px;
          background-color:red
            }
    </style>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
    <script type="text/javascript">
        $(function () {
            var element = $('#back-top');
             $(window).scroll(function () {
                element.css('right',100 +  $(this).scrollTop() * (window.innerWidth - 200) / $("#container").height() + "px");
                element.css('opacity', 1 - $(this).scrollTop() / $("#container").height());
            });
        });
</script></head>
<body>
   <div id="container" style="position:absolute;width:100%;height:1500px"></div>
   <div id="back-top" class="scroller"></div>
</body>
</html>

Последний раз редактировалось Dilettante_Pro, 12.07.2016 в 14:59.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Появление/исчезновение элемента при прокрутке страницы JQuery 0leg9 Общие вопросы Javascript 37 21.09.2017 07:41
Выбор текущего (при прокрутке) элемента slon_js Events/DOM/Window 4 04.01.2014 18:49
Эффект при прокрутке страницы Baskerville42 jQuery 1 17.05.2013 02:29
Автозапуск скрипта при загрузке страницы HepoH Javascript под браузер 3 31.03.2012 22:27
При прокрутке страницы div залазит на футер. Как поправить? DonaldDrug jQuery 8 27.03.2012 02:15