最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • js 中关于操纵 Element 进行滚动的方法,都在这了‍‍‍

    正文概述 掘金(_DreamMaker)   2021-07-15   468

    为了方便咱操作 html 中的元素滚动条进行上下左右的滚动,js 自带了N种(规范内)方法:

    适用 ScrollToOptions 的方法

    诶,划重点,遵循 CSSOM View 规范的 ScrollToOptions,以上罗列的方法都遵循 CSSOM View 的规范,所以它们的使用方法可以说是完全一致,只是名儿不一样,ohhhhhhh CSSOM View yyds! MDN文档:developer.mozilla.org/zh-CN/docs/…

    接下来再看看 ScrollToOptions 怎么耍:

    通过配置 ScrollToOptions 进行滚动:

    const options = {
    	left: 100,
    	top: 100,
    	behavior: 'smooth'
    };
    window.scrollTo.scroll(options);
    
    
    // window.scrollTo
    const checked = true;
    const scrollOptions = {
    	left: 100,
    	top: 100,
    	behavior: checked ? 'smooth' : 'auto'
    };
    
    window.scrollTo(scrollOptions);
    

    以上各种方法控制(上下左右)滚动代码:

    const scroller = document.getElementById('scroller');
    
    // scroll 与 scrollTo (两种方法使用方式完全一致,所以只写出 scrollTo)
    /* 向上滚动 */
    scroller.scrollTo(0, 0);
    // or 
    scroller.scrollTo({ top: 0, behavior: 'smooth' });
    
    
    /* 向下滚动 */
    scroller.scrollTo(0, scroller.scrollHeight);
    // or
    scroller.scrollTo({ top: scroller.scrollHeight, behavior: 'smooth'})
    
    
    /* 向左滚动 */
    scroller.scrollTo(0, 0);
    // or
    scroller.scrollTo({ left: 0, behavior: 'smooth'})
    
    
    /* 向右滚动 */
    scroller.scrollTo(scroller.scrollWidth);
    // or
    scroller.scrollTo({ left: scroller.scrollWidth, behavior: 'smooth'})
    
    // ----------------- scrollBy (回滚滚动条需要写负数,其它一致) -----------------
    /* 向上滚动 */
    scroller.scrollBy(0, -scroller.scrollHeight);
    // or 
    scroller.scrollTo({ top: -scroller.scrollHeight, behavior: 'smooth' });
    
    /* 向左滚动 */
    scroller.scrollBy(-scroller.scrollWidth, 0);
    // or 
    scroller.scrollTo({ left: -scroller.scrollWidth, behavior: 'smooth' });
    

    以上直接使用 x,y 坐标轴方式滚动,写法简便,但是如果想要单独设置x, y轴时比较麻烦,因为两个参数都是必填的,相反 ScrollToOptions 配置方式则相对灵活,并且可以配置平滑滚动,坐标轴方式则不支持。所以,该用哪个你懂我意思吗?

    同胞兄弟 Element.scrollIntoView()

    var element = document.getElementById("box");
    
    /* 滚动到顶部 */
    element.scrollIntoView();
    // or
    element.scrollIntoView({ behavior: "smooth", block: "start" });
    
    /* 滚动到底部 */
    element.scrollIntoView(false);
    // or
    element.scrollIntoView({ behavior: "smooth", block: "end" });
    
    /* 滚动到最左侧 */
    element.scrollIntoView({ behavior: "smooth", inline: "start" });
    
    /* 滚动到最右侧 */
    element.scrollIntoView({ behavior: "smooth", inline: "end" });
    
    /* 滚动到中间位置 */
    element.scrollIntoView({ behavior: "smooth", block: 'center', inline: "center" });
    
    简单案例,欢迎来踩:

    codepen.io/_DreamMaker… js 中关于操纵 Element 进行滚动的方法,都在这了‍‍‍ 关于 Element 滚动就讲到这里,如果文中有错误或者可以改进的地方请立即在评论区公开处刑,觉得写的不错的话,来个小小的点赞,你的鼓励是我坚持的动力,谢谢?~


    下载网 » js 中关于操纵 Element 进行滚动的方法,都在这了‍‍‍

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元