js仿拉勾网首页穿墙广告效果

发布时间 - 2026-01-11 00:03:35    点击率:

效果图:

代码如下:

<!doctype html>
<html>
<head>
 <meta charset="UTF-8">
 <title>Title</title>
<style>
*{margin:0; padding:0; list-style:none;}
ul{ overflow:hidden; width:630px; margin:100px auto;}
ul li{ float:left; position:relative; width:200px; height:200px; background:#ccc; margin:5px; overflow:hidden;}
ul li span{ position:absolute; width:100%; height:100%; background:rgba(255,0,0,0.3); left:-200px; top:0;}
</style>
<script>
function getStyle(obj,sName){
 return (obj.currentStyle||getComputedStyle(obj,false))[sName];
}
function move(obj,json,options){
 options = options||{};
 options.duration = options.duration||700;
 options.easing = options.easing||'ease-out';
 var start = {};
 var dis = {};
 for(var name in json){
 start[name] = parseFloat(getStyle(obj,name));
 dis[name] = json[name]-start[name];
 }
 var count = Math.floor(options.duration/30);
 var n = 0;
 clearInterval(obj.timer);
 obj.timer = setInterval(function(){
 n++;
 for(var name in json){
 switch(options.easing){
 case 'linear':
  var cur = start[name]+dis[name]*n/count;
  break;
 case 'ease-in':
  var a = n/count;
  var cur = start[name]+dis[name]*Math.pow(a,3);
  break;
 case 'ease-out':
  var a = 1-n/count;
  var cur = start[name]+dis[name]*(1-Math.pow(a,3));
  break;
 }
 if(name=='opacity'){
 obj.style.opacity = cur;
 obj.style.filter = 'alpha(opacity:'+cur*100+')';
 }else{
 obj.style[name] = cur+'px';
 }
 }
 if(n==count){
 clearInterval(obj.timer);
 options.complete&&options.complete();
 }
 },30);
}
function a2d(n){
 return n*180/Math.PI;
}
function hoverDir(ev,obj){
 var a = ev.clientX-obj.offsetLeft-obj.offsetWidth/2;
 var b = obj.offsetTop+obj.offsetHeight/2-ev.clientY;

 return Math.round((a2d(Math.atan2(b,a))+180)/90)%4;
}
function through(obj){
 var oS = obj.children[0];
 obj.onmouseenter = function(ev){
 var oEvent = ev||event;
 var dir = hoverDir(oEvent,obj);
 switch(dir){
 case 0:
 //左
 oS.style.left = '-200px';
 oS.style.top = 0;
 break;
 case 1:
 //下
 oS.style.left = 0;
 oS.style.top = '200px';
 break;
 case 2:
 //右
 oS.style.left = '200px';
 oS.style.top = 0;
 break;
 case 3:
 //上
 oS.style.left = 0;
 oS.style.top = '-200px';
 break;
 }
 move(oS,{left:0,top:0});
 };
 obj.onmouseleave = function(ev){
 var oEvent = ev||event;
 var dir = hoverDir(oEvent,obj);
 switch(dir){
 case 0:
 move(oS,{left:-200,top:0});
 break;
 case 1:
 move(oS,{left:0,top:200});
 break;
 case 2:
 move(oS,{left:200,top:0});
 break;
 case 3:
 move(oS,{left:0,top:-200});
 break;
 }
 };
}
window.onload = function(){
 var aLi = document.getElementsByTagName('li');
 for(var i=0;i<aLi.length;i++){
 through(aLi[i]);
 }
};
</script>
</head>
<body>
 <ul>
 <li><span></span></li>
 <li><span></span></li>
 <li><span></span></li>
 <li><span></span></li>
 <li><span></span></li>
 <li><span></span></li>
 </ul>
</body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!


# js  # 穿墙广告  # 广告效果  # js漂浮广告实现代码(合集经典) 符合W3C  # 又一个不错的js浮动广告代码  # JS实现悬浮移动窗口(悬浮广告)的特效  # 兼容多浏览器的JS 浮动广告[推荐]  # js 居中漂浮广告  # js退弹 IE关闭时弹出广告代码  # 可以防止屏蔽  # 用javascript实现的仿Flash广告图片轮换效果  # js网页侧边随页面滚动广告效果实现  # 兼容性非常好的js右下角与漂浮广告代码  # Js右下角视频广告代码(百度视窗)  # background  # height  # absolute  # span  # ccc  # relative  # li  # auto  # position  # left  # float  # rgba  # currentStyle  # return  # sName  # move  # false  # getComputedStyle  # obj  # top 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 用v-html解决Vue.js渲染中html标签不被解析的问题  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Windows10电脑怎么设置虚拟光驱_Win10右键装载ISO镜像文件  Laravel如何实现全文搜索功能?(Scout和Algolia示例)  使用spring连接及操作mongodb3.0实例  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  在线制作视频网站免费,都有哪些好的动漫网站?  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  PHP 500报错的快速解决方法  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  个人网站制作流程图片大全,个人网站如何注销?  高防服务器:AI智能防御DDoS攻击与数据安全保障  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Laravel中间件如何使用_Laravel自定义中间件实现权限控制  Edge浏览器怎么启用睡眠标签页_节省电脑内存占用优化技巧  canvas 画布在主流浏览器中的尺寸限制详细介绍  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  网页设计与网站制作内容,怎样注册网站?  非常酷的网站设计制作软件,酷培ai教育官方网站?  Internet Explorer官网直接进入 IE浏览器在线体验版网址  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Win11关机界面怎么改_Win11自定义关机画面设置【工具】  打造顶配客厅影院,这份100寸电视推荐名单请查收  简历没回改:利用AI润色让你的文字更专业  教你用AI润色文章,让你的文字表达更专业  如何在IIS服务器上快速部署高效网站?  Laravel怎么实现搜索功能_Laravel使用Eloquent实现模糊查询与多条件搜索【实例】  Android滚轮选择时间控件使用详解  网页制作模板网站推荐,网页设计海报之类的素材哪里好?  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  如何在万网主机上快速搭建网站?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  如何快速选择适合个人网站的云服务器配置?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  百度浏览器如何管理插件 百度浏览器插件管理方法  Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  简单实现Android文件上传  iOS正则表达式验证手机号、邮箱、身份证号等  Linux系统命令中screen命令详解  如何快速上传自定义模板至建站之星?  网站制作报价单模板图片,小松挖机官方网站报价?  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  高性能网站服务器部署指南:稳定运行与安全配置优化方案  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  如何快速辨别茅台真假?关键步骤解析  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  如何用花生壳三步快速搭建专属网站?