链家H5项目总结

在此次项目中,使用的是高度百分比。对于适配这一块确实少了很多。

1、如果是用高度百分比的话。则img需要写成这样的样式。

img{
    width:auto;
    height:100%;
    display: block;
}

如果需要居中的话,可以对外层的div设置一个类名class:比如是setwidth,然后通过js去获取第一张图片的宽度赋给这个外层的div.

setWidth:function(){
        $(".setWidth").each(function(index,element){
            var width=$(this).find("img").eq(0).width();
            $(this).css({"width":width+‘px‘});
        });
    },

不过要注意的是如果其他页面是隐藏的话,需要在这个页面显示之后再执行一遍setWidth。不然获取的宽度为0。

还有就是img标签和普通的div有点不同的就是,对于img标签的话,如果要居中,可以不用写宽度,直接定义宽度百分比,然后margin居中,就可以实现居中了。

如:

.img1{
    height:39%;
    margin:0 auto;
}

现在暂时只发现img有这个特性。

2、移动端的一点问题:

碰到的问题是这样的,在滑动屏幕的时候会闪一下下一页的背景。原因未知,解决办法:

给会闪的这个元素加入一行css代码:

-webkit-backface-visibility:hidden;

比如我出现的是section翻页的时候会闪一下下一页的背景。可以这样做。

section{
    display: none;
    -webkit-backface-visibility:hidden;
}

还有就是在最后一页的时候,弹出框里面的四个li向后面翻页的时候会抖动一下。

也是这样处理的。

.popcontent li{
    width: 25%;
    height:100%;
    float:left;
    position:relative;
    -webkit-backface-visibility:hidden;
}    

问题是这样解决了。但是为何如此呢???

W3C是这样定义-webkit-backface-visibility:hidden;的

Problematic in WebKit because backface-visibility not hidden

3、js:

在用zepto的animate函数的时候,因为用了回调,导致回调函数半天出不来,执行的非常慢。原因未知。但是如果是这样的话,可以不使用回调函数。

原来执行回调很慢的js代码:

popfn:{
        close:$(‘.closed‘),
        open:$(‘.p6_lj‘),
        length:$(‘.popcontent li‘).length,
        width:$(‘.popcontent li‘).width(),
        popli:$(‘.popcontent li‘),
        page_current:$(‘.page_current‘),
        dotli:$(‘.dot li‘),
        init:function(){
            var close = s.popfn.close;
            var open = s.popfn.open;
            close.on(‘tap‘,s.popfn.closed);
            open.on(‘tap‘,s.popfn.opened);
            s.popfn.popLRbind();
        },
        closed:function() {
            $(this).parents(‘.pop‘).hide();
            s.sec.on({
            ‘swipeLeft‘:s.swipeLeft,
            ‘swipeRight‘:s.swipeRight
            });
        },
        opened:function() {
            s.sec.off({
            ‘swipeLeft‘:s.swipeLeft,
            ‘swipeRight‘:s.swipeRight
            });
            $(this).parents(‘.wrap‘).next().show();
        },
        popSwipeLeft:function(){
            var current = $(‘.page_current‘).index();
            var length = s.popfn.length;
            var page_current = s.popfn.page_current;
            var popli = s.popfn.popli;
            var dotli = s.popfn.dotli;
            if(current<length-1&&s.flag){
                s.flag=false;
                var translate = -(current+1)*25;
                $(‘.popcontent ul‘).animate({‘-webkit-transform‘:‘translateX(‘+translate+‘%)‘},800,‘ease-in-out‘,function(){
                    console.log(1);
                popli.eq(current).removeClass(‘page_current‘).next().addClass(‘page_current‘);
                dotli.eq(current).removeClass(‘active‘).next().addClass(‘active‘);
                s.flag=true;
            });
            }else{
                return;
            }
        },
        popSwipeRight:function(){
            var current = $(‘.page_current‘).index();
            var length = s.popfn.length;
            var popli = s.popfn.popli;
            var dotli = s.popfn.dotli;
            if(current>0&&s.flag){
                s.flag=false;
                var translate = -(current-1)*25;
                $(‘.popcontent ul‘).animate({‘-webkit-transform‘:‘translateX(‘ + translate + ‘%)‘},800,‘ease-in-out‘,function(){
                popli.eq(current).removeClass(‘page_current‘).prev().addClass(‘page_current‘);
                dotli.eq(current).removeClass(‘active‘).prev().addClass(‘active‘);
                s.flag=true;
            });
            }else{
                return;
            }
        },
        popLRbind:function(){
            s.popfn.popli.on({
                ‘swipeLeft‘:s.popfn.popSwipeLeft,
                ‘swipeRight‘:s.popfn.popSwipeRight
            });
        }
    }

后面改了之后的就正常了。

popfn:{
        close:$(‘.closed‘),
        open:$(‘.p6_lj‘),
        length:$(‘.popcontent li‘).length,
        popli:$(‘.popcontent li‘),
        page_current:$(‘.page_current‘),
        dotli:$(‘.dot li‘),
        init:function(){
            var close = s.popfn.close;
            var open = s.popfn.open;
            close.on(‘tap‘,s.popfn.closed);
            open.on(‘tap‘,s.popfn.opened);
            s.popfn.popLRbind();
        },
        closed:function() {
            $(this).parents(‘.pop‘).css(‘display‘,‘none‘);
            s.sec.on(‘swipeRight‘,s.swipeRight);
        },
        opened:function() {
            s.sec.off(‘swipeRight‘,s.swipeRight);
            $(this).parents(‘.wrap‘).next().css(‘display‘,‘block‘);
        },
        popSwipeLeft:function(){
            var current = $(‘.page_current‘).index();
            var length = s.popfn.length;
            var page_current = s.popfn.page_current;
            var popli = s.popfn.popli;
            var dotli = s.popfn.dotli;
            if(current<length-1&&s.flag){
                s.flag=false;
                var translate = -(current+1)*25;
                $(‘.popcontent ul‘).animate({‘-webkit-transform‘:‘translate3d(‘+translate+‘%,0,0)‘},800);
                popli.eq(current).removeClass(‘page_current‘).next().addClass(‘page_current‘);
                dotli.eq(current).removeClass(‘active‘).next().addClass(‘active‘);
                s.flag=true;
            }
        },
        popSwipeRight:function(){
            var current = $(‘.page_current‘).index();
            var length = s.popfn.length;
            var popli = s.popfn.popli;
            var dotli = s.popfn.dotli;
            if(current>0&&s.flag){
                s.flag=false;
                var translate = -(current-1)*25;
                $(‘.popcontent ul‘).animate({‘-webkit-transform‘:‘translate3d(‘ + translate + ‘%,0,0)‘},800);
                popli.eq(current).removeClass(‘page_current‘).prev().addClass(‘page_current‘);
                dotli.eq(current).removeClass(‘active‘).prev().addClass(‘active‘);
                s.flag=true;
            }
        },
        popLRbind:function(){
            s.popfn.popli.on({
                ‘swipeLeft‘:s.popfn.popSwipeLeft,
                ‘swipeRight‘:s.popfn.popSwipeRight
            });
        }
    }
时间: 2024-08-02 11:04:02

链家H5项目总结的相关文章

Python爬虫项目--爬取链家热门城市新房

本次实战是利用爬虫爬取链家的新房(声明: 内容仅用于学习交流, 请勿用作商业用途) 环境 win8, python 3.7, pycharm 正文 1. 目标网站分析 通过分析, 找出相关url, 确定请求方式, 是否存在js加密等. 2. 新建scrapy项目 1. 在cmd命令行窗口中输入以下命令, 创建lianjia项目 scrapy startproject lianjia 2. 在cmd中进入lianjia文件中, 创建Spider文件 cd lianjia scrapy genspi

使用vue.js仿一个链家

Vue全家桶+localstorage+socket.io简单仿一个链家 在线预览地址首先上项目和预览地址 https://luxroid.com/lianjia/#/Github地址 https://github.com/mixihome/lianjia 注意 如果要在本地运行安装完依赖之后如果报错请手动使用淘宝镜像安装node-sass和sass-loader 确保可以运行建议使用F12移动端模式预览???? 使用到的技能点Vue.js : 前端页面展示Vuex : 全局状态通信axios

JAVA架构师面试分享—链家网

本月7日去了一趟链家网面试,虽然没有面上,但仍有不少收获,在此做个简单的分享,当然了主要是分享给自己,让大家见笑了.因为这次是第一次面试JAVA网站架构师相关的职位,还是有些心虚的,毕竟之前大部分时间都是在做.NET相关的技术工作,并且自己所负责过的项目规模都是比较小,并且差异也较大.在高并发性,高伸缩性的互联网网站的架构方面没有太多的经验,只是在之前空闲时阅读李智慧老师的<大型网站技术架构>一书给了我不少的启发.面试过程比较简单,首先是笔试,架构师职位主要是一些知识的理解,也有一些数据库查询

分享系列--面试JAVA架构师--链家网

本月7日去了一趟链家网面试,虽然没有面上,但仍有不少收获,在此做个简单的分享,当然了主要是分享给自己,让大家见笑了.因为这次是第一次面试JAVA网站架构师相关的职位,还是有些心虚的,毕竟之前大部分时间都是在做.NET相关的技术工作,并且自己所负责过的项目规模都是比较小,并且差异也较大.在高并发性,高伸缩性的互联网网站的架构方面没有太多的经验,只是在之前空闲时阅读李智慧老师的<大型网站技术架构>一书给了我不少的启发.面试过程比较简单,首先是笔试,架构师职位主要是一些知识的理解,也有一些数据库查询

杭州链家二手房数据分析

杭州链家二手房数据 项目说明 练习爬虫相关技术,从网络上抓取数据,保存到本地csv文件和mongodb数据库I中,参考网络上相关资源实现二手房数据可视化,后面继续完善回归分析部分和预测分析. 项目实现 1. 数据获取 二手房数据可以从网络中获取即通过编写爬虫脚本从链家官网中获取相应数据.二手房数据主要采集房源区县信息.房源小区信息.房源户型.楼层信息.朝向信息.房屋面积信息.房屋建筑时间信息和房屋总价信息.具体实现以代码说明. 1.1 观察页面信息 红色方框中信息需要采集,但是缺少房源区县信息.

链家终于出事了!细数链家金融帝国四宗罪!

摘要说明:高速扩张的链家,在一个敏感时刻,遭到上海政府的迎头一棒.2月24日晚间,有人发现,链家门店橱窗上黏贴的所有二手房房源全部消失了,剩下的是 高速扩张的链家,在一个敏感时刻,遭到上海政府的迎头一棒. 2月24日晚间,有人发现,链家门店橱窗上黏贴的所有二手房房源全部消失了,剩下的是一张张白板.随即,澎湃新闻记者走访了附近链家门店,发现门店原先黏贴在橱窗上的房源确实没有了. 上海市,链家房产枣阳路店,一位工作人员正在关门收工,门口两侧橱窗上的广告已经撤下. 澎湃新闻记者 高征 图 界面新闻还透

链家地产-Java工程师面试

第一次面试,搞得有点隆重,衣服都是东拼西凑的.留住霸气地夹克,锦鹏的毛衣,自己的格子衫,亚飞的商务包.可惜,结果不出意料,果然惨不忍睹... 进了链家地产大厅,感觉挺温馨的,提供Wifi和手机充电.前台妹子很礼貌地跟我要了一份简历,让我坐下稍等片刻.十多分钟后,突然一个人过来坐下了,面试官稍微比我大几岁,估计入职也就一两年吧.本来精心准备了自我介绍,结果没用上,上来就问我,"你是XXX吧?","是的","ming字没有读错吧,这个字有什么含义吗?"

H5 项目常见问题汇总及解决方案

H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" /> // width    设置viewport宽度,为一个正整数,或字符串'devi

家宝贝项目历程之三(完成全部模块完成)

家宝贝项目已经接近尾声. 准备下周一进入测试阶段. 在这一次项目开发中用了一个月的时间完成了所有界面的搭载并和服务器开发人员调整接口获取数据. 在这次开发中功能全部都实现了.但是对代码的封装性不是太强. 在接下来的测试时间里将继续抽取代码.尽量把抽取出来的功能往框架上去发展.至少要用到下一个项目的时候能直接提取出来就可以直接使用的那种. 本次开发遇到一些小问题: 1.:在登录界面键盘会弹起两次 >> 这是以前写登录没出现过的问题:原因出在了一个系统弹框阻塞了线程问题. 当登录成功数据回来的时候