Code Monkey home page Code Monkey logo

utils's People

Contributors

dongbaihan avatar

Watchers

 avatar

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图片中实现局部点击

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

如何实现动态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
  1. 安装lib-flexible
npm install lib-flexible
  1. 安装 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 photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.