简体   繁体   English

jQuery视差背景与鼠标悬停一起移动

[英]JQuery Parallax Background moving with mouseover

I have implemented horizontal parallax background following this tutorial . 本教程之后,我已经实现了水平视差背景。

I want to have the same effect vertically . 我想垂直产生相同的效果。 Please Help. 请帮忙。

This is my code so far, 到目前为止,这是我的代码,

<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Untitled Document</title>
        <link rel="stylesheet" type="text/css" href="style.css" />
        <script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
        <script>
            var currentX = '';
            var movementConstant = .015;
            $(document).mousemove(function(e) {
                if(currentX == '') currentX = e.pageX;
                var xdiff = e.pageX - currentX;
                currentX = e.pageX;
                $('.parallax div').each(function(i, el) {
                    var movement = (i + 1) * (xdiff * movementConstant);
                    var newX = $(el).position().left + movement;
                    $(el).css('left', newX + 'px');
                });
            });
        </script>
        <style>
            .parallax {
                position: absolute;
                width: 100%;
                height: 800px;
                overflow: hidden;
                left: 0;
            }
            .water {
                position: absolute;
                width: 100%;
                height: 800px;
                left:0;
                background-repeat: no-repeat;
                background-position: top center;
            }
            .water-layer1 {
                background-image: url(water-layer-1.png);
            }
            .water-layer2 {
                background-image: url(water-layer-2.png);
            }
            .water-layer3 {
                background-image: url(water-layer-3.png);
            }
            .water-layer4 {
                background-image: url(water-layer-4.png);
            }
        </style>


    </head>

    <body>
        <div class="parallax">
            <div class="water water-layer4"></div>
            <div class="water water-layer3"></div>
            <div class="water water-layer2"></div>
            <div class="water water-layer1"></div>
        </div>
    </body>
</html>

I'm on mobile so I can't test... try this: 我正在使用手机,因此无法测试...请尝试以下操作:

<script>
  var currentY = ''; 
  var movementConstant = .015;

  $(document).mousemove(function(e) { if(currentY == '') currentY = e.pageY; 

  var ydiff = e.pageY - currentY; 
  currentY = e.pageY;

  $('.parallax div').each(function(i, el) { var movement = (i + 1) * (ydiff * movementConstant); 

  var newY = $(el).position().top + movement; $(el).css('top', newY + 'px'); }); });     
 </script>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM