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 面向对象编程(1) 基础
May 18 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
Nov 14 Javascript
JavaScript 注册事件代码
Jan 27 Javascript
IE图片缓存document.execCommand(&quot;BackgroundImageCache&quot;,false,true)
Mar 01 Javascript
jQuery判断iframe中元素是否存在的方法
May 11 Javascript
Javascript排序算法之计数排序的实例
Apr 05 Javascript
JavaScript中对象property的读取和写入方法介绍
Dec 30 Javascript
使用canvas实现仿新浪微博头像截取上传功能
Sep 02 Javascript
两种JavaScript的AES加密方式(可与Java相互加解密)
Aug 02 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
Jan 06 jQuery
vue.js与element-ui实现菜单树形结构的解决方法
Apr 21 Javascript
jQuery选择器之基本选择器用法实例分析
Feb 19 jQuery
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一些十分严重的缺陷详解
2013/06/03 PHP
MongoDB在PHP中的常用操作小结
2014/02/20 PHP
php数组转成json格式的方法
2015/03/09 PHP
CI框架实现框架前后端分离的方法详解
2016/12/30 PHP
yii2.0整合阿里云oss删除单个文件的方法
2017/09/19 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
分享几种比较简单实用的JavaScript tabel切换
2015/12/31 Javascript
第一次接触JS require.js模块化工具
2016/04/17 Javascript
浅谈JavaScript中的this指针和引用知识
2016/08/05 Javascript
jQuery实现点击查看大图并以弹框的形式居中
2016/08/08 Javascript
Node.js测试中的Mock文件系统详解
2016/11/21 Javascript
微信小程序中用WebStorm使用LESS
2017/03/08 Javascript
深入解析Vue 组件命名那些事
2017/07/18 Javascript
AngularJS中重新加载当前路由页面的方法
2018/03/09 Javascript
vue 音乐App QQ音乐搜索列表最新接口跨域设置方法
2018/09/25 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
[01:35]2014DOTA2西雅图邀请赛 专访狐狸妈青春献给刀塔
2014/07/08 DOTA
Linux下使用python调用top命令获得CPU利用率
2015/03/10 Python
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
全面了解Python环境配置及项目建立
2016/06/30 Python
Python 字符串大小写转换的简单实例
2017/01/21 Python
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
Python使用wget实现下载网络文件功能示例
2018/05/31 Python
python实现可视化动态CPU性能监控
2018/06/21 Python
Python 获取 datax 执行结果保存到数据库的方法
2019/07/11 Python
python通过实例讲解反射机制
2019/10/17 Python
用python-webdriver实现自动填表的示例代码
2021/01/13 Python
日本最大的旅游网站:Rakuten Travel(乐天旅游)
2018/08/02 全球购物
韩国最大的购物网站:Gmarket
2019/06/20 全球购物
Tomcat Mysql datasource数据源配置
2015/12/28 面试题
家电业务员岗位职责
2014/03/10 职场文书
宣传口号大全
2014/06/16 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
校运动会广播稿(100篇)
2014/09/12 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
接触艺术对孩子学习思维有益
2019/08/06 职场文书