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

 更新时间:2016年01月27日 12:18:24   作者:m1870164  
这篇文章主要介绍了jquery实现可旋转可拖拽的文字效果代码,涉及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特效相关内容感兴趣的读者可查看本站专题:《jQuery常见经典特效汇总》及《jQuery动画与特效用法总结

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

相关文章

  • jQuery Tips 为AJAX回调函数传递额外参数的方法

    jQuery Tips 为AJAX回调函数传递额外参数的方法

    讨论这个问题基于如下场景:点击页面上某个按钮之后,触发click事件,事件处理函数内部发送一个AJAX请求,AJAX回调函数更新页面的某一个部分。
    2010-12-12
  • Jquery动态列功能完整实例

    Jquery动态列功能完整实例

    这篇文章主要介绍了Jquery动态列功能,结合完整实例形式详细分析了jQuery基于事件响应及页面元素动态属性操作实现的动态列显示功能相关操作技巧,需要的朋友可以参考下
    2019-08-08
  • JQuery获取各种宽度、高度(format函数)实例

    JQuery获取各种宽度、高度(format函数)实例

    本例除了使用标准的JQuery类库外,还添加了自定义的函数来进行字符串的format操作。
    2013-03-03
  • jquery的each方法使用示例分享

    jquery的each方法使用示例分享

    each()函数是基本上所有的框架都提供了的一个工具类函数,通过它,你可以遍历对象、数组的属性值并进行处理,jQuery和jQuery对象都实现了该方法,下面是使用方法
    2014-03-03
  • 推荐25个超炫的jQuery网格插件

    推荐25个超炫的jQuery网格插件

    本文给大家推荐了25个jQuery网格特效插件,在此集合中,我们将展示一些非常酷的jQuery插件和资源在网格布局设计,提高了数据的介绍。一些实用的插件,一定会提供一个美好的用户体验。同时,一些精致的资源,这将有助于布局精美的数据范围。
    2014-11-11
  • jquery实现相册一下滑动两次的方法

    jquery实现相册一下滑动两次的方法

    这篇文章主要介绍了jquery实现相册一下滑动两次的方法,是非常实用的图片特效技巧,需要的朋友可以参考下
    2015-02-02
  • jquery下json数组的操作实现代码

    jquery下json数组的操作实现代码

    在jquery中处理JSON数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多。
    2010-08-08
  • jquery 清空file域示例(兼容个浏览器)

    jquery 清空file域示例(兼容个浏览器)

    在本文将为大家介绍喜下如何使用jquery 清空file域并做到兼容个浏览器,感兴趣的朋友可以参考下
    2013-10-10
  • jQuery autocomplate 自扩展插件、自动完成示例代码

    jQuery autocomplate 自扩展插件、自动完成示例代码

    jquery-lib版本是 1.3.2的,该插件是简单的扩展插件,代码也比较简单的封装。所以看起来也比较简单不是很费力,当然封装得也不是很好。
    2011-03-03
  • jQuery ajax提交Form表单实例(附demo源码)

    jQuery ajax提交Form表单实例(附demo源码)

    这篇文章主要介绍了jQuery ajax提交Form表单的方法,结合实例分析了jQuery ajax操作实现表单提交的相关技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下
    2016-04-04

最新评论