utils's People
utils's Issues
js 快速创建有序递增数组
实现方法一:循环赋值
var arr1 = new Array(100);
for(var i=0;i<arr1.length;i++){
arr1[i] = i;
}
console.log(arr1);
实现方法二:push方法实现
var arr2 = new Array();
for(var i=0;i<100;i++){
arr2.push(i);
}
console.log(arr2);
实现方法三:while
var arr3 = new Array();
var i = 0;
while(i<100){
arr3.push(i);
i++;
}
console.log(arr3);
实现方法四:do while
var arr4 = new Array();
var i = 0;
do{
arr4.push(i);
i++;
}
while(i<100)
console.log(arr4);
实现方法五:
var arr5 = Object.keys(Array.apply(null, {length:100})).map(function(item){
return +item;
});
console.log(arr5);
实现方法六:
var arr6 = Array.from({length:100}, (v,k) => k);
console.log(arr6);
实现方法七:
var arr7 = Array.from(Array(100), (v,k) =>k);
console.log(arr7);
实现方法八:
var arr8 = new Array(100).keys();
console.log(Array.from(arr8));
实现方法九:
var arr9 = [];
var i = 0;
var timer = setInterval(function(){
arr9[i] = i++;
if(i>=100){
clearInterval(timer);
console.log(arr9);
}
},1);
实现方法十:
var arr = [];
var i = 0;
function MakeArray(num){
if(i<num){
arr[i] = i++;
MakeArray(num);
}
return arr;
}
console.log(MakeArray(100));
实现方法十一:
var arr11 = new Array(100).toString().split(‘,‘).map(function(item,index){
return index;
});
console.log(arr11);
json格式的对象拼接成复杂的url参数
json格式的对象拼接成复杂的url参数
function objectToString( query = {} ) {
let str = '';
let newArr = [];
Object.keys(query).map((key) => {
if (query[key]) {
newArr.push(`${encodeURIComponent(key)}=${encodeURIComponent(query[key])}`)
}
})
return newArr.join('&');
}
获取链接上所对应的value值
// 获取链接上所对应的value值
function getQueryString(name) {
let search = decodeURIComponent(window.location.search);
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = search.substr(1).match(reg);
if (r != null) {
return unescape(r[2]);
}
return null;
}
商城项目(京东)专题活动页,整个img图片中实现局部点击(图像映射(image-map))
商城项目(京东)专题活动页,整个img图片中实现局部点击
1.定义:
定义一个客户端图像映射。图像映射(image-map)指带有可点击区域的一幅图像。
2.浏览器:
IE Firefox Chrome Safari Opera
所有主流浏览器都支持 标签。
3. 使用:
<img src="xxx.png" alt="xxx" usemap="#mapId" />
<map name="mapId" id="mapId">
<area shape="rect" coords="0,0,110,260" href="XXXX.htm" alt="XXXX" />
<area shape="circle" coords="129,161,10" href="YYYYY.htm" alt="YYYY" />
<area shape="poly" coords="0,0,12,14,299,300" href="ZZZZ.htm" alt="ZZZZ" />
</map>
注意:
<img>中的 usemap 属性可引用 <map> 中的 id 或 name 属性(取决于浏览器的兼容问题),
所以我们应同时向 <map> 添加 id 和 name 属性。
area(带有可点击区域的图像映射) 元素永远嵌套在 map 元素内部。area 元素可定义图像映射中的区域。
根据shape 属性值不同 coords 属性值也发生变化
如何实现动态coords(锚点)位置
/*根据分辨率自适应锚点区域坐标*/
function changeCoords(){
var width = document.body.offsetWidth;
var height = document.body.offsetHeith;
if (1920 == width) return;
var percent = width/1920;
$(".act").each(function(){
var coords = $(this).attr("coords");
var arr = coords.split(",");
for(var i=0;i<arr.length;i++){
arr[i] *= percent;
}
var str = arr.join(",");
$(this).attr("coords",str);
});
};
changeCoords();
vue 利用 lib-flexible 和 px2rem-loader实现响应式
@vue/cli 4.2.3
- 安装lib-flexible
npm install lib-flexible
- 安装 px2rem-loader
npm install --save-dev px2rem-loader postcss-plugin-px2rem
vue.config.js
chainWebpack: (config) => {
...
config.module
.rule('scss')
// .test(/\.css$/)
.oneOf('vue')
.resourceQuery(/\?vue/)
.use('px2rem')
.loader('px2rem-loader')
.before('postcss-loader')
.options({
remUnit: 75
})
},
css: {
loaderOptions: {
postcss: {
plugins: [
require('postcss-plugin-px2rem')({
rootValue: 75, // 换算基数, 默认100 ,这样的话把根标签的字体规定为1rem为50px,这样就可以从设计稿上量出多少个px直接在代码中写多上px了。
// unitPrecision: 5, //允许REM单位增长到的十进制数字。
// propWhiteList: [], //默认值是一个空数组,这意味着禁用白名单并启用所有属性。
// propBlackList: [], //黑名单
exclude: /(node_module)/, // 默认false,可以(reg)利用正则表达式排除某些文件夹的方法,例如/(node_module)\/如果想把前端UI框架内的px也转换成rem,请把此属性设为默认值
// selectorBlackList: [], //要忽略并保留为px的选择器
// ignoreIdentifier: false, //(boolean/string)忽略单个属性的方法,启用ignoreidentifier后,replace将自动设置为true。
// replace: true, // (布尔值)替换包含REM的规则,而不是添加回退。
mediaQuery: false, // (布尔值)允许在媒体查询中转换px。
minPixelValue: 3 // 设置要替换的最小像素值(3px会被转rem)。 默认 0
})
]
}
}
}
package.json
"devDependencies": {
...
},
"postcss": {
"plugins": {
"autoprefixer": {},
"precss": {}
}
}
H5获取页面路径上参数,组合成对象
// H5获取页面路径上参数,组合成对象
function urlAllQueryToObject() {
let hash = decodeURIComponent(window.location.hash);
let queryString = hash.split('?')[1];
if (!queryString) return;
let queryArray = queryString.split('&');
if (!queryArray.length) return;
let obj = {};
for (let i = 0; i < queryArray.length; i++) {
let item = queryArray[i];
let itemArr = item.split('=');
if (itemArr[0] === 'from' || itemArr[0] === 'isappinstalled') {
continue;
}
obj[itemArr[0]] = itemArr[1];
}
return obj;
}
判断变量是否是一个对象
`
function isPlainObject(obj) {
let prototype;
return Object.prototype.toString.call(obj) === '[object Object]' &&
(prototype = Object.getPrototypeOf(obj), prototype === null ||
prototype == Object.getPrototypeOf({}))
}
`
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.