<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>方向检测</title>
<style type="text/css">
* {
margin: 0;
padding: 0;
}
ul {
list-style: none;
}
#box {
margin: 30px auto;
width: 1250px;
overflow: hidden;
}
#box li{
position: relative;
float: left;
width: 250px;
height: 250px;
overflow: hidden;
}
#box li img {
width: 100%;
height: 100%;
}
#box li .shadow {
position: absolute;
left: -1000px;
top: 0;
width: 100%;
height: 100%;
line-height: 100px;
font-size: 30px;
text-align: center;
background: rgba(255, 255, 255, .4);
}
</style>
</head>
<body>
<ul id="box">
<li>
<img src="data:images/1.png" alt="">
<div class="shadow">第1页</div>
</li>
<li>
<img src="data:images/2.png" alt="">
<div class="shadow">第2页</div>
</li>
<li>
<img src="data:images/3.png" alt="">
<div class="shadow">第3页</div>
</li>
<li>
<img src="data:images/4.png" alt="">
<div class="shadow">第4页</div>
</li>
<li>
<img src="data:images/5.png" alt="">
<div class="shadow">第5页</div>
</li>
</ul>
<script src="https://cdn.bootcss.com/jquery/1.12.1/jquery.js"></script>
<script>
$('#box li').bind('mouseenter mouseleave', function (e) {
var w = $(this).width();
var h = $(this).height();
var x = (e.pageX - this.offsetLeft - (w / 2)) * (w > h ? (h / w) : 1);
var y = (e.pageY - this.offsetTop - (h / 2)) * (h > w ? (w / h) : 1);
var direction = Math.round((((Math.atan2(y, x) * (180 / Math.PI)) + 180) / 90) + 3) % 4; if(e.type === 'mouseenter') {
var startPos = {left: 0, top: 0};
switch(direction) {
case 0:
startPos = {left: 0, top: -h};
break;
case 1:
startPos = {left: w, top: 0};
break;
case 2:
startPos = {left: 0, top: h};
break;
case 3:
startPos = {left: -w, top: 0};
break;
} $(this).children('.shadow').css(startPos).stop(true).animate({left: 0, top: 0});
} else if(e.type === 'mouseleave') {
var endPos = {left: 0, top: 0};
switch(direction) {
case 0:
endPos = {left: 0, top: -h};
break;
case 1:
endPos = {left: w, top: 0};
break;
case 2:
endPos = {left: 0, top: h};
break;
case 3:
endPos = {left: -w, top: 0};
break;
} $(this).children('.shadow').stop(true).animate(endPos);
}
});
</script>
</body>
</html>
以上图片路径更换即可。

js之方向检测的更多相关文章

  1. js/css 检测移动设备方向的变化 判断横竖屏幕

    js/css 检测移动设备方向的变化 判断横竖屏幕 方法一:用触发手机的横屏和竖屏之间的切换的事件 window.addEventListener("orientationchange&qu ...

  2. js 正则之检测素数

    原文:js 正则之检测素数 相信很多人应该看过这篇文章,我第一次看到的时候是11年的样子,那时候学vbs的时候看过这个问题.原文<检查素数的正则表达式>,在文章里已经解释了他是怎么判断的, ...

  3. 使用Python基于VGG/CTPN/CRNN的自然场景文字方向检测/区域检测/不定长OCR识别

    GitHub:https://github.com/pengcao/chinese_ocr https://github.com/xiaofengShi/CHINESE-OCR |-angle 基于V ...

  4. JS数组类型检测

    在强类型语言,数组类型检测是非常容易的事情(typeof就可以解决),而在弱语言JS数据类型就很容易混淆了. JS中常见的数据类型有:number.string.boolean.undefined.f ...

  5. js之客户端检测

    1 能力检测判断是否有某个属性或方法,例:在低版本中的opera浏览器中,window下有个opera属性 if (window.opera) { alert("opera"); ...

  6. js 正则之 检测素数

    相信很多人应该看过这篇文章,我第一次看到的时候是11年的样子,那时候学vbs的时候看过这个问题.原文<检查素数的正则表达式>,在文章里已经解释了他是怎么判断的,我就不啰嗦了.我们来说说 j ...

  7. JS 校验,检测,验证,判断函数集合

    http://jc-dreaming.iteye.com/blog/754690 /**  *判断对象是否为空 *Check whether string s is empty.  */  funct ...

  8. JS中类型检测方式

    在js中的类型检测目前我所知道的是三种方式,分别有它们的应用场景: 1.typeof:主要用于检测基本类型. typeof undefined;//=> undefined typeof 'a' ...

  9. js 数据类型及检测

    js中基本数据类型有6种number.string.undefined.null.boolean,Symbol (ES6 新增,表示独一无二的值),还有一种数据类型为引用数据类型统称为Object对象 ...

随机推荐

  1. kafka log文件和offset原理

    log与offset 日志存储路径根据配置log.dirs ,日志文件通过 topic-partitionId分目录,再通过log.roll.hours 和log.segment.bytes来分文件, ...

  2. 解题报告:hdu1159 common consequence LCS裸题

    2017-09-02 17:07:42 writer:pprp 通过这个题温习了一下刚学的LCS 代码如下: /* @theme:hdu1159 @writer:pprp @begin:17:01 @ ...

  3. php isset

    isset函数是检测变量是否设置. 格式:bool isset ( mixed var [, mixed var [, ...]] ) 返回值: 若变量不存在则返回 FALSE 若变量存在且其值为NU ...

  4. JDBC 的 PreparedStatement 与 Statement

    import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import ...

  5. java中函数传值与引用问题

    从C++转java,在使用函数传对象时,碰到一点问题,今天特意验证了一下: public class App { public static void doubleTest(double d) { d ...

  6. Moment.js的一些用法

    前记:项目开发用到了日历插件(Pikaday.js),同时也用到了Moment.js(日期处理类库) 1.subtract:减去,下面代码的意思是减去1天 this.yestdayStr = mome ...

  7. Memcached prepend 命令

    Memcached prepend 命令用于向已存在 key(键) 的 value(数据值) 前面追加数据 . 语法: prepend 命令的基本语法格式如下: prepend key flags e ...

  8. ADC第一次读取

    在ADCCON中,最后0位和1位互斥.如果1位选1的话,0位的值无效.如果1位选0的话,0位的值才有效.当1位选1的话:这是应用层的程序 #if ADSTART==0void niuniu(void) ...

  9. C#转译字符

    C#转义字符: 一种特殊的字符常量 以反斜线"\"开头,后跟一个或几个字符 具有特定的含义,不同于字符原有的意义,故称“转义”字符. 主要用来表示那些用一般字符不便于表示的控制代码 ...

  10. Daper返回DataTable

    using (IDbConnection conn = OpenConnection()) { string sql = "SELECT TOP 1 * FROM dbo.Students& ...