js点击特效动画,小人动画
1、鼠标点击显示各种表情文字
onload = function() { var click_cnt = 0; var $html = document.getElementsByTagName("html")[0]; var $body = document.getElementsByTagName("body")[0]; $html.onclick = function(e) { var $elem = document.createElement("b"); $elem.style.color = "#E94F06"; $elem.style.zIndex = 9999; $elem.style.position = "absolute"; $elem.style.select = "none"; var x = e.pageX; var y = e.pageY; $elem.style.left = (x - 10) + "px"; $elem.style.top = (y - 20) + "px"; clearInterval(anim); switch (++click_cnt) { case 10: $elem.innerText = "OωO"; break; case 20: $elem.innerText = "(๑•́ ∀ •̀๑)"; break; case 30: $elem.innerText = "(๑•́ ₃ •̀๑)"; break; case 40: $elem.innerText = "(๑•̀_•́๑)"; break; case 50: $elem.innerText = "( ̄へ ̄)"; break; case 60: $elem.innerText = "(╯°口°)╯(┴—┴"; break; case 70: $elem.innerText = "૮( ᵒ̌皿ᵒ̌ )ა"; break; case 80: $elem.innerText = "╮(。>口<。)╭"; break; case 90: $elem.innerText = "( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃"; break; case 100: case 101: case 102: case 103: case 104: case 105: $elem.innerText = "(ꐦ°᷄д°᷅)"; break; default: $elem.innerText = "❤"; break; } $elem.style.fontSize = Math.random() * 10 + 8 + "px"; var increase = 0; var anim; setTimeout(function() { anim = setInterval(function() { if (++increase == 150) { clearInterval(anim); $body.removeChild($elem); } $elem.style.top = y - 20 - increase + "px"; $elem.style.opacity = (150 - increase) / 120; }, 8); }, 70); $body.appendChild($elem); }; };
2、鼠标点击烟花效果
<script type="text/javascript"> var fgm = { on: function (element, type, handler) { return element.addEventListener ? element.addEventListener(type, handler, false) : element.attachEvent("on" + type, handler) }, un: function (element, type, handler) { return element.removeEventListener ? element.removeEventListener(type, handler, false) : element.detachEvent("on" + type, handler) }, bind: function (object, handler) { return function () { return handler.apply(object, arguments) } }, randomRange: function (lower, upper) {//产生范围在lower~upper的随机数 return Math.floor(Math.random() * (upper - lower + 1) + lower) }, getRanColor: function () {//随机获得十六进制颜色 var str = this.randomRange(0, 0xFFFFFF).toString(16); while (str.length < 6) str = "0" + str; return "#" + str } }; //初始化对象 function FireWorks() { this.type = 0; this.timer = null; this.fnManual = fgm.bind(this, this.manual) } FireWorks.prototype = { initialize: function () { clearTimeout(this.timer); fgm.un(document, "click", this.fnManual); switch (this.type) { case 1: fgm.on(document, "click", this.fnManual); break; } ; }, manual: function (event) { event = event || window.event; this.__create__({ x: event.clientX, y: event.clientY }); }, __create__: function (param) { //param即鼠标点击点(即烟花爆炸点) var that = this; var oChip = null; var aChip = []; var timer = null; var oFrag = document.createDocumentFragment(); (function () { //在50-100之间随机生成碎片 //由于IE浏览器处理效率低, 随机范围缩小至20-30 //自动放烟花时, 随机范围缩小至20-30 // var len = (/msie/i.test(navigator.userAgent) || that.type == 2) ? fgm.randomRange(20, 30) : fgm.randomRange(50, 100) var len = (/msie/i.test(navigator.userAgent) || that.type == 2) ? fgm.randomRange(5, 10) : fgm.randomRange(10, 20) //产生所有烟花爆炸颗粒实体 for (i = 0; i < len; i++) { //烟花颗粒形态实体 oChip = document.createElement("div"); with (oChip.style) { position = "absolute"; top = param.y + document.body.scrollTop + "px"; left = param.x + "px"; width = "4px"; height = "4px"; overflow = "hidden"; borderRadius = "4px"; background = fgm.getRanColor(); } ; oChip.speedX = fgm.randomRange(-10, 10); oChip.speedY = fgm.randomRange(-10, 10); oFrag.appendChild(oChip); aChip[i] = oChip } ; document.body.appendChild(oFrag); timer = setInterval(function () { for (i = 0; i < aChip.length; i++) { var obj = aChip[i]; with (obj.style) { // top = obj.y + obj.speedY + "px"; // console.log(document.body.scrollTop); // console.log(document.body.scrollHeight+"ww"); // console.log(obj.offsetTop); top = obj.offsetTop + obj.speedY + "px"; left = obj.offsetLeft + obj.speedX + "px"; } ; obj.speedY++; //判断烟花爆炸颗粒是否掉落至窗体之外,为真则remove //splice() 方法可删除从 index 处开始的零个或多个元素 (obj.offsetTop < 0 || obj.offsetLeft < 0 || obj.offsetTop > document.documentElement.clientHeight + document.body.scrollTop || obj.offsetLeft > document.documentElement.clientWidth) && (document.body.removeChild(obj), aChip.splice(i, 1)) } ; //判断烟花爆炸颗粒是否全部remove,为真则clearInterval(timer); !aChip[0] && clearInterval(timer); }, 30) })(); } }; fgm.on(window, "load", function () { var oFireWorks = new FireWorks(); oFireWorks.type = 1; oFireWorks.initialize(); }); fgm.on(document, "contextmenu", function (event) { var oEvent = event || window.event; oEvent.preventDefault ? oEvent.preventDefault() : oEvent.returnValue = false }); </script>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 | < br >< br >< br >< br >< br >var isindex=true; var title=""; var visitor="这位怪蜀黍"; //根据分辨率调整小人位置 var addHeight; if(window.screen.height=='1080'){ addHeight= 350; }else{ addHeight= 150; } //右键菜单 jQuery(document).ready(function ($) { $("#spig").mousedown(function (e) { if(e.which==3){ showMessage("秘密通道:< br /> < img src=\"http://pic.sc.chinaz.com/Files/pic/Listfaces/3646/02.gif\"/>< br />< a href=\"https://www.cnblogs.com/ggymx\" title=\"放杨的猩猩\">放杨的猩猩</ a > ",10000); } }); $("#spig").bind("contextmenu", function(e) { return false; }); }); //鼠标在消息上时 jQuery(document).ready(function ($) { $("#message").hover(function () { $("#message").fadeTo("100", 1); }); }); //鼠标在上方时 jQuery(document).ready(function ($) { //$(".mumu").jrumble({rangeX: 2,rangeY: 2,rangeRot: 1}); $(".mumu").mouseover(function () { $(".mumu").fadeTo("300", 0.3); msgs = ["我隐身了,你看不到我", "我会隐身哦!嘿嘿!", "别动手动脚的,把手拿开!", "把手拿开我才出来!"]; var i = Math.floor(Math.random() * msgs.length); showMessage(msgs[i]); }); $(".mumu").mouseout(function () { $(".mumu").fadeTo("300", 1) }); }); //开始 jQuery(document).ready(function ($) { if (isindex) { //如果是主页 var now = (new Date()).getHours(); if (now > 0 && now <= 6) { showMessage(visitor + ' 你是夜猫子呀?还不睡觉,明天起的来么你?', 6000); } else if (now > 6 && now <= 11) { showMessage(visitor + ' 早上好,早起的鸟儿有虫吃噢!早起的虫儿被鸟吃,你是鸟儿还是虫儿?嘻嘻!', 6000); } else if (now > 11 && now <= 14) { showMessage(visitor + ' 中午了,吃饭了么?不要饿着了,饿死了谁来挺我呀!', 6000); } else if (now > 14 && now <= 18) { showMessage(visitor + ' 中午的时光真难熬!还好有你在!', 6000); } else { showMessage(visitor + ' 快来逗我玩吧!', 6000); } } else { showMessage('欢迎' + visitor + '来到《' + title + '》', 6000); } console.log('屏幕分辨率---------',window.screen.height) $(".spig").animate({ top:$(".spig").offset().top+addHeight, left: 100 }, { queue: false, duration: 1000 }); }); //鼠标在某些元素上方时 jQuery(document).ready(function ($) { $('h2 a').click(function () {//标题被点击时 showMessage('萌萌地加载《< span style="color:#0099cc;">' + $(this).text() + '</ span >》中,请稍候'); }); $('h2 a').mouseover(function () { showMessage('要看看《< span style="color:#0099cc;">' + $(this).text() + '</ span >》这篇随笔么?'); }); $('#prev-page').mouseover(function(){ showMessage('要翻到上一页吗?'); }); $('#next-page').mouseover(function(){ showMessage('要翻到下一页吗?'); }); $('#index-links li a').mouseover(function () { showMessage('去 < span style="color:#0099cc;">' + $(this).text() + '</ span > 逛逛'); }); $('.tbCommentBodys').mouseover(function () { showMessage('< span style="color:#0099cc;">' + visitor + '</ span > 向评论栏出发吧!'); }); $('#submit').mouseover(function () { showMessage('确认提交了么?'); }); $('#s').focus(function () { showMessage('输入你想搜索的关键词再按Enter(回车)键就可以搜索啦!'); }); $('#go-prev').mouseover(function () { showMessage('点它可以后退哦!'); }); $('#go-next').mouseover(function () { showMessage('点它可以前进哦!'); }); $('#refresh').mouseover(function () { showMessage('点它可以重新载入此页哦!'); }); $('#go-home').mouseover(function () { showMessage('点它就可以回到首页啦!'); }); $('#addfav').mouseover(function () { showMessage('点它可以把此页加入书签哦!'); }); $('#nav-two a').mouseover(function () { showMessage('嘘,从这里可以进入控制面板的哦!'); }); $('.post-category a').mouseover(function () { showMessage('点击查看此分类下得所有文章'); }); $('.post-heat a').mouseover(function () { showMessage('点它可以直接跳到评论列表处.'); }); $('#tho-shareto span a').mouseover(function () { showMessage('你知道吗?点它可以分享本文到'+$(this).attr('title')); }); $('#switch-to-wap').mouseover(function(){ showMessage('点击可以切换到手机版博客版面'); }); }); //无聊讲点什么 jQuery(document).ready(function ($) { window.setInterval(function () { msgs = [ "陪我聊天吧!", "好无聊哦,你都不陪我玩!", "…@……!………", "^%#&*!@*(&#)(!)(", "我可爱吧!嘻嘻!~^_^!~~","谁淫荡呀?~谁淫荡?,你淫荡呀!~~你淫荡!~~","从前有座山,山上有座庙,庙里有个老和尚给小和尚讲故事,讲:“从前有座……”"]; var i = Math.floor(Math.random() * msgs.length); showMessage(msgs[i], 8000); }, 15000); }); //评论资料 jQuery(document).ready(function ($) { $("#author").click(function () { showMessage("留下你的尊姓大名!"); $(".spig").animate({ top: $("#author").offset().top - 70, left: $("#author").offset().left - 170 }, { queue: false, duration: 1000 }); }); $("#email").click(function () { showMessage("留下你的邮箱,不然就是无头像人士了!"); $(".spig").animate({ top: $("#email").offset().top - 70, left: $("#email").offset().left - 170 }, { queue: false, duration: 1000 }); }); $("#url").click(function () { showMessage("快快告诉我你的家在哪里,好让我去参观参观!"); $(".spig").animate({ top: $("#url").offset().top - 70, left: $("#url").offset().left - 170 }, { queue: false, duration: 1000 }); }); $("#tbCommentBody").click(function () { showMessage("认真填写哦!不然会被认作垃圾评论的!我的乖乖~"); $(".spig").animate({ top: $("#tbCommentBody").offset().top - 70, left: $("#tbCommentBody").offset().left - 170 }, { queue: false, duration: 1000 }); }); }); var spig_top = 50; //滚动条移动 jQuery(document).ready(function ($) { var f = $(".spig").offset().top; $(window).scroll(function () { $(".spig").animate({ top: $(window).scrollTop() + f +addHeight }, { queue: false, duration: 1000 }); }); }); //鼠标点击时 jQuery(document).ready(function ($) { var stat_click = 0; $(".mumu").click(function () { stat_click++; if (stat_click > 4) { msgs = ["你有完没完呀?", "你已经摸我" + stat_click + "次了", "非礼呀!救命!OH,My ladygaga"]; var i = Math.floor(Math.random() * msgs.length); //showMessage(msgs[i]); } else { msgs = ["筋斗云!~我飞!", "我跑呀跑呀跑!~~", "别摸我,大男人,有什么好摸的!", "惹不起你,我还躲不起你么?", "不要摸我了,我会告诉老婆来打你的!", "干嘛动我呀!小心我咬你!"]; var i = Math.floor(Math.random() * msgs.length); //showMessage(msgs[i]); } s = [0.1, 0.2, 0.3, 0.4, 0.5, 0.6,0.7,0.75,-0.1, -0.2, -0.3, -0.4, -0.5, -0.6,-0.7,-0.75]; var i1 = Math.floor(Math.random() * s.length); var i2 = Math.floor(Math.random() * s.length); $(".spig").animate({ left: document.body.offsetWidth/2*(1+s[i1]), top: document.body.offsetheight/2*(1+s[i1]) }, { duration: 500, complete: showMessage(msgs[i]) }); }); }); //显示消息函数 function showMessage(a, b) { if (b == null) b = 10000; jQuery("#message").hide().stop(); jQuery("#message").html(a); jQuery("#message").fadeIn(); jQuery("#message").fadeTo("1", 1); jQuery("#message").fadeOut(b); }; //拖动 var _move = false; var ismove = false; //移动标记 var _x, _y; //鼠标离控件左上角的相对位置 jQuery(document).ready(function ($) { $("#spig").mousedown(function (e) { _move = true; _x = e.pageX - parseInt($("#spig").css("left")); _y = e.pageY - parseInt($("#spig").css("top")); }); $(document).mousemove(function (e) { if (_move) { var x = e.pageX - _x; var y = e.pageY - _y; var wx = $(window).width() - $('#spig').width(); var dy = $(document).height() - $('#spig').height(); if(x >= 0 && x <= wx && y > 0 && y <= dy) { $("#spig").css({ top: y, left: x }); //控件新位置 ismove = true; } } }).mouseup(function () { _move = false; }); }); |
/*右侧滑动小人*/
.spig {display:block;width:156px;height:270px;position:absolute;bottom: 300px;left:180px;z-index:9999;}
#message{color :#191919;border: 1px solid #c4c4c4;background:#ddd;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;min-height:1em;padding:5px;top:-45px;position:absolute;text-align:center;width:auto !important;z-index:10000;-moz-box-shadow:0 0 15px #eeeeee;-webkit-box-shadow:0 0 15px #eeeeee;border-color:#eeeeee;box-shadow:0 0 15px #eeeeee;outline:none;font-size:0.8rem}
.mumu{width:9.75rem;height:15.46rem;cursor: move;background:url(https://blog-static.cnblogs.com/files/ggymx/gril.gif) no-repeat;background-size:100% 100%}
<!--博客精灵 start*-->
<div id="spig" class="spig">
<div id="message">……</div>
<div id="mumu" class="mumu"></div>
</div>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通