官网项目总结

前言

一直比较习惯把一些东西记录在云笔记里,但是这样就没办法共享
虽然之前断断续续写过一段时间的博客,由于各种原(tou)因(lan)闲置了很久,现在又回来开始写博客,希望能够坚持下去
废话不多说了,还是进入正题吧

项目要点难点

  1. 仿apple官网轮播效果
  2. 禁用滚动
  3. 网页调起百度地图和高德地图app
  4. 安卓reload失效,苹果返回不刷新
1.仿apple官网轮播效果

这里是以swiper为基础修改而成,参考了里面提供的一个demo效果,但是demo使用的是swiper2,我将其改成了swiper3可用
值得注意的一点是,开启了watchSlidesProgress之后,会使onSlideChangeEnd回调方法在手指缓慢划动时失效,如有需要可使用onTransitionEnd代替

var topSwiper = new Swiper ('#index-top-swiper', {
        autoplay: 6000,
        watchSlidesProgress: true,
        speed: 600,
        loop: true,
        autoplayDisableOnInteraction: false,
        pagination: '.swiper-pagination',
        onProgress: function(swiper) {
            for (var c = 0; c < swiper.slides.length; c++) {
                var d = swiper.slides[c],
                b = d.progress,
                e;
                0 < b ? (e = .9 * b * swiper.width, scale = 1 - .1 * b, 1 < b && (scale = .9), txtPositionX = 0, txtPositionY = 30 * b + "px") : (e = 0, scale = 1, txtPositionX = 1E3 * -b + "px", txtPositionY = 0);
                var es = d.style;
                var es2 = d.querySelectorAll(".swiper-scale-item")[0].style;
                es.webkitTransform = es.MsTransform = es.msTransform = es.MozTransform = es.OTransform = es.transform = "translate3d(" + e + "px,0,0)";
                es2.webkitTransform = es2.MsTransform = es2.msTransform = es2.MozTransform = es2.OTransform = es2.transform = "scale(" + scale + ")";
            }
        },
       onTouchStart: function(swiper) {
            for (var c = 0; c < swiper.slides.length; c++) {
                swiper.slides[c].querySelectorAll(".swiper-scale-item")[0].style.transitionDuration = '0ms';
                swiper.slides[c].style.transitionDuration = '0ms';
            }
        },
        onSetTransition: function(swiper, c) {
            for (var d = 0; d < swiper.slides.length; d++) {
                swiper.slides[d].querySelectorAll(".swiper-scale-item")[0].style.transitionDuration = c + 'ms';
                swiper.slides[d].style.transitionDuration = c + 'ms';
            }
        }
    });
2. 禁用滚动

在ios的微信浏览器下,滑动到底部继续往下划的话,会出现灰色块如下,客户要求禁止掉这一动作

微信图片_20171024145537.png

本来是想通用对touchmove事件的preventDefault()去禁止滑动,但是后来发现了一个很方便的jquery.disablescroll.js
如下简单地调用就可以禁止\开启滚动
$(window).disablescroll();
$(window).disablescroll("undo");

3. 网页调起高德地图app

高德地图API
以单点标注为例
URL: //uri.amap.com/marker?position=121.287689,31.234527&name=park&src=mypage&coordinate=gaode&callnative=0

4. 安卓reload失效,苹果返回不刷新

客户要求首页点击logo刷新本页,一开始使用window.location.reload()进行刷新
经过测试后ios没问题,但是部分安卓微信浏览器无效

以下方法转自https://segmentfault.com/a/1190000006753455
原理是给跳转路径添加一个时间戳参数,如果已经存在该参数则替换

function updateUrl(url,key)  
{  
    var key = (key || 't') + '='; //默认是“t”  
    var reg = new RegExp(key + '\\d+');//正则:t=1472286066028  
    var timestamp = +new Date();  
    if(url.indexOf(key)>-1)//有时间戳,直接更新  
    {  
        return url.replace(reg, key + timestamp);  
    }  
    else //没有时间戳,加上时间戳  
    {  
        if(url.indexOf('\?')>-1)  
        {  
            var urlArr = url.split('\?');  
            if(urlArr[1])  
            {  
                return urlArr[0] + '?' + key + timestamp + '&' + urlArr[1];  
            }  
            else  
            {  
                return urlArr[0] + '?' + key + timestamp;  
            }  
        }  
        else  
        {  
            if(url.indexOf('#')>-1)  
            {  
                return url.split('#')[0]+'?'+key+timestamp+location.hash;  
            }  
            else  
            {  
                return url + '?' + key + timestamp;  
            }  
        }  
    }  
}  
window.location.href = updateUrl(location.href);

关于解决ios返回不刷新的问题,我使用sessionStorage去记录访问历史,监听popstate事件控制跳转行为
若各位有更好的方法,请评论告知哈,感谢感谢


function pushHistory(){
    var historyUrl = sessionStorage.getItem('history');
    if(historyUrl){
        historyUrl = historyUrl.split(',');
        historyUrl.push(window.location.href);
        historyUrl = historyUrl.join(',');
        sessionStorage.setItem('history', historyUrl);
    }
    else{
        sessionStorage.setItem('history', window.location.href);
    }
    var state = {title:"", url: "#"}; 
    window.history.pushState(state, "", "#"); 
}
function popHistory(){
    window.addEventListener("popstate", function(e){
        var historyUrl = sessionStorage.getItem('history');
        historyUrl = historyUrl.split(',');
        var len = historyUrl.length;
        if(len <= 1) {
            history.pushState(null, null, historyUrl[0]);
            return false;
        }
        historyUrl.pop();
        var url = updateUrl(historyUrl[len-2]);
        historyUrl.pop();
        historyUrl = historyUrl.join(',');
        sessionStorage.setItem('history', historyUrl);
        window.location.href = url;
    }, false); 
}
$(document).ready(function(){
  pushHistory();
});
window.onload = function(){
    setTimeout(popHistory, 0); //在旧版本webkit浏览器中,初次进入页面时会立刻触发popstate事件,顾添加一个定时器延时绑定事件
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,063评论 6 510
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,805评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 166,403评论 0 357
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,110评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,130评论 6 395
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,877评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,533评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,429评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,947评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,078评论 3 340
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,204评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,894评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,546评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,086评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,195评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,519评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,198评论 2 357

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,112评论 4 61
  • WebSocket-Swift Starscream的使用 WebSocket 是 HTML5 一种新的协议。它实...
    香橙柚子阅读 23,887评论 8 183
  • 这次恰好有同学去了C91,我就委托帮忙弄了几本小册子。不过这次也是后悔没有提前准备,人家都快要进场了我才知道有这么...
    伊蒂雅阅读 311评论 0 3
  • 由于专业原因,最近关注了下比特币相关的炒币新闻,自己也入场小玩了一把。由此联想到这个跟炒股有点像,之前其实一直对炒...
    originalme22阅读 172评论 0 0
  • 夜幕悄无声息的降临了,点点雨滴,依然,淅淅沥沥的滴落。打在窗前枣树上,落在地上,窗边,声声响响,无规无律,滴滴答答...
    白衣布衫阅读 131评论 0 0