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 相关文章推荐
电子商务网站上的常用的js放大镜效果
Dec 08 Javascript
关于jquery ajax 调用带参数的webservice返回XML数据一个小细节
Jul 31 Javascript
纯js网页画板(Graphics)类简介及实现代码
Dec 24 Javascript
js阻止事件追加的具体实现
Oct 15 Javascript
表单验证插件Validation应用的实例讲解
Oct 10 Javascript
js实现点击获取验证码倒计时效果
Jan 28 Javascript
js 中获取制定的cook信息实现方法
Nov 19 Javascript
vue实现商品加减计算总价的实例代码
Aug 12 Javascript
深入理解基于vue-cli的webpack打包优化实践及探索
Oct 14 Javascript
vue 内联样式style中的background用法说明
Aug 05 Javascript
在react项目中使用antd的form组件,动态设置input框的值
Oct 24 Javascript
解决Vue+SpringBoot+Shiro跨域问题
Jun 09 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
自动跳转中英文页面
2006/10/09 PHP
php生成xml简单实例代码
2009/12/16 PHP
php中socket的用法详解
2014/10/24 PHP
Laravel 5框架学习之环境与配置
2015/04/08 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
使用JavaScript的ActiveXObject对象检测应用程序是否安装的方法
2014/04/15 Javascript
JavaScript严格模式禁用With语句的原因
2014/10/20 Javascript
2则自己编写的jQuery特效分享
2015/02/26 Javascript
详解JavaScript中数组的相关知识
2015/07/29 Javascript
JavaScript兼容浏览器FF/IE技巧
2016/08/14 Javascript
修改jquery中dialog的title属性方法(推荐)
2016/08/26 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
jQuery使用ajax_动力节点Java学院整理
2017/07/05 jQuery
ajax+node+request爬取网络图片的实例(宅男福利)
2017/08/28 Javascript
在vue中axios设置timeout超时的操作
2020/09/04 Javascript
Python使用Socket(Https)Post登录百度的实现代码
2012/05/18 Python
python中的内置函数getattr()介绍及示例
2014/07/20 Python
Python代码块批量添加Tab缩进的方法
2018/06/25 Python
Python常见的pandas用法demo示例
2019/03/16 Python
python 缺失值处理的方法(Imputation)
2019/07/02 Python
在Python中等距取出一个数组其中n个数的实现方式
2019/11/27 Python
django框架forms组件用法实例详解
2019/12/10 Python
如何基于Python创建目录文件夹
2019/12/31 Python
Python flask框架实现查询数据库并显示数据
2020/06/04 Python
Opodo英国旅游网站:预订廉价航班、酒店和汽车租赁
2018/07/14 全球购物
英国Office鞋店德国网站:在线购买鞋子、靴子和运动鞋
2018/12/19 全球购物
合作协议书范本
2014/04/17 职场文书
合作协议书范文
2014/08/20 职场文书
2014年关工委工作总结
2014/11/17 职场文书
2014年商场工作总结
2014/11/22 职场文书
世界水日宣传活动总结
2015/02/09 职场文书
民主评议党员个人总结
2015/02/13 职场文书
活动费用申请报告
2015/05/15 职场文书
利用Nginx代理如何解决前端跨域问题详析
2021/04/02 Servers
React Fragment介绍与使用详解
2021/11/11 Javascript