博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
双十一移动端页面总结
阅读量:6112 次
发布时间:2019-06-21

本文共 6138 字,大约阅读时间需要 20 分钟。

弹层问题

  • 弹层遮罩层用固定定位
.cover {        position: fixed;        left: 0;        top: 0;        width: 100%;        height: 100%;        background: #000;        opacity: 0.8;        z-index: 2;    }复制代码
  • 每次弹层出现要重新计算出top的值(在watch中监听)
setAiStyle() {                const top = (document.documentElement.scrollTop || document.body.scrollTop) + document.documentElement.clientHeight / 2;                this.aiStyle = {                    top: `${top}px`                }                                                watch: {            showOrHide(value) {                if (value) {                    this.setAiStyle();                }            },                复制代码
  • 在弹层中如果有input,那么要给他一个blur事件,再一次重新计算出top

  • 给整个页面一个touchMove事件,当有弹层出现的时候,阻止默认事件(目的是当有弹层时候,底下的遮罩层不乱滚)

touchMove(e) {                if (this.rule6 || this.rule7 || this.rule8 || this.loginShow || this.shijiashow || this.isShow || this.showOrHide || this.rule2 || this.rule3 || this.rule4 || this.rule5 || this.goucheshow || this.zhihuanshow) {                    e.preventDefault();                    // e.stopPropagation();                }            },复制代码
  • 每次关闭弹层之后要让他定位到当前位置:
showPopMask() { var top = $(window).scrollTop(); this.tempScrollTop = top; $('html,body').css({
'overflow': 'hidden', 'width': '100%', 'position': 'fixed', 'top': -top + 'px'}) }
closePopMask() { $('html,body').css({
'overflow': 'auto', 'position': 'static'}); console.log('close', this.tempScrollTop) $('html,body').scrollTop(this.tempScrollTop); }复制代码

组件之间的通讯问题

  • 1、父组件给子组件传值,传方法

    • 在父组件中子组件的标签里动态绑定要传的值或者方法,然后在子组件里用props收
    复制代码
    props: { close: { type: Function, }, getstatus:{ type:Function, }, blur:{ type: Function, }, top: { type: Object, default:"" }, islogin:{ type:Boolean }, goucheex1:{ type:Number },复制代码
    • 子组件里面的值发生变化时,需要watch监听新值和老值才行
watch:{ phone: function (newvalue, oldvalue) { if(oldvalue===""&& oldvalue!==newvalue){ this.telephone=newvalue; } }, name:function (newvalue, oldvalue) { if(oldvalue===""&& oldvalue!==newvalue){ this.UserName=newvalue; } }复制代码
  • 子传父的方法

    • 第一步,在父组件中自定义一个事件,然后子组件中发射这个事件,并把需要传的值写入第二个参数里面

    父组件写法

    methods:{ loginStatus(p) { this.isLogin = p; } } 复制代码

    子组件写法

    this.$emit("login",true);复制代码

滑动的问题

  • 有的手机无法左右滑动,那么如果遇到滑动可以使用iscroll或者swiper插件,但是正常的swiper也有问题,在ios低版本上不能轮播,vue项目可以使用vue-awesome-swiper 这个插件(依赖swiper4的插件)

  • 教程:

    • vue-awesome-swiper用法:

    (1) 下载:npm install vue-awesome-swiper --save

    (2) 引入: import "swiper/dist/css/swiper.css";

    import { swiper, swiperSlide } from "vue-awesome-swiper";

    (3)DOM结构部分

    {

    {item.CarSerial}} {
    {item.CarName}}

    {

    {item.CarYear}}|{
    {item.DrivingMileage}}
    | {
    {item.City}}

    指导价:{

    {item.CarPrice}}

    申请购车
    申请置换
    更多车型>
    复制代码

    (4)在data里面定义要配置的参数:

    data(){         return {             swiperOption: {              speed:800,             //滑动方向             direction : 'horizontal'                 loop: true,                 autoplay:3500,                 autoplayDisableOnInteraction: false,                 slidesPerView: 3,                 slidesPerGroup: 1,             },           }         }  复制代码

转盘游戏

  • 动态绑定样式(子集元素太多的话,一个个写class名太费劲就用:nth-child()),动态的有些时候需要借助计算属性来实现

{

{item}}

剩余游戏次数{

{remainCount}}次

复制代码
computed:{  giftClassName: function () {                if (this.giftName === "¥1111北现购车券") {                    return 'prize0';                }                if (this.giftName === "宝马5系混动购车券") {                    return 'prize1'                }                if (this.giftName === "谢谢参与") {                    return 'prize2' || 'prize7'                }                if (this.giftName === "JBL Pulse2 小音箱") {                    return 'prize3'                }                if (this.giftName === "索尼便携迷你音响") {                    return 'prize4'                }                if (this.giftName === "小米无线蓝牙耳机") {                    return 'prize5'                }                if (this.giftName === "¥111元购车券") {                    return 'prize6'                }                return '';            }    }        复制代码
  • 2、CSS旋转动画
&.rotate {        -webkit-animation: roll 0.5s linear infinite;        animation: roll 0.5s linear infinite;    } @-webkit-keyframes   roll {        from {            -webkit-transform: rotate(0deg);        }        to {            -webkit-transform: rotate(360deg);        }    } @keyframes  roll {        from {            transform: rotate(0deg);        }        to {            transform: rotate(360deg);        }    }    复制代码

翻牌动画

  • 3D 翻转
翻转的块(li){        -webkit-perspective:1500 }正面的块{         .bac3 .fanpai-contain li .box {        display: block;        width: px2rem(213);        height: px2rem(131);        backface-visibility: hidden;        transition: all 1s;    }反面的块{    .bac3 .fanpai-contain li .back         position: relative;        display: block;        width: px2rem(213);        height: px2rem(131);        transform: rotateY(-180deg)    }按照Y轴旋转: transform: rotateY(180deg);            复制代码

1、后台返回的数据一定要判断是否存在,如果存在在做操作,不然会报错

2、在后台返回数据之前,要禁止用户点击,省的发送太多次请求,在点击事件上加一个flag

3、苹果手机的输入框直接用px写,不用px2rem(),不然看不见了

项目的线上地址:

转载于:https://juejin.im/post/5be12f1bf265da61483b11c4

你可能感兴趣的文章
实验二 Java面向对象程序设计
查看>>
------__________________________9余数定理-__________ 1163______________
查看>>
webapp返回上一页 处理
查看>>
新安装的WAMP中phpmyadmin的密码问题
查看>>
20172303 2017-2018-2 《程序设计与数据结构》第5周学习总结
查看>>
eclipse中将一个项目作为library导入另一个项目中
查看>>
Go语言学习(五)----- 数组
查看>>
Android源码学习之观察者模式应用
查看>>
Content Provider的权限
查看>>
416. Partition Equal Subset Sum
查看>>
centos7.0 64位系统安装 nginx
查看>>
数据库运维平台~自动化上线审核需求
查看>>
注解开发
查看>>
如何用 Robotframework 来编写优秀的测试用例
查看>>
Django之FBV与CBV
查看>>
Vue之项目搭建
查看>>
app内部H5测试点总结
查看>>
Docker - 创建支持SSH服务的容器镜像
查看>>
[TC13761]Mutalisk
查看>>
三级菜单
查看>>