jquery实现可旋转可拖拽的文字效果代码


Posted in Javascript onJanuary 27, 2016

本文实例讲述了jquery实现可旋转可拖拽的文字效果代码。分享给大家供大家参考,具体如下:

运行效果截图如下:

jquery实现可旋转可拖拽的文字效果代码

具体代码如下:

<html>
 <head>
  <title>test</title>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script type="text/javascript" src="jquery.js"></script>
  <script type="text/javascript" >
   function scaleXBlock(blocker, scaleX){
    blocker.css({
     "-moz-transform": 'scaleX(' + scaleX + ')' ,
     "-webkit-transform": 'scaleX(' + scaleX + ')' ,
     "-o-transform": 'scaleX(' + scaleX + ')',
     "-ms-transform": 'scaleX(' + scaleX + ')',
     "transform": 'scaleX(' + scaleX + ')'
    });
   }
   function getPosition(event){
    return {
     x: parseInt(event.pageX || event.X),
     y: parseInt(event.pageY || event.Y)
    }
   }
   function cancelEvent(event){
    if(event.preventDefault ) {
     event.preventDefault(); 
    } else {
     //IE中阻止函数器默认动作的方式 
     event.returnValue = false; 
    }
    return false;
   }
   function stopDrag(blocker){
    blocker.data('draginfo', {
     isDrag: false
    });
    blocker.css('cursor', "arrow");
   }
   function drag(blocker){
    blocker.data('draginfo', {
     isDrag: false
    });
    blocker.css("position", "absolute");
    blocker.mousedown(function(event){
     event = event || window.event;
     var position = getPosition(event),
      offset = blocker.offset(),
      offsetX = position.x - parseInt(offset.left),
      offsetY = position.y - parseInt(offset.top);
     blocker.css('cursor', "move");
     blocker.data('draginfo', {
      isDrag: true,
      offsetX: offsetX,
      offsetY: offsetY 
     });
     cancelEvent(event);
    });
    blocker.mouseup(function(){
     stopDrag($(this));
    });
    $(document).mousemove(function(event){
     var dragInfo = blocker.data('draginfo');
     if(!dragInfo.isDrag) { 
      return;
     }
     event = event || window.event;
     var position = getPosition(event),
      x = position.x - dragInfo.offsetX,
      y = position.y - dragInfo.offsetY;
     blocker.css({
      "left": x + "px",
      "top": y + "px"
     });
     cancelEvent(event);
    }).mouseup(function(){
     stopDrag(blocker);
    });
   }
   function loopScaleXBlock(timeout, mode, blocker, scaleX){
    scaleXBlock(blocker, scaleX);
    setTimeout(function(){
     if(mode == "bigger") {
      if(scaleX < 1) {
       scaleX += 0.05;
      } else {
       mode = "smaller";
       scaleX = 1;
      }
     } else {
      if(scaleX > 0) {
       scaleX -= 0.05;
      } else {
       mode = "bigger";
       scaleX = 0.05;
      }
     }
     loopScaleXBlock(timeout, mode, blocker, scaleX);
    }, timeout);
   }
   function initDrag(){
    var dragList = $(".drag");
    for(var i=0,length=dragList.length; i<length; i++) {
     drag($(dragList[i]));
    }
   }
   function initScaleX(){
    var scaleXList = $(".scale");
    for(var i=0,length=scaleXList.length; i<length; i++) {
     loopScaleXBlock(10 * i + 10, "smaller", $(scaleXList[i]), 1);
    }
   }
   $(document).ready(function(){
    initScaleX();
    initDrag();
   });
  </script>
  <style type="text/css" >
   body 
   { 
    margin:0;
    background:black;
   }
   .block 
   { 
    position: absolute;
    text-align: center; 
    display: block; 
    width: 250px; 
    height: 250px; 
    background: #494949;
    font-size: 80px;
    color: #fff;
    line-height: 125px;
    text-shadow: 2px 2px 2px #fff;
    box-shadow: 2px 2px 2px #fff;
    cursor: pointer;
    opacity: 0.6;
    filter: alpha(opacity=60);
   }
   #scale
   {
    left:0;
    top:0;
   }
   #scale2
   {
    left:300px;
    top:0;
    background: #F2F2F2;
    color: orange;
   }
   #scale3
   {
    left:600px;
    top:0;
    background: orange;
    color: #494949;
   }
   #scale4
   {
    left:900px;
    top:0;
    background: green;
    color: gray;
   }
   #scale5
   {
    left:1200px;
    top:0;
    background: #494949;
    color: orange;
   }
  </style>
 </head>
 <body>
  <div class="block scale drag" id="scale">
   欢迎来看咧
  </div>
  <div class="block scale drag" id="scale2">
   欢迎来看咧
  </div>
  <div class="block scale drag" id="scale3">
   欢迎来看咧
  </div>
  <div class="block scale drag" id="scale4">
   欢迎来看咧
  </div>
  <div class="block scale drag" id="scale5">
   欢迎来看咧
  </div>
 </body>
</html>

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

Javascript 相关文章推荐
JavaScript 常用函数
Dec 30 Javascript
jQuery 浮动导航菜单适合购物商品类型的网站
Sep 09 Javascript
web前端设计师们常用的jQuery特效插件汇总
Dec 07 Javascript
究竟什么是Node.js?Node.js有什么好处?
May 29 Javascript
JavaScript简单遍历DOM对象所有属性的实现方法
Oct 21 Javascript
seajs学习教程之基础篇
Oct 20 Javascript
JS实现的简单标签点击切换功能示例
Sep 21 Javascript
JavaScript运行原理分析
Feb 09 Javascript
js canvas实现橡皮擦效果
Dec 20 Javascript
js基础之事件捕获与冒泡原理
Oct 09 Javascript
vue 实现走马灯效果
Oct 28 Javascript
JavaScript如何利用Promise控制并发请求个数
May 14 Javascript
jquery+css3实现会动的小圆圈效果
Jan 27 #Javascript
再谈JavaScript异步编程
Jan 27 #Javascript
简单介绍jsonp 使用小结
Jan 27 #Javascript
理解javascript异步编程
Jan 27 #Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
Jan 27 #Javascript
AngularJS转换响应内容
Jan 27 #Javascript
jQuery+css实现的切换图片功能代码
Jan 27 #Javascript
You might like
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
phpmailer绑定邮箱的实现方法
2016/12/01 PHP
laravel中的一些简单实用功能
2018/11/03 PHP
PHP中echo与print区别点整理
2021/03/09 PHP
JQuery 学习笔记 选择器之六
2009/07/23 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
12306验证码破解思路分享
2015/03/25 Javascript
jquery性能优化高级技巧
2015/08/24 Javascript
网页从弹窗页面单选框传值至父页面代码分享
2015/09/29 Javascript
jQuery增加和删除表格项目及实现表格项目排序的方法
2016/05/30 Javascript
学习vue.js表单控件绑定操作
2016/12/05 Javascript
Bootstrap整体框架之JavaScript插件架构
2016/12/15 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
vue 基于element-ui 分页组件封装的实例代码
2018/12/10 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
node.js中 mysql 增删改查操作及async,await处理实例分析
2020/02/11 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
[49:17]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第三场 1月26日
2021/03/11 DOTA
Python MySQLdb Linux下安装笔记
2015/05/09 Python
python编写微信远程控制电脑的程序
2018/01/05 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
pandas的唯一值、值计数以及成员资格的示例
2018/07/25 Python
python网络爬虫 Scrapy中selenium用法详解
2019/09/28 Python
python实现回旋矩阵方式(旋转矩阵)
2019/12/04 Python
详解Python爬虫爬取博客园问题列表所有的问题
2021/01/18 Python
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
政风行风建设责任书
2014/07/23 职场文书
食堂卫生管理制度
2015/08/04 职场文书
户外拓展训练感想
2015/08/07 职场文书
学会Python数据可视化必须尝试这7个库
2021/06/16 Python
Spring Cloud Gateway去掉url前缀
2021/07/15 Java/Android
Vue监视数据的原理详解
2022/02/24 Vue.js