自己写的一些可以复用的方法(不定时更新)

1、处理字数,当超过多少字就做....处理

reduceNum(value,num){
    var result = null;
    if(value.length>num){
        result=value.substring(0,num-1)+'...';
    }else{
        result=value;
    }
    return result;
}

2、分享(分享到微信,朋友圈,QQ,QQ空间)——vue实现

    html部分:

<div id="page">

<div id="shareBtn"></div>

< div class= "share-mask hidden" id= "wrap" >
< ul class= "share share-enter" id= "share" >
< li class= "qq-app" data-platform= "QQ" >
< img src= "https://appd.knowbox.cn/public/img/icon-share-qq-app.png" alt= "分享到QQ" />
</ li >
< li class= "qq-zone" data-platform= "QQZone" >
< img src= "https://appd.knowbox.cn/public/img/icon-share-qq-zone.png" alt= "分享到QQ空间" />
</ li >
< li class= "wechat-app" data-platform= "WX" >
< img src= "https://appd.knowbox.cn/public/img/icon-share-wechat-app.png" alt= "分享到微信" />
</ li >
< li class= "wechat-timeline" data-platform= "WXCircle" >
< img src= "https://appd.knowbox.cn/public/img/icon-share-wechat-timeline.png" alt= "分享到微信朋友圈" />
</ li >
</ ul >
</ div >
</div>


    css部分

.page .share-mask {
width: 100%;
height: 100%;
position: fixed;
top: 0;
background: rgba( 0, 0, 0, .7);
left: 0;
z-index: 99
}
.page .share {
height: 1.8rem;
width: 100%;
padding: 0.46rem 0 0;
box-sizing: border-box;
margin: 0;
position: absolute;
bottom: 0;
display: table;
list-style: none;
transition: transform 0.4s;
will-change: transform;
color: #8e8e8e;
background: #fff;
font-size: 0.2rem;
z-index: 999;
}
.page .share .share-enter-active,
.page .share .share-leave-active {
-ms-transform: translateY( 0);
transform: translateY( 0);
-webkit-transform: translateY( 0);
}
.page .share .share-enter,
.page .share .share-leave-to {
-ms-transform: translateY( 100%);
transform: translateY( 100%);
-webkit-transform: translateY( 100%);
}
.page .share:before {
position: absolute;
left: 0.12rem;
top: 0.12rem;
content: ' \5206\4EAB\5230 ';
display: block;
}
.page .share > li {
display: table-cell;
text-align: center;
}
.page .share > li.qq-app:after {
content: 'QQ';
}
.page .share > li.qq-zone:after {
content: 'QQ \7A7A\95F4 ';
}
.page .share > li.wechat-app:after {
content: ' \5FAE\4FE1 ';
}
.page .share > li.wechat-timeline:after {
content: ' \670B\53CB\5708 ';
}
.page .share > li > img {
display: block;
margin: 0 auto 0.04rem;
width: 0.96rem;
height: 0.96rem;
}
.page .hidden {
display: none
}

     js部分

mounted : function() {
var that = this;

pageEl = document. getElementById( 'app');
btnEl = document. getElementById( 'shareBtn');
shareEl = document. getElementById( 'share');
wrapEl = document. getElementById( 'wrap');
btnEl && btnEl. addEventListener( 'touchstart', function ( e) {
if ( shareEl) {
shareEl. parentNode. classList. remove( 'hidden');
setTimeout( function() {
shareEl. classList. remove( 'share-enter');
shareEl. classList. add( 'share-enter-active');
}, 10);
}
});

shareEl && shareEl. addEventListener( 'touchstart', function ( e) {
var elem = e. target;

while (! elem. classList. contains( 'share')) {
if ( elem. dataset. platform) {
that. doShare( elem. dataset. platform);
}

elem = elem. parentNode;
}
});
wrapEl && wrapEl. addEventListener( 'touchstart', function ( e) {
var elem = e. target;

while (! elem. classList. contains( 'page')) {
if ( elem. classList. contains( 'btn') || elem. classList. contains( 'share')) {
return;
}

elem = elem. parentNode;
}

if ( shareEl) {
shareEl. classList. remove( 'share-enter-active');
shareEl. classList. add( 'share-enter');
setTimeout( function() {
shareEl. parentNode. classList. add( 'hidden');
}, 400);
}
});

}
doShare : function( platform) {
var params = {
text: '@shareDescText', // 描述
// imageUrl: 'https://appd.knowbox.cn/ss/' + (@userType == 0 ? 'student' : 'teacher') + 'Icon.png',
imageUrl: 'XXX',
title: '@shareTitleText', // 标题
titleUrl: '@doShareUrl',
url: '@doShareUrl',
description: '',
// site: '作业盒子' + (@userType == 0 ? '学生端' : '老师端'),
site: 'XXX',
siteUrl: '@doShareUrl',
type: 2
};
params = encodeURIComponent( JSON. stringify( params));
window. shareCallBack = function() {
if ( shareEl) {
shareEl. classList. remove( 'share-enter-active');
shareEl. classList. add( 'share-enter');
setTimeout( function() {
shareEl. parentNode. classList. add( 'hidden');
}, 400);
}
};
location. href = 'hybird://method/doShare?platform=' + platform + '&data=' + params + '&jsCallBack=shareCallBack';
}


3、获取页面url里某个参数的方法

方法一:

function GetQueryString(name) {
  var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); //寻找 &参数名=值& 这样的字段,&可以不存在,name就是参数名
  var r = window.location.search.substr(1).match(reg);//开始匹配,找到了返回对应url的值,没找到返回null
  if(r!=null)return unescape(r[2]); return null;
}
GetQueryString('token');

方法二:

var qs = ( function() {
var query = location. search. substring( 1);
var reg = /& ? ( \w + ) = ([^ & ] + )(?: $| & ) / igm;

var _query = {};

while ( reg. test( query)) {
_query[ RegExp. $1] = RegExp. $2;
}

return _query;
})();

var token = qs. token;

4、判断所处移动端浏览器版本

var browser = {
versions : function () {
var u = navigator. userAgent, app = navigator. appVersion;
return { //移动终端浏览器版本信息
trident: u. indexOf( 'Trident') > - 1, //IE内核
presto: u. indexOf( 'Presto') > - 1, //opera内核
webKit: u. indexOf( 'AppleWebKit') > - 1, //苹果、谷歌内核
gecko: u. indexOf( 'Gecko') > - 1 && u. indexOf( 'KHTML') == - 1, //火狐内核
mobile: !! u. match( /AppleWebKit. * Mobile. * /) || !! u. match( /AppleWebKit/), //是否为移动终端
ios: !! u. match( / \( i [^ ; ] + ; ( U; ) ? CPU. + Mac OS X/), //ios终端
android: u. indexOf( 'Android') > - 1 || u. indexOf( 'Linux') > - 1, //android终端或者uc浏览器
iPhone: u. indexOf( 'iPhone') > - 1 || u. indexOf( 'Mac') > - 1, //是否为iPhone或者QQHD浏览器
iPad: u. indexOf( 'iPad') > - 1, //是否iPad
webApp: u. indexOf( 'Safari') == - 1 //是否web应该程序,没有头部与底部
};
}(),
language: ( navigator. browserLanguage || navigator. language). toLowerCase()
}

if ( browser. versions. ios || browser. versions. iPhone || browser. versions. iPad) {
console.log('ios系统');
}
else if ( browser. versions. android) {
console.log('android系统');
}

猜你喜欢

转载自blog.csdn.net/Shirley_linxiaojia/article/details/79863510