22年8月工作笔记整理(前端)

8月主要在做一个新项目,也遇到了一些新的坑

一、css相关

1.设置滚动条样式

.select-more::-webkit-scrollbar {
  /*滚动条整体样式,这里宽和高一定要设置*/
  width: 10px; 
  height: 10px;
}
.select-more::-webkit-scrollbar-thumb {
  /*滚动条里面小方块*/
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: 10px;
  
}
.select-more::-webkit-scrollbar-track {
  /*滚动条里面轨道*/
  background: rgba(1, 11, 54, 0);
  border-radius: 10px;
}

2.边框渐变
从左右边框垂直渐变,background-clip: padding-box, border-box;
background-origin: padding-box, border-box;是实现的根本

background-clip: padding-box, border-box;
    background-origin: padding-box, border-box;
    background-image: linear-gradient(
        to bottom,
        #032f4c 0%,
        #000f31 50%,
        #032f4c 100%
      ),
      linear-gradient(to bottom, #03959f 0%, #000f31 50%, #03959f 100%);
    border-right: 1px transparent solid;
    border-left: 1px transparent solid;
    border-top: 1px #03959f solid;
    border-bottom: 1px #03959f solid;

3.遇到难调整的样式,可以考虑一下position的定位问题,有可能把absolute变成static定位

二、需求相关新组件

1.大屏适配方案组件

<template>
  <div class="wrap">
    <div class="ScaleBox"
         ref="ScaleBox"
         :style="{
          width,
          height
        }">
      <BigScreen></BigScreen>
    </div>
  </div>
</template>

<script>
export default {
  name: "ScaleBox",
  props: {
    width: {
      type: Number,
      default: 1920
    },
    height: {
      type: Number,
      default: 1080
    }
  },
  data() {
    return {
      scale: null
    };
  },
  mounted() {
    this.setScale();
    window.addEventListener("resize", this.setScale);
  },
  methods: {
    getScale() {
      const { width, height } = this;
      let ww = window.innerWidth / width;
      let wh = window.innerHeight / height;
      return ww < wh ? ww : wh;
    },
    setScale() {
      this.scale = this.getScale();
      this.$refs.ScaleBox.style.setProperty("--scale", this.scale);
    },
    debounce(fn, delay) {
      let delays = delay || 500;
      let timer;
      return function() {
        let th = this;
        let args = arguments;
        if (timer) {
          clearTimeout(timer);
        }
        timer = setTimeout(function() {
          timer = null;
          fn.apply(th, args);
        }, delays);
      };
    }
  }
};
</script>

<style >
#ScaleBox {
  --scale: 1;
}
.wrap {
  background: #eee;
  width: 100%;
  height: 5000px;
}
.ScaleBox {
  transform: scale(var(--scale)) translate(-50%, -50%);
  display: flex;
  height: 100%;
  flex-direction: column;
  transform-origin: 0 0;
  position: absolute;
  left: 50%;
  top: 50%;
  transition: 0.3s;
  z-index: 999;
}
</style>

2.点击按钮变化样式

<template>
  <div class="btnGroup">
    <button
      v-for="(item, index) in listData"
      :key="index"
      @click="changeColor(index)"
      :class="activeIndex === index ? 'active' : ''"
    >
      {{ item }}
    </button>
  </div>
</template>

<script>
export default {
  data() {
    return {
      listData: ["Button1", "Button2", "Button3", "Button4", "Button5"],
      // 标记被选中的按钮的index
      activeIndex: null,
    };
  },
  methods: {
    changeColor(index) {
        this.activeIndex = index;
    }
  }
};
</script>

<style lang="less" scoped>
.btnGroup {
  width: 500px;
  height: 100px;
  button {
    width: 15%;
    height: 35%;
    margin: 20px 0 20px 20px;
    background-color: pink;
    border: 1px solid skyblue;
  }

  // 被选中的按钮的样式
  .active {
    background-color: antiquewhite;
  }
}
</style>

三、框架知识

1.路由守卫
基础知识:
to:即将进入的目标,路由对象
from:当前导航正要离开的路由
next:直接调用就是进入当前路由,传false就是中断导航,传路由就是对应的路由地址
还可以配置路由元 meta{}

//组件内守卫
beforeRouteEnter(to, from, next) {
    // 不能获取组件实例 `this`,但可以使用全局定义的vm
    //直接调用next()就是进入路由,改变组件内的data值,就是用next的回调函数的参数获取
  next(vm => {
    // 通过 `vm` 访问组件实例
  })
  },
  beforeRouteUpdate(to, from, next) {
    // 在当前路由改变,但是该组件被复用时调用
    // 举例来说,对于一个带有动态参数的路径 /foo/:id,在 /foo/1 和 /foo/2 之间跳转的时候,
    // 由于会渲染同样的 Foo 组件,因此组件实例会被复用。而这个钩子就会在这个情况下被调用。
    // 可以访问组件实例 `this`
  },
  beforeRouteLeave(to, from, next) {
    // 导航离开该组件的对应路由时调用,比如用户未保存离开确认
    // 可以访问组件实例 `this`
const answer = window.confirm('Do you really want to leave? you have unsaved changes!')
  if (answer) {
    next()
  } else {
    next(false)
  }
  }

四、一些日常小问题

1.判断对象是否有内容数据:Object.keys(orderObj).length>0
2.git拉代码的时候,需要重置用户设置:

git config ---global credential.helper osxkeychain

3.遇到remote用户失败的问题,就去控制面板-凭据管理器-修改git的用户名和密码

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 前端HTML5和CSS3是网页开发中常用的技术,对于想要学习或者加深自己的前端开发能力的人来说,整理和下载相应的笔记是非常必要的。 HTML5是一种用于构建网页结构的标记语言,它引入了许多新的元素和属性,使得网页能够更好地表达其结构和语义。在HTML5笔记中,可以整理各种标签的使用方法,例如段落、标题、链接、图像等基本标签的使用,同时还可以介绍一些更高级的标签和属性,如多媒体元素、表单元素、Canvas绘图等。此外,HTML5还支持一些新的API,如本地存储、地理位置、拖放等,这些也可以作为笔记的一部分来整理和下载。 CSS3则是用于控制网页样式的样式表语言,它引入了丰富的新特性,使得前端开发人员能够更加灵活地控制网页的外观和布局。在CSS3笔记中,可以整理各种选择器、属性和值的用法,例如颜色、字体、背景、边框等的设置,同时还可以介绍一些更高级的特性,如过渡、动画、媒体查询等。此外,CSS3还支持一些新的布局方式,如弹性布局、网格布局等,这些也可以作为笔记的一部分来整理和下载。 通过整理和下载前端HTML5和CSS3的笔记,可以将学习的内容进行系统化和梳理,方便日后查阅和回顾。同时,也可以将笔记分享给其他人,帮助他们快速入门和掌握这些技术。最后,还可以通过不断更新这些笔记,保持自己对HTML5和CSS3相关知识的不断学习和掌握。 ### 回答2: 前端HTML5和CSS3是用于网页开发的两种新技术,它们可以增强网页的功能和美观性。以下是我整理的一些关于前端HTML5和CSS3的笔记,供大家下载使用。 1. HTML5的新特性: - 语义化标签:header、footer、nav等,用于标识网页结构,提高可读性和可访问性。 - 音频和视频元素:可以直接在网页上播放音频和视频文件。 - 表单验证:新增了一些表单验证属性,如required和pattern,可以在网页上进行表单输入验证。 - 本地存储:通过localStorage和sessionStorage可以在客户端存储数据,实现离线应用和提高性能。 - Canvas绘图:使用Canvas元素可以在网页上绘制图形、动画和游戏。 2. CSS3的新特性: - 过渡和动画:通过transition和animation属性可以实现元素的平滑过渡和动态效果。 - 圆角和阴影:通过border-radius和box-shadow属性可以设置元素的圆角和阴影效果。 - 渐变:通过linear-gradient和radial-gradient属性可以实现元素的渐变背景效果。 - 多列布局:通过column-count和column-width属性可以实现多列的文本布局效果。 - 媒体查询:通过media query可以根据不同的设备和屏幕尺寸应用不同的样式。 以上是关于前端HTML5和CSS3的一些笔记,你可以点击以下链接进行下载: [下载链接] 希望这些笔记能对你学习和应用前端开发有所帮助。如果你有任何问题,请随时向我提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值