jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法(附demo源码下载)


Posted in Javascript onFebruary 25, 2016

本文实例讲述了jquery插件jquery.dragscale.js实现拖拽改变元素大小的方法。分享给大家供大家参考,具体如下:

该插件是文章作者所写,目的在于提升作者的js能力,也给一些js菜鸟在使用插件时提供一些便利,老鸟就悠然地飞过吧。

此插件旨在实现目前较为流行的拖拽改变元素大小的效果,您可以根据自己的实际需求来设置被拖拽元素的最小宽高和最大宽高。整体代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{margin:0;padding:0;}
.box{position:absolute;left:100px;top:100px;border:1px solid #eee;width:150px;height:150px;padding:10px;cursor:move;}
.drag{position:absolute;bottom:3px;right:3px;display:block;width:7px;height:7px;background:url(scale.png) no-repeat}
</style>
<script type="text/javascript" src="jquery-1.7.1.js"></script>
<script type="text/javascript" src="jquery.resizable.js"></script>
</head>
<body>
<div class="box">拖拽我吧!<span class="drag"></span></div>
<script>
$(function(){
  $(".drag").resizable({
    minW : 150,
    minH : 150,
    maxW : 500,
    maxH : 500,
    });
  })
</script>
</body>
</html>

插件 jquery.dragscale.js 代码:

/*
*resizable 0.1
*Dependenc jquery-1.7.1.js
*/
;(function(a){
  a.fn.resizable = function(options){
    var defaults = { //默认参数
      minW : 150,
      minH : 150,
      maxW : 500,
      maxH : 500,
      }
    var opts = a.extend(defaults, options);
    this.each(function(){
      var obj = a(this);
      obj.mousedown(function(e){
        var e = e || event; //区分IE和其他浏览器事件对象
        var x = e.pageX - obj.position().left; //获取鼠标距离匹配元素的父元素左侧的距离
        var y = e.pageY - obj.position().top; //获取鼠标距离匹配元素的父元素顶端的距离
        $(document).mousemove(function(e){
          var e = e || event;
          var _x = e.pageX - x; //动态获取匹配元素距离其父元素左侧的宽度
          var _y = e.pageY - y;
          _x = _x < opts.minW ? opts.minW : _x; //保证匹配元素的最小宽度为150px
          _x = _x > opts.maxW ? opts.maxW : _x; //保证匹配元素的最大宽度为500px
          _y = _y < opts.minH ? opts.minH : _y;
          _y = _y > opts.maxH ? opts.maxH : _y;
          obj.parent().css({width:_x,height:_y});
        }).mouseup(function(){
          $(this).unbind("mousemove"); //当鼠标抬起 删除移动事件  匹配元素宽高变化停止
          });
        });
      })
    }
})(jQuery);

完整实例代码点击此处本站下载。

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
自动更新作用
Oct 08 Javascript
jquery判断浏览器类型的代码
Nov 05 Javascript
JQuery包裹DOM节点的方法
Jun 11 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
Mar 14 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
Jul 01 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
Nov 03 Javascript
jQuery实现判断上传图片类型和大小的方法示例
Apr 11 jQuery
Vue.js 父子组件通信的十种方式
Oct 30 Javascript
javascript实现京东登录显示隐藏密码
Aug 02 Javascript
vant 自定义 van-dropdown-item的用法
Aug 05 Javascript
JavaScript数组常用的增删改查与其他属性详解
Oct 13 Javascript
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
js判断图片加载完成后获取图片实际宽高的方法
Feb 25 #Javascript
JS面向对象(3)之Object类,静态属性,闭包,私有属性, call和apply的使用,继承的三种实现方法
Feb 25 #Javascript
jquery zTree异步加载简单实例讲解
Feb 25 #Javascript
JavaScript代码因逗号不规范导致IE不兼容的问题
Feb 25 #Javascript
jquery插件jquery.LightBox.js实现点击放大图片并左右点击切换效果(附demo源码下载)
Feb 25 #Javascript
JQuery ztree带筛选、异步加载实例讲解
Feb 25 #Javascript
jquery ztree实现模糊搜索功能
Feb 25 #Javascript
You might like
PHP学习之PHP变量
2006/10/09 PHP
WAMP环境中扩展oracle函数库(oci)
2015/06/26 PHP
php开发微信支付获取用户地址
2015/10/04 PHP
php实现计算百度地图坐标之间距离的方法
2016/05/05 PHP
PHP面向对象继承用法详解(优化与减少代码重复)
2016/12/02 PHP
通过PHP实现用户注册后邮箱验证激活
2020/11/10 PHP
IE6与IE7中,innerHTML获取param的区别
2009/03/15 Javascript
基于jquery的网页SELECT下拉框美化代码
2010/10/28 Javascript
Javascript的闭包详解
2014/12/26 Javascript
js+HTML5实现视频截图的方法
2015/06/16 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
jquery获取form表单input元素值的简单实例
2016/05/30 Javascript
Nodejs下用submit提交表单提示cannot post错误的解决方法
2016/11/21 NodeJs
jQuery Validate 校验多个相同name的方法
2017/05/18 jQuery
微信小程序实现鼠标拖动效果示例
2017/12/01 Javascript
webpack 4.0.0-beta.0版本新特性介绍
2018/02/10 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
vue+iview实现文件上传
2020/11/17 Vue.js
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python导入模块时遇到的错误分析
2017/08/30 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
python交易记录整合交易类详解
2019/07/03 Python
Python中sys模块功能与用法实例详解
2020/02/26 Python
纯HTML5+CSS3制作图片旋转
2016/01/12 HTML / CSS
英国马莎百货官网:Marks & Spencer
2016/07/29 全球购物
巴西女装购物网站:Eclectic
2018/04/24 全球购物
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
J2EE的优越性主要表现在哪些方面
2016/03/28 面试题
班级活动策划书
2014/02/06 职场文书
教师节主题班会方案
2015/08/17 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
员工试用期工作总结
2019/06/20 职场文书
JS创建或填充任意长度数组的小技巧汇总
2021/10/24 Javascript