经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » JavaScript » 查看文章
基于JS实现弹性漂浮广告的示例代码
来源:jb51  时间:2022/1/17 14:21:42  对本文有异议

效果图

1.功能(鼠标移入移出事件、点击事件、定时器控制移动)

div实现在页面上移动,并判断碰到页面边框反弹,鼠标移入div停止移动,鼠标移出div进行移动,点击div让它从页面消失,定时器控制它的移动。

2.div初始样式设置

  1. //div(广告)获取节点
  2. var div1 = document.getElementById("div1");
  3. // div(广告)初始的位置
  4. var offsetx = 0;
  5. var offsety = 0;
  6. //div(广告)每次移动的距离
  7. var stepx = 10;
  8. var stepy = 10;
  9. //div(广告)的大小
  10. div1.style.width="100px"
  11. div1.style.height="100px"
  12. //设置定位
  13. div1.style.position="absolute"
  14. div1.style.top = offsetx;
  15. div1.style.left = offsety;
  16. //广告图片
  17. div1.style.backgroundImage="url(./img/ggao.webp)"
  18. div1.style.backgroundSize="cover"

3.获取div可以移动的页面大小

  1. //网页可视化宽高--div(广告)可以移动的区域
  2. var seeWidth = document.documentElement.clientWidth;
  3. var seeHeight = document.documentElement.clientHeight;
  4. //div(广告)最大可移动的宽度、高度
  5. var maxLeft = seeWidth -100;
  6. var maxTop = seeHeight -100;

4.定时器控制移动,鼠标移入事件停止移动,鼠标移出继续移动。

  1. //启动定时器
  2. ? ? ? ? var t= setInterval(move,30);
  3. ? ? ? ? //鼠标移入清除定时器
  4. ? ? ? ? div1.onmouseenter = function(){
  5. ? ? ? ? ? ? clearInterval(t);
  6. ? ? ? ? }
  7. ? ? ? ? //鼠标移出恢复
  8. ? ? ? ? div1.onmouseleave = function(){
  9. ? ? ? ? ? ? t = setInterval(move,30);
  10. ? ? ? ? }

5.点击事件点击让div消失

  1. //点击事件,点击后消失
  2. ? ? ? ? div1.onclick = function(){
  3. ? ? ? ? ? ? div1.style.display = "none"
  4. ? ? ? ? }?

6.完整代码

  1. <div id="div1"> ?</div>
  2. <body>
  3. ? ? <script>
  4. ? ? ? ? //div(广告)获取节点
  5. ? ? ? ? var div1 = document.getElementById("div1");
  6. ? ? ? ? // div(广告)初始的位置
  7. ? ? ? ? var offsetx = 0;
  8. ? ? ? ? var offsety = 0;
  9. ? ? ? ? //div(广告)每次移动的距离
  10. ? ? ? ? var stepx = 10;
  11. ? ? ? ? var stepy = 10;
  12. ? ? ? ? //div(广告)的大小
  13. ? ? ? ? div1.style.width="100px"
  14. ? ? ? ? div1.style.height="100px"
  15. ? ? ? ? //设置定位
  16. ? ? ? ? div1.style.position="absolute"
  17. ? ? ? ? div1.style.top = offsetx;
  18. ? ? ? ? div1.style.left = offsety;
  19. ? ? ? ? // div1.style.backgroundColor="black"
  20. ? ? ? ? div1.style.backgroundImage="url(./img/ggao.webp)"
  21. ? ? ? ? div1.style.backgroundSize="cover"
  22. ? ? ? ??
  23. ? ? ? ? //网页可视化宽高--div(广告)可以移动的区域
  24. ? ? ? ? var seeWidth = document.documentElement.clientWidth;
  25. ? ? ? ? var seeHeight = document.documentElement.clientHeight;
  26. ? ? ? ? //div(广告)最大可移动的宽度、高度
  27. ? ? ? ? var maxLeft = seeWidth -100;
  28. ? ? ? ? var maxTop = seeHeight -100;
  29. ? ? ? ? function move(){
  30. ? ? ? ? ? ? offsetx+=stepx;
  31. ? ? ? ? ? ? offsety+=stepy;
  32. ? ? ? ? ? ? console.log(offsetx);
  33. ? ? ? ? ? ? console.log(offsety)
  34. ? ? ? ? ? ? //大于可移动的高度或到达顶部 就让移动的距离变为它的负数
  35. ? ? ? ? ? ? if(offsety>=maxTop||offsety<=0){
  36. ? ? ? ? ? ? ? ? stepy = -stepy;
  37. ? ? ? ? ? ? }
  38. ? ? ? ? ? ? //大于可移动的宽度或到达最左 就让移动的距离变为它的负数
  39. ? ? ? ? ? ? if(offsetx>=maxLeft||offsetx<=0){
  40. ? ? ? ? ? ? ? ? stepx=-stepx;
  41. ? ? ? ? ? ? }
  42. ? ? ? ? ? ? //div定位的位置
  43. ? ? ? ? ? ? div1.style.top = offsety+"px"
  44. ? ? ? ? ? ? div1.style.left = offsetx+"px"
  45. ? ? ? ? }
  46. ? ? ? ? //启动定时器
  47. ? ? ? ? var t= setInterval(move,30);
  48. ? ? ? ? //鼠标移入清除定时器
  49. ? ? ? ? div1.onmouseenter = function(){
  50. ? ? ? ? ? ? clearInterval(t);
  51. ? ? ? ? }
  52. ? ? ? ? //鼠标移出恢复
  53. ? ? ? ? div1.onmouseleave = function(){
  54. ? ? ? ? ? ? t = setInterval(move,30);
  55. ? ? ? ? }
  56. ? ? ? ? //点击事件,点击后消失
  57. ? ? ? ? div1.onclick = function(){
  58. ? ? ? ? ? ? div1.style.display = "none"
  59. ? ? ? ? }?
  60. ? ? </script>

到此这篇关于基于JS实现弹性漂浮广告的示例代码的文章就介绍到这了,更多相关JS弹性漂浮广告内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号