vue项目中全局引用jquery 、引用外部js的多种方式(外部纯函数js、外部自执行js、外部js插件),附niceScroll滚动条插件使用

vue项目中全局引用jquery :

1、“   npm install jquery --save    ” 命令安装jquery

2、在项目根目录下的 build 目录下找到webpack.base.conf.js 文件,在开头使用以下代码引入webpack,如下

var webpack = require('webpack')

3、在webpack.base.conf.js 配置文件的module.exports对象中添加一段代码如下

  plugins: [new webpack.ProvidePlugin({$: "jquery",jQuery: "jquery",jquery: "jquery","window.jQuery": "jquery"})],

4、“   npm run dev    ” 命令重新运行项目

5、在main.js文件中引入如下:

import $ from 'jquery'

6、测试:在组件中直接使用jquery选择器

<template><div class="childContainer"><div id="testJquery">这行文字的颜色将用来测试全局jquery是否引用成功</div></div>
</template><script>export default {name:"Child",data(){return {}},mounted(){$("#testJquery").css({'color':'red','font-weight':'bold'});   //也可以使用jQuery("#testJquery").css()},}
</script>

 

vue项目中引用外部js插件

 

第一种外部js文件为纯函数js文件:

项目结构如下图:

 

1、公共JavaScript函数 util.js ,注意最后要使用 export {funcName}  的形式导出需要的函数

//数字相加
function addNum(a,b){return a+b;
}// 判断数组元素是否重复
function isArrRepeat(arr) {var _arr = arr.sort();console.log(_arr)for (var i = 0; i < _arr.length; i++) {if (_arr[i] === _arr[i + 1]) {return true;}}return false;}// 判断数据类型
function type(elem) {if (elem == null) {return elem + '';}return toString.call(elem).replace(/[\[\]]/g, '').split(' ')[1].toLowerCase();}//返回浏览器版本function getExplorerInfo() {let explorer = window.navigator.userAgent.toLowerCase();// ieif (explorer.indexOf("msie") >= 0) {let ver = explorer.match(/msie ([\d.]+)/)[1];return {type: "IE",version: ver};}// firefoxelse if (explorer.indexOf("firefox") >= 0) {let ver = explorer.match(/firefox\/([\d.]+)/)[1];return {type: "Firefox",version: ver};}// Chromeelse if (explorer.indexOf("chrome") >= 0) {let ver = explorer.match(/chrome\/([\d.]+)/)[1];return {type: "Chrome",version: ver};}// Operaelse if (explorer.indexOf("opera") >= 0) {let ver = explorer.match(/opera.([\d.]+)/)[1];return {type: "Opera",version: ver};}// Safarielse if (explorer.indexOf("Safari") >= 0) {let ver = explorer.match(/version\/([\d.]+)/)[1];return {type: "Safari",version: ver};}
}//导出声明的公共函数
export {addNum, getExplorerInfo
} 

2、vue模板组件中使用引用的外部js函数, 注意要使用 import {} from '../js/path' 引用导出的js函数

<template><div class="hello"><h3 id="h">{{testMsg}}</h3><div><button @click="changeTxt()">修改dom文本内容</button><button @click="add(5,8)">计算5+8</button><button @click="getExplInfo()">获取当前浏览器信息</button></div></div>
</template><script>
import {addNum,getExplorerInfo} from '../assets/js/util.js'  //引入外部js中的函数
export default {name: 'HelloWorld',data () {return {testMsg:"原始值",}},methods:{changeTxt:function(){let that=this;that.testMsg="修改后的文本值";  //修改dom数据},add:function(a,b){let c=addNum(a,b);   //使用外部js中的函数console.log(c);},getExplInfo:function(){let info=getExplorerInfo();console.log(info);}}
}
</script>

 

 

第二种外部js是自执行匿名函数:

1、该匿名函数js根据浏览器尺寸修改字体尺寸大小

(function (doc, win) {let aa=123;console.log(aa);let docEl = doc.documentElement,resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',recalc = function () {var clientWidth = docEl.clientWidth;if (!clientWidth) return;if (clientWidth >= 840) {docEl.style.fontSize = '70px';} else if (clientWidth >= 640) {docEl.style.fontSize = '50px';} else {docEl.style.fontSize = 50 * (clientWidth / 640) + 'px';}};if (!doc.addEventListener) return;win.addEventListener(resizeEvt, recalc, false);doc.addEventListener('DOMContentLoaded', recalc, false);
})(document, window);

2、在vue组件模板中使用import引入外部自执行的js

import '../assets/js/autoDone.js'  //引入外部匿名函数

 

 

第三种外部js是封装的插件js:

这里以引用niceScroll.js滚动条插件为例

1、niceScroll.js下载网盘链接:https://pan.baidu.com/s/1p_rkxCAq8bKS7x5e_-N4Cg 
提取码:dt88 
 

2、vue组件模板使用import导入外部niceScroll.js,

<template><div class="hello"><div id="boxscroll">THIS IS A SIMPLE SCROLLABLE DIV<h2> Package Description </h2><p>Release Date: August 10, 2010</p><p>The <a title="http://www.openprinting.org/show_driver.cgi?driver=hpijs" rel="nofollow" href="http://www.openprinting.org/show_driver.cgi?driver=hpijs">HPIJS</a> driver is the free, <a title="http://hplipopensource.com/hplip-web/index.html" rel="nofollow" href="http://hplipopensource.com/hplip-web/index.html">open-source driver</a> issued by HP for their DeskJet and LaserJet printers. For most <a title="" href="http://www.linuxfoundation.org/collaborate/workgroups/openprinting/macosx/hpijs#Printers">supported printers</a>,   this driver produces output quality equivalent to the proprietary HP   drivers. In photo mode, with photo paper, the output quality is very   high, especially for the HP DeskJet 990C and later models, which   auto-detect the paper type in hardware. Photo printing is fully   supported in the newer 6- and 7-ink models.</p><p>A major advantage of using this driver over those supplied by HP is   the direct interface between HPIJS and the native CUPS spooler, which   allows printing from any printer over any available connection such as   USB, AppleTalk, TCP/IP (via LPD and IPP), HP JetDirect, and shared   windows printers via SAMBA. Additionally, this driver utilizes the   existing Mac OS X USB &quot;backend&quot; and thus does not install any software   that might interfere with standard USB operation.</p><p>Please note:</p><ul><li>HP does not provide any support for HPLIP or HPIJS on the Mac OS X platform.</li><li><a href="http://www.linuxfoundation.org/en/OpenPrinting/MacOSX/hpijs-USB">Several HP USB devices</a> may not print successfully over the standard Mac OS X USB &quot;backend&quot;. Please <a href="http://www.linuxfoundation.org/en/OpenPrinting/MacOSX/hpijs-USB">see this note</a> for more information.</li></ul><h2>Release Notes</h2><ul><li>This release fixes a problem with the PPDs that caused many job   options such as page orientation, color/grayscale mode, duplex printing,   etc. to fail.</li><li>HPIJS is HP's universal printer driver for most of their   non-PostScript printers. It comes as a part of HPLIP, HP Linux Imaging   and Printing.</li><li>The PPDs for HP printers are now sourced from the HPLIP package rather than the OpenPrinting.org database.</li><li>PPDs for printers from other manufacturers are provided by OpenPrinting.org.</li><li>Some printers are only partially supported.  Printers such as<br />HP LaserJet 1022<br />HP LaserJet p1505n<br />HP LaserJet p12014<br />HP LaserJet p2035<br />require a proprietary plug-in for full support.  This package does not contain or support such plug-ins.</li></ul><p><a name="Printer_Set_Up_Instructions" id="Printer_Set_Up_Instructions"></a></p><h2> Printer Set Up Instructions </h2><p>To add a printer queue, Leopard (Mac OS X 10.5.x) users should use   the Print &amp; Fax from System Preferences. Click on the + (plus) icon   at the lower left. A new window will open. In that window, click the   Default Browser icon at the top left. Highlight your printer in the   section below. Use the &quot;Print Using&quot; pop-up menu near the bottom of the   window to select the correct PPD for your printer and click Add.</p><p>Tiger users should open the Printer Setup Utility and click on the   Add icon at the top of the Printer List window. A new window will open.   In that window, click the Default Browser icon at the top left.   Highlight your printer in the section below. Use the &quot;Print Using&quot;   pop-up menu near the bottom of the window to select the correct PPD for   your printer and click Add.</p><p>Jaguar (OS X 10.2.x) and Panther (OS X 10.3.x) users should open   Print Center (Jaguar) or Printer Setup Utility (Panther), hold down the   Option key, and click the Add Printer button in the Print Center   toolbar. Within the setup sheet, choose Advanced from the top popup   menu; then in the &quot;Device:&quot; popup menu select your printer by name (it   should be the last item in the menu list). Finally, select the correct   PPD from the model browser and click Add.</p></div></div>
</template>
<style>
#boxscroll {padding: 40px;height: 220px;width: 300px;border: 2px solid #00F;overflow: auto;margin-bottom:20px;
}
</style><script>
import '../assets/js/jquery.niceScroll.min.js'  //引入外部js插件export default {name: 'HelloWorld',data () {return {}},mounted(){$("#boxscroll").niceScroll({cursorborder:"",cursorcolor:"#00F",boxzoom:true}); // First scrollable DIV},
}
</script>

注意:该滚动条插件依赖于jquery,所以需要先全局引用jquery

 

PS附加:niceScroll.js滚动条插件使用方法

niceScroll 配置选项:

    $("#boxscroll").niceScroll({cursorcolor: "#424242", // 改变滚动条颜色,使用16进制颜色值cursoropacitymin: 0, // 当滚动条是隐藏状态时改变透明度, 值范围 1 到 0cursoropacitymax: 1, // 当滚动条是显示状态时改变透明度, 值范围 1 到 0cursorwidth: "5px", // 滚动条的宽度,单位:便素cursorborder: "1px solid #fff", // CSS方式定义滚动条边框cursorborderradius: "5px", // 滚动条圆角(像素)zindex: "auto" | 3, // 改变滚动条的DIV的z-index值scrollspeed: 60, // 滚动速度mousescrollstep: 40, // 鼠标滚轮的滚动速度 (像素)touchbehavior: false, // 激活拖拽滚动hwacceleration: true, // 激活硬件加速boxzoom: false, // 激活放大box的内容dblclickzoom: true, // (仅当 boxzoom=true时有效)双击box时放大gesturezoom: true, // (仅 boxzoom=true 和触屏设备时有效) 激活变焦当out/in(两个手指外张或收缩)grabcursorenabled: true, // (仅当 touchbehavior=true) 显示“抓住”图标display "grab" iconautohidemode: true, // 隐藏滚动条的方式, 可用的值:// true  // 无滚动时隐藏// "cursor" | // 隐藏// false | // 不隐藏,// "leave" | // 仅在指针离开内容时隐藏// "hidden" | // 一直隐藏// "scroll", // 仅在滚动时显示background: "", // 轨道的背景颜色iframeautoresize: true, // 在加载事件时自动重置iframe大小cursorminheight: 32, // 设置滚动条的最小高度 (像素)preservenativescrolling: true, // 你可以用鼠标滚动可滚动区域的滚动条和增加鼠标滚轮事件railoffset: false, // 可以使用top/left来修正位置bouncescroll: false, // (only hw accell) 启用滚动跳跃的内容移动spacebarenabled: true, // 当按下空格时使页面向下滚动railpadding: { top: 0, right: 0, left: 0, bottom: 0 }, // 设置轨道的内间距disableoutline: true, // 当选中一个使用nicescroll的div时,chrome浏览器中禁用outlinehorizrailenabled: true, // nicescroll可以管理水平滚动railalign: right, // 对齐垂直轨道railvalign: bottom, // 对齐水平轨道enabletranslate3d: true, // nicescroll 可以使用CSS变型来滚动内容enablemousewheel: true, // nicescroll可以管理鼠标滚轮事件enablekeyboard: true, // nicescroll可以管理键盘事件smoothscroll: true, // ease动画滚动sensitiverail: true, // 单击轨道产生滚动enablemouselockapi: true, // 可以用鼠标锁定API标题 (类似对象拖动)cursorfixedheight: false, // 修正光标的高度(像素)hidecursordelay: 400, // 设置滚动条淡出的延迟时间(毫秒)directionlockdeadzone: 6, // 设定死区,为激活方向锁定(像素)nativeparentscrolling: true, // 检测内容底部便于让父级滚动enablescrollonselection: true, // 当选择文本时激活内容自动滚动cursordragspeed: 0.3, // 设置拖拽的速度rtlmode: "auto", // DIV的水平滚动从左边开始cursordragontouch: false, // 使用触屏模式来实现拖拽oneaxismousemode: "auto", // 当只有水平滚动时可以用鼠标滚轮来滚动,如果设为false则不支持水平滚动,如果设为auto支持双轴滚动scriptpath: "", // 为boxmode图片自定义路径 ("" => same script path)preventmultitouchscrolling: true // 防止多触点事件引发滚动});

注意:项目中单个组件可能会使用多个niceScroll对象时,要及时隐藏用完的nicescroll对象,加载时,需要先show,再resize。

 

1、隐藏滚动条

$("#mydiv").getNiceScroll().hide();

2、当浏览器窗口尺寸改变时候,主要重置滚动条大小

$("#mydiv").getNiceScroll().resize();

3、滚动条到指定位置

$("#mydiv").getNiceScroll(0).doScrollLeft(x, duration); // Scroll X Axis
$("#mydiv").getNiceScroll(0).doScrollTop(y, duration); // Scroll Y Axis

 

参考网址:

https://blog.csdn.net/mss359681091/article/details/52838179

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/554056.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue生命周期详解、钩子函数的调用(简单易懂)

定义&#xff1a;vue的生命周期是指vue实例从初始化创建到实例销毁的过程。期间会有8个钩子函数的调用。 vue的钩子函数图解&#xff1a; vue的钩子函数使用总结&#xff1a; 1、beforeCreate&#xff08;创建前&#xff09;:beforeCreate钩子函数&#xff0c;这个时候&#x…

vue-router详尽:编程式导航、路由重定向、动态路由匹配、路由别名、嵌套路由、命名视图

vue-router编程式导航 在vue项目中经常用到this.$router.push() 和 this.$router.replace() 方法进行路由跳转就是编程式导航。。。 通俗理解编程式导航&#xff1a;通过操作$router实例的JavaScript代码实现路由跳转。点击 <router-link :to"..."> 等同于调用…

java基础学习笔记(一)

java开发环境搭建&#xff1a;JDK配置 java 集成开发环境IDE&#xff08;Integrated Development Environment&#xff09; 》Eclipse工具 1、官网下载后安装elipse&#xff0c;注意&#xff1a;Eclipse 安装时JDK位数和Eclpise位数必须保持一致&#xff0c;安装过程中Switch…

常用矢量图有哪些格式?AI文件存储为psd分层

前言 下载的矢量图资源会发现有ai格式、cdr格式的、eps格式、icon格式&#xff0c;有的能使用Photoshop打开而有的不行。使用Photoshop保存矢量图时候选择什么格式保存都是经常遇到的问题。 常见问题及解决&#xff1a;PS打开ai格式的矢量图文件&#xff0c;你用PS打开发现只…

java基础学习笔记(二)

1、数组排序之选择法排序和冒泡排序&#xff1f; 选择法排序原理&#xff1a;数组第一位和后续位置数值比较&#xff0c;最大或最小的调换位置后放在第一位&#xff1b;依次比较将第二大或小的值调换位置后放在第二位置&#xff1b;代码如下&#xff1a; for (int j 0; j <…

java基础学习笔记(三)

1、装箱和拆箱 所有基本类型都有对应的类类型&#xff0c;比如int对应的类是Integer,这种类就叫做封装类。数字封装类有Byte、Short、Integer、Long、Float、Double这些类都是抽象类Number的子类。封装类和基本类型之间可以相互转换&#xff0c;而基本类型自动转封装类型就叫装…

名片设计尺寸及注意事项(详尽),附加:文字转曲线或外框字;网址、文字转二维码方法

附加&#xff1a; 文字如何转曲线或外框字&#xff1f;&#xff1f; "转曲"是在用Corl Draw(简称CD)或者Adobe Illustrator(简称AI)做图时对文字作的一项重要操作,因为如果不转曲的话在把文件拿到其它电脑上编辑时可能会因为缺少字体文件而不能正常显示文字!! 转曲…

AVI转MP4视频无损格式转码

前言&#xff1a;产品宣传需要无损avi转mp4转换格式 前期准备&#xff1a; 格式工厂 下载链接&#xff1a;https://pan.baidu.com/s/1WLD1ip9EaMdca_k2x7Zhvg 提取码&#xff1a;i4nx DIVX、AVC、HEVC三种压码格式的区别&#xff1a; DivX是早期的MPEG4视频压缩编码&…

vue-cli搭建和“Cannot find module npm-cli.js” 、“operation not permitted” 、 deprecated coffee-script等错误

前言&#xff1a;重装nodejs后&#xff0c; vue-cli搭建项目后运行vue项目报错报错 "npm Error: Cannot find module npm-cli.js" &#xff0c;同时发现npm -v 也报错。 分析: vue-cli脚手架模板是基于node下的npm来完成安装的&#xff0c;安装vue-cli也会先安装no…

websocket 学习--简单使用,nodejs搭建websocket服务器,到模拟股票,到实现聊天室

websocket简介&#xff1a; WebSocket协议是 HTML5 开始提供的一种基于TCP的一种新的全双工通讯的网络通讯协议。它允许服务器主动发送信息给客户端。 和http协议的不同&#xff1f;&#xff1f; HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型…

红队打靶练习:DIGITALWORLD.LOCAL: FALL

目录 信息收集 1、arp 2、netdiscover 3、nmap 4、nikto 5、whatweb 6、小结 目录探测 1、gobuster 2、dirsearch WEB 80端口 /test.php 文件包含漏洞 SSH登录 提权 get root and flag 信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interfa…

vue全局安装jquery,vue使用bootstrap框架,vue中封装websocket通讯,vue引入element-ui 组件库,引入highcharts图表插件

vue安装jquery&#xff1a; 1、使用vue-cli创建好vue项目后&#xff0c;在项目文件夹下&#xff0c;使用命令npm install jquery --save-dev 引入jquery。 2、修改项目文件 build/webpack.base.conf.js&#xff0c;添加如下内容&#xff1a; var webpackrequire(webpack) mo…

flex弹性布局笔记

学习自菜鸟教程的flex布局笔记 布局的传统解决方案&#xff0c;基于盒装模型&#xff0c;依赖 display 属性 position 属性 float 属性。它对于那些特殊布局非常不方便&#xff0c;比如&#xff0c;垂直居中就不容易实现。 简介&#xff1a; W3C提出了一种新的方案—-Flex布…

css宽高自适应布局,实现Sticky Footer的三种布局方式

宽度自适应布局&#xff1a; 1、使用场景&#xff1a; 一侧&#xff08;左侧或者右侧&#xff09;为固定的导航或者菜单栏&#xff0c;另一侧将会随着浏览器的缩放而自适应改变其大小。这种布局结构可用于顶层布局结构亦可用于某个局部功能块&#xff0c;常见于各种web系统&am…

vue学习:事件传递(冒泡和捕获),事件委托,jquery中的事件委托,$event 获取元素,vue事件修饰符

事件传递 ----冒泡和捕获 DOM事件标准定义了两种事件流&#xff0c;这两种事件流分别是捕获和冒泡。 和许多Web技 术一样&#xff0c;在它们成为标准之前&#xff0c;Netscape和微软各自不同地实现了它们。Netscape选择实现了捕获事件流&#xff0c;微软则实现了冒泡事件流。…

vue中路径的配置使用

绝对路径使用&#xff1a; 在项目中build文件夹下的webpack.base.conf.js的 使用如下&#xff1a; import mock from /mock/mock.js; html 相对路径使用 1. 当需要引用 同一目录下的文件&#xff0c;直接输入文档, 如下 <img src”bg.jpg” /> 2、当需要引用下一级目录…

常用MIME类型,解决IIS布署后字体文件、mp4视频文件等not found 的错误

前言&#xff1a;项目在本地运行正常&#xff0c;但部署在IIS服务器后使用浏览器访问项目会报&#xff1a;404 not found 错误&#xff0c;包括mp4视频文件和woff文件找不到。。如下 原因&#xff1a;在IIS中没有将 .mp4和 .woff 后缀的相应的MIME类型&#xff0c;使得 .mp4等格…

浏览器兼容video视频播放的多种方法

前言&#xff1a; 在 HTML 中播放视频并不容易&#xff01;因为直到现在&#xff0c;仍然不存在一项旨在网页上显示视频的标准。今天&#xff0c;大多数视频是通过插件&#xff08;比如 Flash&#xff09;来显示的。然而&#xff0c;并非所有浏览器都拥有同样的插件。 比如win…

pdf文件加密解密,pdf忘记密码解密的办法

1、pdf文件加密 步骤&#xff1a;wps》菜单“保护”》文档加密&#xff0c;设置编辑及页面密码&#xff0c;如下 2、pdf解密 在解密窗口取消选择“设置编辑及页面密码”&#xff0c;如下 注意&#xff1a;当忘记pdf密码时&#xff0c;可以使用pdf解密软件解密&#xff0c;如下…

伪类::selection自定义文本选中时的样式(CSS3样式),CSS3的word-break单次换行

1、::selection CSS3伪类自定义文本选中时的样式 有的人在浏览网页时&#xff0c;喜欢一边选中文本一边阅读。在windows环境下&#xff0c;正常的文本选中应该是深蓝色背景白色文本的样式。那么想要修改文本选中样式&#xff0c;可以通过css中有这样的一个伪类::selection用于自…