vue项目使用jq插件

一、简介

vue项目使用jq和jqui的情况在有的老项目升级可能会出现,这里主要举例vue2项目中使用jqui的排序、拖拽、放置、缩放等方法,解决配置页面拖拽新建内容等需求。

二、具体步骤

1,准备环境

首先得在vue项目中引入jquery依赖。

(1)下载依赖

package.json文件加上以下内容,重新yarn一下即可;

"jquery": "^3.7.1",

"jquery-ui-dist": "^1.12.1"

(2)配置参数

根目录下面的build文件夹里新建webpack.base.conf.js文件,若没有就新建,并且增加以下内容:

var webpack = require('webpack')
'use strict'
const path = require('path')
module.exports = {
  context: path.resolve(__dirname, '../'),
  entry: {
    app: './src/main.js'
  },
  plugins: [
    new webpack.ProvidePlugin({
      $: 'jquery',
      jquery: "jquery",
      jQuery: 'jquery',
      'windows.jQuery': 'jquery'
    })
  ]
}

然后在main.js引入$:

import $ from "jquery";

Vue.use($)

接着在页面中引入

import $ from "jquery";

试着打印一下,$是否可以使用:

export default {
  data() {
    return {};
  },
  mounted() {
    console.log('$(".about")', $(".about"));
  },
};

2,jqui使用文档

参考下面的官方链接,去使用即可;

Jquery UI 拖动(Draggable) - 默认功能_Jquery UI 中文网icon-default.png?t=N7T8https://www.jqueryui.org.cn/demo/5611.html

(1)排序(Sortable)
<ul id="sortable">
    <li class="ui-state-default">Item 1</li>
    <li class="ui-state-default">Item 2</li>
    <li class="ui-state-default">Item 3</li>
    <li class="ui-state-default">Item 4</li>
    <li class="ui-state-default">Item 5</li>
    <li class="ui-state-default">Item 6</li>
    <li class="ui-state-default">Item 7</li>
</ul>
<script>
import $ from "jquery";
export default {
  data() {
    return {};
  },
  mounted() {
    $("#sortable").sortable();
    $("#sortable").disableSelection();
  },
};
</script>

属性表: 

属性数据类型默认值说明
appendToString"parent"指定在拖动过程中将辅助元素追加到何处
axisStringfalse指定条目的拖动方向,可选择有"x"和”y“
cancelSelector指定禁止排序的元素
connectWithSelectorfalse允许排序列表连接另一个排序列表,将条目拖动之另一个列表中去
containment

Selector

Element

String

false指定条目拖动的范围,可选值"parent","document","window",DOM元素或者jQuery选择符 
cursorString"auto"指定排序时鼠标的css样式
cursorAtObjectfalse指定拖动条目时,光标出现的位置,取值时对象,可以包含top,left,right,bottom属性中的一个或两个
delayInteger0指定拖动条目的延迟毫秒数
distance      Integer1指定拖动条目的延迟像素数
dropOnEmptyBoolean  true是否可以将条目拖放至空的列表中
forceHelperSizeBoolean  false是否强制辅助元素具有尺寸
forcePlaceholderSizeBoolean  false是否强制占有符具有尺寸
gridArrayfalse使条目或辅助元素对齐网络,取值为数组[x,y]分别表示网格的宽度和高度
handle

Selector

Element

false指定条目的拖动手柄
helper

String

Function

"original"指定显示的辅助元素,可选值:"original","clone",若为函数则返回一个DOM元素
itemsSelector">*"指定列表中可以排序的条目
opacityFloat       false指定辅助元素的不透明度0.01~1
placeholder        Stringfalse指定排序时,空白占位的css样式
revert

Boolean

Integer

false是否支持动画效果,或指定动画毫秒数
scrollBooleantrue是否元素拖动到边缘时自动滚动
scrollSensitivityInteger20指定元素拖动到距离边缘多少像素时开始滚动
scrollSpeedInteger20指定滚动的速度
toleranceString"intersect"设置拖动元素拖动多少距离时开始排序,可选值"intersect","pointer",前者表示重叠50%,后者表示重叠
z-indexInteger1000指定辅助元素的z-index值

方法名:

 事件名:

方法中的参数: 

(2)拖动(Draggable)
<ul id="sortable">
    <li class="ui-state-default sort-item">Item 1</li>
    <li class="ui-state-default sort-item">Item 2</li>
    <li class="ui-state-default sort-item">Item 3</li>
    <li class="ui-state-default sort-item">Item 4</li>
    <li class="ui-state-default sort-item">Item 5</li>
    <li class="ui-state-default sort-item">Item 6</li>
    <li class="ui-state-default sort-item">Item 7</li>
</ul>
$(".sort-item").draggable();

属性表:

属性数据类型默认值说明
cancel

Selector

Function 

"*"设置投放对象可接受的元素,若提供函数,则把拖动元素作为第一个参数传给函数,则使该函数返回true的元素皆可
activeClassStringfalse设置可接受的拖动元素处于拖动状态时,可投放对象的css样式
addClassBooleantrue是否允许投放对象添加ui-droppable类
greedyBooleanfalse是否在嵌套的投放对象中组织事件传播
hoverClassStringfalse设置拖动对象移动到投放对象上的css样式
scopeString"default"定义拖动对象和投放对象的目标集
tolerance        StringString"intersect"设置可接受的拖放元素完成投放的触发模式,包括"fit","intersect","pointer","touch"等
connectToSortable Selector false允许draggable被拖拽到指定的sortables中,如果使用此选项helper属性必须设置成clone才能正常工作
axis String false约束拖动的动作只能在X轴或Y轴上执行,可选值:'x', 'y'
cursor String "auto"指定在做拖拽动作时,鼠标的CSS样式
cursorAt Object false当开始移动时,鼠标定位在的某个位置上(最多两个方向),可选值:{ top, left, right, bottom }
delay Integer 0当鼠标点下后,延迟指定时间后才开始激活拖拽动作(单位:毫秒),此选项可以用来防止不想要的拖累元素时的误点击
distance Integer 1当鼠标点下后,只有移动指定像素后才开始激活拖拽动作
grid Array false 拖拽元素时,只能以指定大小的方格进行拖动。可选值:[x,y] 
handle Element, Selectorfalse限制只能在拖拽元素内的指定元素开始拖拽
helper 

String,

Function

'original'  拖拽元素时的显示方式。(如果是函数,必须返回值是一个DOM元素)可选值:'original', 'clone', Function 
iframeFix Boolean, Selectorfalse  可防止当mouseover事件触发拖拽动作时,移动过iframes并捕获到它(内部内容),如果设置成true,则屏蔽层会覆盖页面的iframe。如果设置成对应的选择器,则屏蔽层会覆盖相匹配的iframe
opacity Float false  当元素开始拖拽时,改变元素的透明度
refreshPositions Boolean false  如果设置成true,所有移动过程中的坐标都会被记录。(注意:此功能将影响性能)
revert 

Boolean,

String 

false  当元素拖拽结束后,元素回到原来的位置。
revertDuration Integer 500当元素拖拽结束后,元素回到原来的位置的时间。(单位:毫秒)
scope String  'default' 设置元素只允许拖拽到具有相同scope值的元素
scroll Boolean true   如果设置为true,元素拖拽至边缘时,父容器将自动滚动
scrollSensitivity Integer 20 当元素拖拽至边缘时,父窗口一次滚动的像素
scrollSpeed Integer 20当元素拖拽至边缘时,父窗口滚动的速度
snap Boolean, Selector false当设置为true或元素标签时,元素拖动到其它元素的边缘时,会自动吸附其它元素
snapMode String 'both'  确定拖拽的元素吸附的模式。可选值:'inner', 'outer', 'both' 
snapTolerance Integer 20确定拖拽的元素移动至其它元素多少像素的距离时,发生吸附的动作
stack Object false  控制由选择器所触发的一系列元素的z-index值, 总是将当前被拖动对象至于最前。对于像窗口管理这样的应用来说,非常有用
zIndex Integer false  控制当拖拽元素时,改变元素的z-index值

方法表:

事件表:

(3)放置(Droppable)
<div id="droppable" class="ui-widget-header">
    <p>放置容器</p>
</div>
$("#droppable").droppable({
      drop: function (event, ui) {
        $(this).addClass("ui-state-highlight").find("p").html("Dropped!");
      },
});

属性表:

属性数据类型默认值说明
accept  Selector, Function"*"仅允许符合适配器的元素激活拖放的事件。(如果是函数,则此函数会在页面上所有元素被调用,函数的返回值必须是布尔值。)
activeClass String false如果设置值,则当有拖拽事件发生时,为页面上所有允许(accept)的元素添加此样式
addClasses Boolean true设置为false,可以阻止ui-droppable样式添加至可拖放的对象。(这样可以获取一定的性能优化)
greedy Boolean false是否防止嵌套的droppable事件被传播
hoverClass String false当拖拽元素移至带有可拖放插件的元素上时,为元素添加指定的样式
scopeString "default"设置元素只允许具有相同scope值拖拽元素激活此拖放元素
tolerance String "intersect"判断一个可拖拽元素被【放到】一个可拖放元素的判断模式。(可选值:’fit’, ‘intersect’, ‘pointer’, ‘touch’)
fit:拖拽元素完全覆盖拖放元素
intersect:拖拽元素至少50%覆盖拖放元素
pointer:鼠标指针重叠在可拖放元素上
touch:只要有任何重叠即发生

方法表:

事件表:

(4)缩放(Resizable)
<div class="layout-item">
    <p class="layout-title">标题标题</p>
</div>
$(".layout-item").resizable();

属性表:

属性数据类型默认值说明

alsoResize

Element/String/Selector

当调整大小时,同步调整一组所选的元素大小

animateBooleanfalse是否为缩放过程添加动画效果
animateDurationInteger/String"slow"指定动画持续的时间,可以为“slow”,"normal","fast"或者具体的毫秒数
animateEasingString       "swing"指定动画的效果
aspectRatioBoolean/Floatfalse是否调整大小时,保持原长宽比,也可以指定一个长宽比,如0.5
autoHideBooleanfalse是否隐藏缩放手柄,直到鼠标位于该手柄之上时
cancelElement/String/Selector阻止匹配的元素的尺寸发生变化
containmentElement/String/Selectorfalse限制在指定元素的边界范围内,调整大小尺寸,可选值:"parent","document",DOM元素或选择符
delayInteger       0指定缩放的延迟像素数
ghostBooleanfalse是否显示半透明的辅助元素
distanceInteger1指定缩放的延迟像素数
gridArrayfalse指定缩放时对齐的网格,接受[x,y]分别为网格宽度和高度
handlesString/Object"e,s,se"定义缩放手柄,若提供字符串,则以逗号分隔n,e,s,w,ne,se,sw,nw以及all,若为对象可以包含以上属性的任意项
helperStringfalse设置辅助元素的CSS样式
maxHeightIntegernull设置允许调整的最大高度
maxWidthIntegernull设置允许调整的最大宽度
minHeightIntegernull设置允许调整的最小高度
minWidthIntegernull设置允许调整的最小宽度

 方法表:

方法名说明
$(selector).resizable("disable")禁用缩放功能
$(selector).resizable("enable")激活缩放功能
$(selector).resizable("destroy")完全删除缩放功能
$(selector).resizable("option",name[value])获取/设置属性

事件表:

事件类型说明
startresizestart当开始缩放操作时触发
resizeresize当通过缩放手柄操作时触发
stopresizestop当停止缩放操作时触发

三、demo运用

根据

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值