1.数组

① 删除内容

Array.prototype.removeByValue = function(val) {
for(var i=0; i<this.length; i++) {
if(this[i] == val) {
this.splice(i, 1);
break;
}
}
}
var opsArr = ['name','kg','sex','mil'];
opsArr.removeByValue('mil');
console.log(opsArr); // ["name", "kg", "sex"]

② 获取 url上的键值对

export function urlParse(){
  let url = window.location.search;
  let reg =/[?&][^?&]+=[^&]+/g;
  let Arr = url.match(reg);
  let obj = {};
  if(Arr){
     Arr.forEach((item)=>{
     let temArr = item.substring(1).split('=');
     let key = decodeURIComponent(temArr[0]);
     let value = decodeURIComponent(temArr[1]);
     obj[key] = value;
     });
  }
return obj;
};

③ rem.js

// javascript
!(function () {
var widthScreen = 750
function getScreenWidth(){
var dl = document.documentElement.clientWidth
if(!dl){
dl = 340
return dl
}
return dl
}
var widthDl = getScreenWidth()
var sheet = (function () {
var style = document.createElement("style")
style.appendChild(document.createTextNode("html { font-size:" + (100*widthDl / widthScreen) + "px !important}"))
document.head.appendChild(style)
return style.sheet;
})();
window.addEventListener("resize", function () {
var dlResize = getScreenWidth()
sheet.insertRule("html { font-size:" + (100*dlResize / widthScreen) + "px !important}", sheet.rules.length);
sheet.deleteRule(0);
});
})();
 
④//判断是否有class
export function hasClass(el, className) {
let reg = new RegExp('(^|\\s)' + className + '(\\s|$)');
return reg.test(el.className);
}
⑤//添加class
export function addClass(el, className) {
if (hasClass(el, className)) {
return;
}
let newClass = el.className.split(' ');
newClass.push(className);
el.className = newClass.join(' ');
}
⑥//设置 /获取 自定义data- 属性的值
export function getData(el, name, val) {
const prefix = 'data-'
if (val) {
return el.setAttribute(prefix + name, val)
}
return el.getAttribute(prefix + name)
}
//⑦ 移除class
export function removeClass(el, className) {
if (!hasClass(el, className)) {
return
}
let newClass = el.className.split(' ');
newClass = newClass.splice(className,1);
el.className = newClass.join(' ');
}
let newClass = el.className.split(' ');
 
newClass.splice(newClass.indexOf(className),1);
el.className = newClass.join(' ');
}
//关于联动 前提引入jq
$('.menu').unbind('click').bind('click',function(){
  $(this).next().stop().slideToggle().siblings(".moremenu").slideUp();
  $(this).toggleClass("current").siblings(".menu").removeClass("current"); //current 父级变换图标
});
// 关于js 直接style css3 
比如: document.getElementById('div').style.transfrom =''
 

let elementStyle = document.createElement('div').style
let vendor = (() => {
let transformNames = {
webkit: 'webkitTransform',
Moz: 'MozTransform',
O: 'OTransform',
ms: 'msTransform',
standard: 'transform'
}
for (let key in transformNames) {
if (elementStyle[transformNames[key]] !== undefined) {
return key
}
}
return false
})()
export function prefixStyle(style) {
if (vendor === false) {
return false
}
if (vendor === 'standard') {
return style
}
return vendor + style.charAt(0).toUpperCase() + style.substr(1)
}
// 用法
const transform = prefixStyle('transform')
this.$refs.lyricList.$el.style[transform] = `translate3d(${offsetWidth}px,0,0)`
    

basic.js的更多相关文章

  1. CEF3开发者系列之JS与C++交互之二

    本文翻译自JavaScriptIntegration (https://bitbucket.org/chromiumembedded/cef/wiki/JavaScriptIntegration).本 ...

  2. Maven插件wro4j-maven-plugin压缩、合并js、css详解

    1.    在pom.xml文件中,引入wro4j-maven-plugin插件 <plugin> <groupId>ro.isdc.wro4j</groupId> ...

  3. java Web程序使用wro4j合并、压缩js、css等静态资源

    在Web项目中,js.css合并压缩,不仅有利于减少Http请求数量.减少宽带资源占用,还能有效的管理各种js.css的引入,使整个项目更加有序.而对于访问用户来说,其更大的好处是增加了页面的打开速度 ...

  4. JS Module

    JS Module Summary I. Why we need to use the Module? In the past, Javascript can execute independentl ...

  5. 【grunt整合版】30分钟学会使用grunt打包前端代码

    grunt 是一套前端自动化工具,一个基于nodeJs的命令行工具,一般用于:① 压缩文件② 合并文件③ 简单语法检查 对于其他用法,我还不太清楚,我们这里简单介绍下grunt的压缩.合并文件,初学, ...

  6. 【grunt第二弹】30分钟学会使用grunt打包前端代码(02)

    前言 上一篇博客,我们简单的介绍了grunt的使用,一些基础点没能覆盖,我们今天有必要看看一些基础知识 [grunt第一弹]30分钟学会使用grunt打包前端代码 配置任务/grunt.initCon ...

  7. Openfire Strophe IE跨域问题

    Openfire和Strophejs网站 域名不同如何进行通信,这个问题总算解决,下面是解决步骤. 解决方案一: Chrome浏览器默认支持跨域访问 IE浏览器需要做配置:点击IE浏览器的的“工具-& ...

  8. gruntjs

    先输入命令: npm install -g grunt-clinpm install grunt --save-devgrunt –version 新建json文件:package.json { &q ...

  9. grunt 基本使用使用(一)。

    使用grunt 之前,需要做一些基本工作. 1.在E盘 新建空文件夹 grunt. 2.在grunt目录下新建package.json 文件,用了存储 npm模块的依赖项.基本依赖块代码如下: { & ...

随机推荐

  1. node(基础)_node.js中的http服务以及模板引擎的渲染

    一.前言 本节的内容主要涉及: 1.node.js中http服务 2.node.js中fs服务 3.node.js中模板引擎的渲染 4.利用上面几点模拟apache服务器 二.知识 1.node.js ...

  2. day-04(jquery)

    回顾: js: 组成部分: ECMAScript BOM DOM 变量声明 var 变量名=初始化值; 数据类型: 原始类型 Undefined Null String Number Boolean: ...

  3. python csv与字典操作

    # encoding: utf-8 import csv d1 = {'banana':3,'apple':4,'pear':1,'orange':2} d2 = {'banana':3,'orang ...

  4. Hbase学习02

    第2章 Apache HBase配置 本章在“入门”一章中进行了扩展,以进一步解释Apache HBase的配置. 请仔细阅读本章,特别是基本先决条件,确保您的HBase测试和部署顺利进行,并防止数据 ...

  5. 面向对象+jquery实现拖拽功能

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. HDU 1020(连续同字符统计 **)

    题意是要统计在一段字符串中连续相同的字符,不用再排序,相等但不连续的字符要分开输出,不用合在一起,之前用了桶排序的方法一直 wa,想复杂了. 代码如下: #include <bits/stdc+ ...

  7. 委托(Delegate)简介

    1.什么是委托?是用来干什么的? 委托是一个类,它定义了方法的类型,使得可以将定义的方法当作另一个方法的参数来进行传递,这种将方法动态地赋给参数的做法,可以避免在程序中大量使用If-Else(Swit ...

  8. authenticate验证的流程

    from django.contrib.auth import authenticate # 默认的第一个加密算法 class PBKDF2PasswordHasher(BasePasswordHas ...

  9. 深入理解Python异步编程(上)

    本文代码整理自:深入理解Python异步编程(上) 参考:A Web Crawler With asyncio Coroutines 一.同步阻塞方式 import socket def blocki ...

  10. 无法推动项目起步?Let's try McDonald’s Theory

    McDonald’s Theory I use a trick with co-workers when we’re trying to decide where to eat for lunch a ...