链家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
- -webkit-backface-visibility: 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
});
}
}
链家H5项目总结的更多相关文章
- Python爬虫项目--爬取链家热门城市新房
本次实战是利用爬虫爬取链家的新房(声明: 内容仅用于学习交流, 请勿用作商业用途) 环境 win8, python 3.7, pycharm 正文 1. 目标网站分析 通过分析, 找出相关url, 确 ...
- 分享系列--面试JAVA架构师--链家网
本月7日去了一趟链家网面试,虽然没有面上,但仍有不少收获,在此做个简单的分享,当然了主要是分享给自己,让大家见笑了.因为这次是第一次面试JAVA网站架构师相关的职位,还是有些心虚的,毕竟之前大部分时间 ...
- Scrapy实战篇(一)之爬取链家网成交房源数据(上)
今天,我们就以链家网南京地区为例,来学习爬取链家网的成交房源数据. 这里推荐使用火狐浏览器,并且安装firebug和firepath两款插件,你会发现,这两款插件会给我们后续的数据提取带来很大的方便. ...
- 链家web前端面试
共有三轮面试,每个面试官的第一个问题都是:介绍一个你觉着比较出彩的项目 第一轮面试: 因为公司项目没什么亮点,很传统的pc端,美女面试官就说让讲一下我用react的私人项目; 问了很多都是关于reac ...
- python抓取链家房源信息(二)
试着用scrapy将之前写的抓取链家网信息的重新写了写 然后先是用了第一页的网页作为测试,调试代码,然后发现总是抓取的时候遇见了 类似于这样的问题,并且抓取不到信息 2017-03-28 17:52: ...
- Pyspider爬虫简单框架——链家网
pyspider 目录 pyspider简单介绍 pyspider的使用 实战 pyspider简单介绍 一个国人编写的强大的网络爬虫系统并带有强大的WebUI.采用Python语言编写,分布式架构, ...
- Hawk 1.1 快速入门(链家二手房)
链家的同学请原谅我,但你们的网站做的真是不错. 1. 设计网页采集器 我们以爬取链家二手房为例,介绍网页采集器的使用.首先双击图标,加载采集器: 在最上方的地址栏中,输入要采集的目标网址,本次是htt ...
- H5项目常见问题汇总及解决方案(果断复制粘贴,不解释)
H5项目常见问题及注意事项 Meta基础知识: H5页面窗口自动调整到设备宽度,并禁止用户缩放页面 //一.HTML页面结构 <meta name="viewport" co ...
- 如何开发H5项目 -- 入门篇
前言 H5即HTML5,H5开发具有低成本.高效率.跨平台.研发周期短,用户接触成本低等特性. 一.开发环境 在开发一个H5项目之前,需要先搞好环境.主要有node.npm.gulp.bower.下面 ...
随机推荐
- C/C++连接查询MYSQL
1. [代码][C/C++]代码 #include <mysql/mysql.h>#include <stdio.h>#include <string.h>int ...
- xml字符串的解析
import org.jdom.Document;import org.jdom.Element;import org.jdom.JDOMException;import org.jdom.Names ...
- FAQrobot 聊天机器人笔记
follow: https://github.com/ofooo/FAQrobot 这是一个简单的基于问词匹配的自动问答,获取与用户问句Q1最匹配的知识库中的问句Q2,Q2的答案就是Q1的答案. 首 ...
- bzoj 2216: Lightning Conductor 单调队列优化dp
题目大意 已知一个长度为\(n\)的序列\(a_1,a_2,...,a_n\)对于每个\(1\leq i\leq n\),找到最小的非负整数\(p\)满足: 对于任意的\(j\), \(a_j \le ...
- 洛谷P1525关押罪犯——并查集
题目:https://www.luogu.org/problemnew/show/P1525 并查集+贪心,从大到小排序,将二人分在不同房间,找到第一个不满足的即为答案. 代码如下: #include ...
- SQL Server 将查询的结果生成insert语句
1.将查询的结果插入到一张新表(yangTest 表系统会自动生成)select Area, District, RoadName, StationName, PathDirection, Stati ...
- Unix Timestamp
class Foundation_API DateTime /// This class represents an instant in time, expressed /// in years, ...
- 基于keepalived的nginx高可用
#nginx,keepalived安装略过 MASTER 节点配置文件(192.168.1.11) vi /etc/keepalived/keepalived.conf global_defs { # ...
- iOS横屏设置的几种方式
1.界面旋转,MainScreen的宽高不变,键盘位置不变 CGFloat duration = [UIApplication sharedApplication].statusBarOrientat ...
- UniqueIdentifier 数据类型
UniqueIdentifier 数据类型用于存储GUID的值,占用16Byte. SQL Server将UniqueIdentifier存储为16字节的二进制数值,Binary(16),按照特定的格 ...