jQuery文字“橡皮圈“特效
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
#eraser{
position: relative;
font-size: 12px;
margin-top: 100px;
display: block;
}
</style>
</head>
<body>
<a href="#" id="eraser">划过我触发橡皮圈特效划过我触发橡皮圈特效</a>
<script src="../jquery.min.js"></script>
<script src="jquery.easing.js"></script>
<script src="eraser.js"></script>
<script>
$("#eraser").eraser();
</script>
</body>
</html>
(function($){
$.fn.eraser = function(options){
return this.each(function(){
//----------------分割--------------------//
var ele = $(this);
for(var i=0; i<ele.length; i++){
var splitHtml = ele.eq(i).html().split(""); //截取当前的数量,保存在容器里。
for(var j=0; j<splitHtml.length; j++){
splitHtml[j] = "<span>" + splitHtml[j] + "</span>";
}
ele.eq(i).html(splitHtml.join("")); //把数组中的所有元素放入一个字符串
}
var eleSpan = ele.find("span");
for(var i=0; i<eleSpan.length; i++){ //设置每一个的left值
eleSpan.eq(i).css({
"left" : eleSpan.eq(i).position().left
});
}
eleSpan.css({ //设置绝对定位
"position" : "absolute"
});
//----------------分割--------------------//
var iStartTop = eleSpan.position().top;
var iMinTop = -18;
var iMaxTop = 18;
var obj = null;
eleSpan.on("mouseenter",rubber); //开启
function rubber(ev) {
$(this).parent().mouseout(null); //清除事件
$(this).parent().mousemove(null); //清除事件
var ev = ev || event;
var iStartY = ev.clientY; //获取光标y轴
obj = $(this);
this.parentNode.onmousemove = function(ev) {
$(this).find("span").off("mouseenter", rubber);
$(this).find("span").on("mouseenter", currently);
var iMouseY = ev.clientY;
var iTop = iStartTop + (iMouseY - iStartY);
var aSpan = $(this).find("span");
var iIndex = obj.index();
aSpan.stop();
if(iTop < iMinTop || iTop > iMaxTop) {
aSpan.animate({ //清除 0
top: iStartTop
}, 500, "easeOutElastic");
$(this).find("span").on("mouseenter", rubber);
$(this).find("span").off("mouseenter", currently);
this.onmouseleave = null;
this.onmousemove = null
} else {
for(var i = 0; i < aSpan.length; i++) {
if(iMouseY > iStartY) {
var iSpanTop = iTop - Math.abs(i - iIndex);
if(iSpanTop < iStartTop) {
iSpanTop = iStartTop
}
} else {
if(iMouseY < iStartY) {
var iSpanTop = iTop + Math.abs(i - iIndex);
if(iSpanTop > iStartTop) {
iSpanTop = iStartTop
}
}
}
aSpan.eq(i).css({
"top": iSpanTop + "px"
});
}
}
this.onmouseleave = function(){ //鼠标移除事件
aSpan.animate({
"top" : iStartTop
}, 500, "easeOutElastic");
$(this).find("span").on("mouseenter", rubber);
$(this).find("span").off("mouseenter", currently); //关闭
$(this).mouseleave(null);
$(this).mousemove(null);
}
}
}
function currently() {
obj = $(this);
}
});
}
})(jQuery);

jQuery文字“橡皮圈“特效的更多相关文章
- 18款js和jquery文字特效代码分享
18款js和jquery文字特效代码分享 jQCloud标签云插件_热门城市文字标签云代码 js 3d标签云特效关键词文字球状标签云代码 原生JS鼠标悬停文字球状放大显示效果代码 原生js文字动画圆形 ...
- 基于jQuery图片遮罩滑动文字切换特效
基于jQuery图片遮罩滑动文字切换特效.这是一款jquery hover鼠标滑动选项卡切换透明背景遮罩文字显示特效.效果图如下: 在线预览 源码下载 实现的代码. html代码: <div ...
- js,jquery,css,html5特效
包含js,jquery,css,html5特效,源代码 本文地址:http://www.cnblogs.com/roucheng/p/texiao.html 2017新年快乐特效 jQuery最新最全 ...
- 分享jquery实现百叶窗特效的图片轮播
首先非常感谢网友嘉翼的无私分享,这是他刚在网站扣下来的特效,第一时间与大家分享,jquery实现百叶窗特效的图片轮播 使用方法: 1.引用css文件,css文件里面已经做了注释,基本只需要修改宽高就好 ...
- 14种网页jQuery和css3特效插件代码演示
1.网页table增删样式代码 演示和下载地址 2.jQuery左右滑动幻灯片插件 演示和下载地址 3.jQuery文字轮播焦点图 演示和下载地址 4.网页文字焦点图切换 演示和下载地址 5.jQue ...
- 10款jquery图片广告特效的预览及源码下载 改自[帅的相对论]
原文格式有问题,我来排版了一下,分享给大家. 1.jQuery仿海尔官网全屏焦点图特效代码 Query仿海尔官网全屏焦点图特效代码,带有左右箭头的jQuery焦点图切换特效.当焦点图切换时,下方的三块 ...
- jquery 文字滚动大全 scroll 支持文字或图片 单行滚动 多行滚动 带按钮控制滚动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- jquery文字上下滚动--单行 批量多行 文字图片上下翻滚 | 多行滚动
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 强大的自适应jQuery焦点图特效
jQuery焦点图切换自适应效果 自适应jQuery焦点图特效是一款支持移动端的响应式jQuery焦点图插件,支持flexible布局,支持移动触摸事件等. 今天我们要来分享一款很灵活的jQuery焦 ...
随机推荐
- mysql根据经纬度求两地距离
#1.两点距离(1.4142135623730951) ,),point(,)); select st_distance(point (120.10591, 30.30163),point(120.1 ...
- CassiniDev源码学习 - 可替代IIS的单机Web Form解决方案
最近一个项目是将web版的程序,改为单机版.话说这个web版号称当年十几个人用了至少3个月的时间开发,后来三年还不断有修改,而现在要在1个月内由一个人完成,这简直是不可能完成的任务!直觉告诉我,重写肯 ...
- intent调用代码总结
进入联系人界面 Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(People.CO ...
- House of Roman 实战
前言 这是前几天国外一个 老哥 提出的一种思路 ,学习了一下感觉其中的堆布局的手法还不错,做个分享与记录. 这种利用手法的主要特点是不需要 leak libc的地址,通过 堆内存的布局 和 堆相关的漏 ...
- shell黑名单
#/bin/bash netstat -ant | " | awk '{print $5}' | grep -v "^10" | cut -d ":" ...
- 关于removeChild
var a=document.body; document.body.parentNode.removeChild(a) console.log(a); a的内容还是body???whY
- 产品经理都知道MVP,但是它可能不再是产品研发最好的模型了
产品经理都知道MVP,但是它可能不再是产品研发最好的模型了 孟小白Aspire • 2017-09-01 • 汽车交通 要简单.讨喜.完整,不要最小可行性产品.这对创业公司的第一个产品来说很重要. M ...
- 2.Java英文缩写详解
1.JVM 2.JDK JRE 3.Java SE EE ME 4.OO OOP 5.IOC 6.SQL 7.POJO 1.JVM:Java Virtual Machine(Java虚拟机)的缩写. ...
- HAproxy simple
下载地址 start install: wget http://www.haproxy.org/download/1.7/src/haproxy-1.7.5.tar.gz tar -xf ...
- Oracle诊断工具 - ORA-1578 Troubleshooting Tool
Oracle support网站提供ORA-1578错误诊断工具:ORA-1578 Troubleshooting Tool. ORA-1578 Troubleshooting Tool根据分析上传的 ...