【Vue 2.0】用Vue写一个自己的简历网站带作品集

实战项目名称:个人简历
技术栈:Vue 2.0
已实现功能:作品分类,作品展示
项目git地址:请点击访问
项目线上测试地址:请点击访问


提示:该项目只用于个人实战,不应用于任何商业用途。

一、效果展示

  • PC端
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 手机端

在这里插入图片描述


二、项目关键代码

1. 监听页面滚动

代码如下(示例):

handleScroll() {
      let scrollTop =
        window.pageYOffset ||
        document.documentElement.scrollTop ||
        document.body.scrollTop;

      if (scrollTop > 613) {
        //大于200的时候要做的操作
        this.fix = true;
      } else {
        this.fix = false;
      }
 }

// 使用
mounted() {
    window.addEventListener("scroll", this.handleScroll);
  },

2. 自定义图册弹窗

代码如下(示例):

<template>
  <div class="popupimage both-center" @click="$emit('closePopup')">
    <button
      class="popupimage-l"
      @click="before()"
      @click.stop
      :class="{ disablebutton: index == 0 }"
    >
      <svg
        width="6"
        height="10"
        viewBox="0 0 6 10"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
      >
        <path
          d="M5 1L1 5L5 9"
          stroke-width="2"
          stroke-linecap="round"
          stroke-linejoin="round"
        />
      </svg>
    </button>
    <button
      class="popupimage-r"
      @click="next()"
      @click.stop
      v-if="portfolio"
      :class="{ disablebutton: index == portfolio.length - 1 }"
    >
      <svg
        width="6"
        height="10"
        viewBox="0 0 6 10"
        fill="none"
        xmlns="http://www.w3.org/2000/svg"
      >
        <path
          d="M1 1L5 5L1 9"
          stroke-width="2"
          stroke-linecap="round"
          stroke-linejoin="round"
        />
      </svg>
    </button>
    <div class="popupimage-box"  v-if="portfolio">
      <img
        @click.stop
        :src="portfolio[index]"
        ref="popimg"
      />
    </div>
  </div>
</template>

<script>
export default {
  name: "PopupImage",
  props: {
    portfolio:Object,
  },
  data(){
    return{
      index:0
    }
  },
  methods: {
    handleKeyup(event) {
      const e = event || window.event || arguments.callee.caller.arguments[0];
      if (!e) return;
      const { keyCode } = e;
      if (keyCode == 27) this.$emit("closePopup");
      if (keyCode == 37) this.before();
      if (keyCode == 39) this.next();
    },
    before(){
      if(this.index>=1){
        this.index -= 1;
      }
    },
    next(){
      this.index += 1;
    }
  },
  mounted() {
    window.addEventListener("keyup", this.handleKeyup);
  },
  beforeDestroy() {
    window.removeEventListener("keyup", this.handleKeyup);
  },
};
</script>

<style scoped>
 ...
</style>

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彭式程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值