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 相关文章推荐
一个小例子解释如何来阻止Jquery事件冒泡
Jul 17 Javascript
javascript顺序加载图片的方法
Jul 18 Javascript
JavaScript入门系列之知识点总结
Mar 24 Javascript
d3.js中冷门却实用的内置函数总结
Feb 04 Javascript
通过webpack引入第三方库的方法
Jul 20 Javascript
解决eclipse中没有js代码提示的问题
Oct 10 Javascript
ndm:NPM的桌面GUI应用程序
Oct 15 Javascript
微信小程序实现页面分享onShareAppMessage
Aug 12 Javascript
js实现淘宝首页的banner栏效果
Nov 26 Javascript
Vue 嵌套路由使用总结(推荐)
Jan 13 Javascript
JavaScript Image对象实现原理实例解析
Aug 26 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
Feb 24 Javascript
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
判“新”函数:得到今天与明天的秒数
2006/10/09 PHP
ThinkPHP水印功能实现修复PNG透明水印并增加JPEG图片质量可调整
2014/11/05 PHP
PHP采用get获取url汉字出现乱码的解决方法
2014/11/13 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
PHP正则表达式入门教程(推荐)
2016/05/18 PHP
php设计模式之单例模式代码
2016/06/11 PHP
Thinkphp结合AJAX长轮询实现PC与APP推送详解
2017/07/31 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
JavaScript写的一个DIV 弹出网页对话框
2009/08/14 Javascript
jQuery focus和blur事件的应用详解
2014/01/26 Javascript
巧用jquery解决下拉菜单被Div遮挡的相关问题
2014/02/13 Javascript
vue使用ajax获取后台数据进行显示的示例
2018/08/09 Javascript
jQuery实现简单的Ajax调用功能示例
2019/02/15 jQuery
微信小程序的线程架构【推荐】
2019/05/14 Javascript
Layui之table中的radio在切换分页时无法记住选中状态的解决方法
2019/09/02 Javascript
详解Vue template 如何支持多个根结点
2020/02/10 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
[49:08]Secret vs VP 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python 域名分析工具实现代码
2009/07/15 Python
python中函数总结之装饰器闭包详解
2016/06/12 Python
Python数据操作方法封装类实例
2017/06/23 Python
python用户管理系统的实例讲解
2017/12/23 Python
Python实现识别手写数字大纲
2018/01/29 Python
python实现下载pop3邮件保存到本地
2018/06/19 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
浅析Python 中几种字符串格式化方法及其比较
2019/07/02 Python
Python数据处理篇之Sympy系列(五)---解方程
2019/10/12 Python
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
前台文员个人求职信范文
2014/01/05 职场文书
农业生产宣传标语
2014/10/08 职场文书
业务员岗位职责
2015/02/03 职场文书
碧霞祠导游词
2015/02/09 职场文书
党支部季度考核意见
2015/06/02 职场文书
服装店员工管理制度
2015/08/07 职场文书
go结构体嵌套的切片数组操作
2021/04/28 Golang
python3实现Dijkstra算法最短路径的实现
2021/05/12 Python