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


相关推荐: Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭  如何用花生壳三步快速搭建专属网站?  js实现点击每个li节点,都弹出其文本值及修改  历史网站制作软件,华为如何找回被删除的网站?  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  如何确认建站备案号应放置的具体位置?  如何基于云服务器快速搭建个人网站?  Laravel如何使用.env文件管理环境变量?(最佳实践)  如何在Tomcat中配置并部署网站项目?  Laravel怎么判断请求类型_Laravel Request isMethod用法  如何安全更换建站之星模板并保留数据?  Laravel队列由Redis驱动怎么配置_Laravel Redis队列使用教程  jQuery validate插件功能与用法详解  免费视频制作网站,更新又快又好的免费电影网站?  ,南京靠谱的征婚网站?  动图在线制作网站有哪些,滑动动图图集怎么做?  *服务器网站为何频现安全漏洞?  深圳网站制作培训,深圳哪些招聘网站比较好?  Android Socket接口实现即时通讯实例代码  Javascript中的事件循环是如何工作的_如何利用Javascript事件循环优化异步代码?  PHP 500报错的快速解决方法  如何快速搭建高效WAP手机网站吸引移动用户?  Android实现代码画虚线边框背景效果  JS实现鼠标移上去显示图片或微信二维码  非常酷的网站设计制作软件,酷培ai教育官方网站?  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  如何用西部建站助手快速创建专业网站?  如何在 Pandas 中基于一列条件计算另一列的分组均值  jQuery 常见小例汇总  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Python自然语言搜索引擎项目教程_倒排索引查询优化案例  在centOS 7安装mysql 5.7的详细教程  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  python中快速进行多个字符替换的方法小结  长沙企业网站制作哪家好,长沙水业集团官方网站?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  网站建设要注意的标准 促进网站用户好感度!  Win11任务栏卡死怎么办 Windows11任务栏无反应解决方法【教程】  如何基于云服务器快速搭建网站及云盘系统?  Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南  Windows10如何删除恢复分区_Win10 Diskpart命令强制删除分区  Laravel如何发送邮件_Laravel Mailables构建与发送邮件的简明教程  利用vue写todolist单页应用  详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)  EditPlus 正则表达式 实战(3)