RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1093700
Accepted
Dan
Dan
Asked:2020-03-12 15:27:12 +0000 UTC2020-03-12 15:27:12 +0000 UTC 2020-03-12 15:27:12 +0000 UTC

如何制作像示例中那样平滑的滚动站点?[关闭]

  • 772
关闭 这个问题是题外话。目前不接受回复。

寻求调试帮助的问题(“为什么这段代码不起作用? ”)应该包括期望的行为、具体的问题或错误,以及在问题中重现它的最少代码。没有明确描述问题的问题对其他访问者毫无用处。请参阅如何创建一个最小的、独立的和可重现的示例。

2年前关闭。

改进问题

您能告诉我如何进行如此流畅的滚动吗? https://www.carineroitfeld.com/en

вёрстка
  • 2 2 个回答
  • 10 Views

2 个回答

  • Voted
  1. Best Answer
    Monkey Mutant
    2020-03-12T16:56:19Z2020-03-12T16:56:19Z

    这个效果我这里已经展示过了,我再展示一遍——不要注意svg中的洞,因为你需要平滑滚动

    在最底部,我签署了负责平滑滚动的内容

    用 jQuery 完成

    (function($) {
      jQuery.scrollSpeed = function(step, speed, easing) {
        var $document = $(document),
          $window = $(window),
          $body = $('html, body'),
          option = easing || 'default',
          root = 0,
          scroll = false,
          scrollY,
          view;
    
        if (window.navigator.msPointerEnabled) return false;
    
        $window.on('mousewheel DOMMouseScroll', function(e) {
          if ($('.js-aDialogOpened').length == 0) {
            var deltaY = e.originalEvent.wheelDeltaY,
              detail = e.originalEvent.detail;
            scrollY = $document.height() > $window.height();
            scroll = true;
    
            if (scrollY) {
              view = $window.height();
              if (deltaY < 0 || detail > 0)
                root = (root + view) >= $document.height() ? root : root += step;
              if (deltaY > 0 || detail < 0)
                root = root <= 0 ? 0 : root -= step;
              $body.stop().animate({
                scrollTop: root
              }, speed, option, function() {
                scroll = false;
              });
            }
    
            return false;
          }
    
        }).on('scroll', function() {
          if (scrollY && !scroll) root = $window.scrollTop();
        }).on('resize', function() {
          if (scrollY && !scroll) view = $window.height();
        });
      };
    
      jQuery.easing.default = function(x, t, b, c, d) {
        return -c * ((t = t / d - 1) * t * t * t - 1) + b;
      };
    
    })(jQuery);
    
    $.scrollSpeed(100, 20000); // cкорость прокрутки
    html,
    body {
      height: 100%;
      margin: 0;
      padding: 0;
    }
    
    body {
      background: url(https://avatars.mds.yandex.net/get-pdb/1386879/03fb902f-440e-40ac-ac1b-967d07d274c3/s1200);
      background-size: cover;
      background-attachment: fixed;
    }
    
    .pattern {
      width: 100%;
      height: 500px;
    }
    
    .heading {
      font-size: 30px;
      text-transform: uppercase;
      font-family: sans-serif;
      fill: #999;
    }
    
    .title {
      font-size: 16px;
    }
    
    .btn {
      font-family: sans-serif;
      font-size: 24px;
    }
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
    
    
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <svg viewBox="0 0 1000 500" preserveAspectRatio='none'>
     <defs>
       <mask id="mask">
        <path d="M0,600 1000,600 1000,0 0,0
                 M150,50 250,100 250,200 150,250 50,200 50,100
                 M300, 200 400,250 400,350 300,400 200,350 200,250" fill="#fff"/>
       </mask>
      </defs>
      <image xlink:href="https://www.publicdomainpictures.net/pictures/40000/velka/tiny-white-dots-on-yellow.jpg" 
             x="0" y="0" 
             preserveAspectRatio="none"
             mask="url(#mask)"/>
      <g>
       <text x="450" y="60" class="heading"> secundary heading</text>
       <text class="title">
        <tspan x="380" y="90">Lorem ipsum, dolor sit amet consecteturadipisicing elit. Incidunt adipisci </tspan>        
        <tspan x="380" y="110">recusandae ea nesciunt ratione Laboriosam numquam, deserunt,quisquam<tspan>
        <tspan x="480" y="130">commodi consequatur fuga minima provident</tspan>    
      </text>
       
          <a target="_blank" xlink:href="http://yandex.kz">
           <text x="530" y="197" class="btn">learn more</text>
           <path d="M500,150 700,150 700,225 450,225 450,190z" fill="transparent" stroke=" #999" stroke-width="2"/>
          </a>
          <a target="_blank" xlink:href="http://google.kz">
            <text x="500" y="322" class="btn">request invite</text>
          <path d="M450,275 700,275 700,325 650,350 450,350z" fill="transparent" stroke=" #999" stroke-width="2"/>
          </a>
    
      </g>
    </svg>
    
    
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>
    <br>

    • 2
  2. Monkey Mutant
    2020-03-12T16:59:59Z2020-03-12T16:59:59Z

    在本机 javascript 中也是如此,没有添加内容,而是将高度设置为高度 ....

    var animating = false;
    var timeoutID;
    
    function onWheel(event) {
      event = event || window.event;
      var pos = event.deltaY || event.detail || event.wheelDelta;
      console.log(pos);
      if (animating) {
        finalPos = finalPos + pos;
        event.preventDefault();
        return false;
      }
      if (pos > 0 || pos < 0) {
        if (!animating) {
          animating = true;
          finalPos = pos;
          event.preventDefault();
          clearTimeout(timeoutID);
          timeoutID = setTimeout(function() {
            console.log('scroll to ' + finalPos);
            window.scrollTo(window.scrollX, window.scrollY + finalPos);
            setTimeout(function() {
              animating = false;
            });
          });
        }
      }
    }
    
    if (window.addEventListener) {
      if ('onwheel' in document) {
        window.addEventListener("wheel", onWheel, {
          passive: false,
          capture: true
        });
      } else if ('onmousewheel' in document) {
        window.addEventListener("mousewheel", onWheel);
      } else {
        window.addEventListener("MozMousePixelScroll", onWheel);
      }
    } else {
      window.attachEvent("onmousewheel", onWheel);
    }
    html,
    body {
      height: 3000px;
    }

    • 2

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    如何从列表中打印最大元素(str 类型)的长度?

    • 2 个回答
  • Marko Smith

    如何在 PyQT5 中清除 QFrame 的内容

    • 1 个回答
  • Marko Smith

    如何将具有特定字符的字符串拆分为两个不同的列表?

    • 2 个回答
  • Marko Smith

    导航栏活动元素

    • 1 个回答
  • Marko Smith

    是否可以将文本放入数组中?[关闭]

    • 1 个回答
  • Marko Smith

    如何一次用多个分隔符拆分字符串?

    • 1 个回答
  • Marko Smith

    如何通过 ClassPath 创建 InputStream?

    • 2 个回答
  • Marko Smith

    在一个查询中连接多个表

    • 1 个回答
  • Marko Smith

    对列表列表中的所有值求和

    • 3 个回答
  • Marko Smith

    如何对齐 string.Format 中的列?

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5