美文网首页
返回顶部有动效且随着改变屏幕大小不会改变位置

返回顶部有动效且随着改变屏幕大小不会改变位置

作者: keknei | 来源:发表于2021-04-14 16:05 被阅读0次

一般右下角的返回顶部按钮,点击后会返回顶部,但是没有动效,想要加上动效的话,除了用css html,body{ scroll-behavior:smooth; },还可以用js requestAnimationFrame方法,下面写个例子

requestAnimationFrame类似定时器和setInterval差不多,也可以取消定时器,用cancelAnimationFrame()方法

html部分

<a href="javascript:;" class="goTop">返回顶部</a>

css部分

.goTop{
  position:fixed;
  bottom:100px;
  right:50px;
  width:50px;
  height:50px;
  background:red;
  color:#fff;
}

js部分

const oA=document.querySelector(".goTop");
function goTop(){
  document.documentElement.scrollTop-=50;
  document.body.scrollTop-=50;
  let scroTop=document.documentElement.scrollTop || document.body.scrollTop
  if(scroTop>0){//当scrollTop大于0没有到顶部的时候就一直调用
    window.requestAnimationFrame(goTop);
  }
}
oA.addEventListener("click",()=>{
  window.requestAnimationFrame(goTop);
});

关于requestAnimationFrame方法的取消方法window.cancelAnimationFrame

let id=window.requestAnimationFrame(fn)//会返回一个id
window.cancelAnimationFrame(id)//传入id取消动画
//举个例子
let aId=0;
let num=0;
function fn(){
  num++;
  id=window.requestAnimationFrame(fn);
  if(num==50){
     window.cancelAnimationFrame(id);
  }
}

window.requestAnimationFrame(fn);

上面是返回顶部的动效,下面是设置按钮位置不会随着屏幕大小而改变位置

js部分

setRight(){
   const oDiv= document.querySelector("#positionBox");
   //1180是页面展示的宽度,可以改变,后面的25是调整位置的大小
   oDiv.style.right=(document.documentElement.clientWidth-1180)/2-25+"px";
}

//刚开始加载完就设置按钮的位置
setRight();
//添加屏幕改变大小的事件
window.addEventListener("resize",setRight);

相关文章

  • 返回顶部有动效且随着改变屏幕大小不会改变位置

    一般右下角的返回顶部按钮,点击后会返回顶部,但是没有动效,想要加上动效的话,除了用css html,body{ s...

  • camtasia studio 视频聚焦2019-10-25

    改变屏幕位置space然后鼠标拖动,属性进行缩放,万不可直接在中间放大缩小屏幕,直接拖改变的是全局的不会是动态的效...

  • css布局

    1.固定布局:浏览器大小改变,元素大小位置均不变 2.流体布局(自适应布局):浏览器大小改变,元素位置不变大小改变...

  • Material Design属性

    卡片作为内容的载体,可以显示任何内容。且不会因为内容的改变而改变自身的大小大小、厚度、位置等属性。 内容在卡片上是...

  • 【前端】05 - 移动web开发之rem布局

    文字大小随屏幕大小的改变而改变?流式布局和flex布局主要针对宽度布局,那高度如何设置?怎么样让屏幕发生改变的时候...

  • 2020-03-28 秀米 笔记

    文字+图片+布局 随屏幕大小而改变:图片大小 不随屏幕大小而改变:文字字号、标题模板、零件、图片模板、偏移数值 定...

  • 改变系统Switch的大小

    系统的Switch无法改变大小,只能改变位置. 如果想改变大小只能通过缩放来实现

  • PHP 魔术常量

    有八个魔术常量它们的值随着它们在代码中的位置改变而改变,这些特殊的常量不区分大小写。 __LINE__ 文件中的当...

  • O基础如何免费创建全平台营销H5响应式网站?

    你曾经是否有过这样的疑问?有没有一种方法能够让网站能够随着屏幕的大小的改变而自动改变网页的文字、图片的大小、排版?...

  • 回到顶部

    首先提到回到顶部我们就想到的是a标签锚点跳转 a标签返回顶部的话会产生改变路由的问题每次用户点击返回顶部的话是可以...

网友评论

      本文标题:返回顶部有动效且随着改变屏幕大小不会改变位置

      本文链接:https://www.haomeiwen.com/subject/qutllltx.html